Добрый день. УПП 1.3.14.3, пл.8.2.14.540.
Помогите решить такую задачу:
есть регистр Выпуск продукции(бух учет.), мне нужно провести анализ номенклатуры в этом регистре по следующему алгоритму:
1)Пришла номенклатура1 , ищем для неё спецификацию в регистре выпуск продукции.
2) Нашли спецификацию взяли из неё (исходные комплектующие) номенклатуру с определенным заполненным реквизитом(их может быть 5...).
3)После этого каждую номенклатуру из 2 делаем как в 1, а потом 2.
Цикл продолжается до тех пор, пока найдём ,что нет номенклатуры в пункте 2, с нашим условием
Т.е получается такое дерово для расчета:
Номенклатура1
Номенклатура2(из спецификации Номенклатуры1)
Номенклатура2_1(из спецификации Номенклатуры2)
Номенклатура2_2(из спецификации Номенклатуры2)
Номенклатура3(из спецификации)
Номенклатура3_1(из спецификации Номенклатуры3)
Номенклатура3_2(из спецификации Номенклатуры3)
НоменклатураN(из спецификации)
НоменклатураN(из спецификации НоменклатураN)
НоменклатураN(из спецификации НоменклатураN)
..........
Количество вложений неизвестно
После это нужно рассчитать
(ИтогиПоНоменклатура2/1000+Номенклатура3/1000+НоменклатураN/1000)/1000
Помогите с решением данной задачи. Пробовал рекурсией не получается.
С такой задачей сталкнулся впервые. Рекурсией не получается. Может у кого-нибудь есть какой-нибудь пример, чтобы иметь представление как правильно её решать.
Пример кода:
Функция РасчитатьКоличествоСвинца(Номенклатура)
//нашли спецификацию в выпуске
СпецификацияНоменклатуры = НайтиНоменклатуруВВыпуске(Номенклатура);
//нашои комплектующие это спецификации
Выборка = ПолучитьДанныеПоКомплектующим(СпецификацияНоменклатуры);
Узел = Узел+1;
Пока Выборка.Следующий() цикл
//проверим, если дальнейших цепочек нет
КоличествоВозможныхЗвеньев = ПроверитьНаНулевоеЗначение(Выборка.Номенклатура);
Для каждого Элемент из ТаблицаЭлементыВДвижении цикл
//тут думал рекурсией, но тогда Элементы в этой таблице перекроются другими
//РасчитатьКоличествоСвинца(Элемент.Номенклатура);
КонецЦикла;
КонецФункции
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший