пятница, 2 сентября 2016 г.

Процедура вызывает сама себя

Процедура вызывает сама себя

Пример того как с помощью одной процедуры можно пербрать все подгруппы и группы номенклатуры.
Процедура вызывает сама себя внутри цикла.

Процедура ПодготовкаДанныхДереваГруппРекурсивно(ТаблицаТоваровДереваГрупп, ДеревоГрупп, ТаблицаГруппНоменклатурыДереваГрупп)
 Для Каждого СтрокаДерева Из ДеревоГрупп Цикл
   Для Каждого НоменклатураЭлемент Из СтрокаДерева.Номенклатура Цикл
         НоменклатураСсылка = НоменклатураЭлемент.Значение;
          Если НЕ ЗначениеЗаполнено(НоменклатураСсылка) Тогда
           Продолжить;
          КонецЕсли;
         Если НоменклатураСсылка.ЭтоГруппа Тогда
            НовСтрока = ТаблицаГруппНоменклатурыДереваГрупп.Добавить();
            НовСтрока.ИдГруппы = СтрокаДерева.ИдГруппы;
            НовСтрока.Номенклатура = НоменклатураСсылка;
         КонецЕсли;
НовСтрока = ТаблицаТоваровДереваГрупп.Добавить();
НовСтрока.ИдГруппы = СтрокаДерева.ИдГруппы;
НовСтрока.Номенклатура = НоменклатураСсылка;
   КонецЦикла;
  ПодготовкаДанныхДереваГруппРекурсивно(ТаблицаТоваровДереваГрупп, СтрокаДерева.Строки, ТаблицаГруппНоменклатурыДереваГрупп);
 КонецЦикла;
КонецПроцедуры

Комментариев нет:

Отправить комментарий