Имя: Пароль:
1C
1С v8
Отчет с группами номенклатуры
0 ErrorEd88
 
18.07.11
17:59
Допустим есть отчет "выводящий" номенклатуру. Допустим, мне его захотелось доработать - если у номенклатуры есть родитель (она входит в группу), то должна выводиться группа, а потом номенклатура. Естественно, группа номенклатуры может выводиться один раз, вся номенклатура должна группироваться по этим группам.

Группа = Null;
Пока Выборка.Следующий() Цикл

Если ЗначениеЗаполнено(Выборка.Номенклатура.Родитель)
И (Выборка.Номенклатура.Родитель <> Группа) Тогда
 Группа = Выборка.Номенклатура.Родитель;
 ОбластьМакетаГруппа.Параметры.Группа = Группа;
 ТабДокумент.Вывести(ОбластьМакетаГруппа);
 ОбластьМакетаСтрока.Параметры.Номенклатура = Выборка.Номенклатура;
 ТабДокумент.Вывести(ОбластьМакетаСтрока);

Иначе
 Если Не ЗначениеЗаполнено(Выборка.Номенклатура.Родитель) Тогда
  ТабДокумент.Вывести(ОбластьМакетаПробел);
  ОбластьМакетаСтрока.Параметры.Номенклатура = Выборка.Номенклатура;
  ТабДокумент.Вывести(ОбластьМакетаСтрока);
 Иначе
  ОбластьМакетаСтрока.Параметры.Номенклатура = Выборка.Номенклатура;
  ТабДокумент.Вывести(ОбластьМакетаСтрока);
 КонецЕсли;
КонецЕсли;
КонецЦикла;

Как можно оптимизировать код?
1 lubja
 
18.07.11
18:13
в самом запросе можно сделать ИТОГИ ПО Номенклатуре (только Иерархия) и не изобретать велосипед ))
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.