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