РеестрДокументов

Новая тема
"ТиС 9.2 релиз 947
В отчете РеестрДокументов у меня выводится список номенклатуры
из табличной части. Хотелось бы вывести  себестоимость
каждой номенклатурной позиции из регистра партий.

В модуле написал следующее:

Пока Док.ПолучитьДокумент()=1 Цикл
   
Если Док.Вид()="Реализация" Тогда
Если РегПартии.ВыбратьДвиженияДокумента(Док)=1 Тогда
Пока РегПартии.ПолучитьДвижение()=1 Цикл
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 Цикл
СебестоимостьНДС=РегПартии.СуммаРуб;
СебестоимостьБезНДС=РегПартии.СуммаБезНДС;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЕсли;

Но не получается:(
"
Если РегПартии.ВыбратьДвиженияДокумента(Док.ТекущийДокумент())=1 Тогда
Все равно не получается. Если в табличной части несколько позиций, отчет выдает по всем позициям одну и ту же цифру - себестоимость последней позиции.
"Само собой, у вас алгоритм так написан. :) Вы привели только кусок алгоритма, я ж не знаю что там еще есть, кроме того что вы написали. Из него сразу видно, что он не работал бы из за отсутствия разыменования ссылки (чего мы уже поправили) и теперь осталось поработать над логикой, а то в самом деле у вас строки перебираются (зачем то) и в итоге в переменных оказывается значение последнего прохода по циклу, короче, надо примерно так:

Пока Док.ПолучитьДокумент()=1 Цикл
  Если Док.Вид()="Реализация" Тогда
     Док.ВыбратьСтроки();
     Пока Док.ПолучитьСтроку()=1 Цикл
        СебестоимостьСНДС=0;
        СебестоимостьБезНДС=0;
        Если РегПартии.ВыбратьДвиженияДокумента(Док.ТекущийДокумент())=1 Тогда
           Пока РегПартии.ПолучитьДвижение()=1 Цикл
              Если РегПартии.НомерСтроки()=Док.НомерСтроки Тогда
                 СебестоимостьСНДС=СебестоимостьСНДС+РегПартии.СуммаРуб;
                 СебестоимостьБезНДС=СебестоимостьБезНДС+РегПартии.СуммаБезНДС;
              КонецЕсли;
           КонецЦикла;
        КонецЕсли;
        Таб.ВывестиСекцию("СтрочкаСведений");
     КонецЦикла;
  КонецЕсли;
КонецЦикла;

работать будет, но вообще, алгоритм некрасивый :)"
а не проще написать запросом?
по какому регистру нужнен отчет, по ПартииОтданные?
В принципе, да. Я проблему решил способом похожим на тот, что предложил Thorvardr, но только еще менее красивым - с большим количеством циклов и условий.
нууу, я просто вас не хотил грузить запросами, если вы только начинаете, то проще сделать методом перебора и прямыми проверками, получается некрасиво, но читабельно
"Так я не в упрек. Наоборот, огромное спасибо;)"
Читают тему
(гостей: 1)

Быстрый переход