gifts2017

Разузлование номенклатуры без рекурсии

Опубликовал Павел Макаров (Protey77) в раздел Обработки - Универсальные обработки

Те, кто работал с конфигурацией УПП, знают, что разузлование номенклатуры в этом чудо-продукте делается рекурсией и только рекурсией.
Конечно, когда у Вас серийное или мелкосерийное производство - не вопрос, несколько минут - и Ваша номенклатура полностью разузлована в обработке "Конструктор спецификаций". Оттуда можно также распечатать ряд отчетов по покупным материалам и комплектующим, полуфабрикатам собственного производства и т.д.
Но когда на предприятии штучное производство с большим ассортиментом и различным числом вложенности спецификаций, то эти несколько минут превращаются в несколько рабочих часов или даже дней.
Поэтому и была поставлена задача разузлования "нерекурсивным" методом.

1. Откуда есть пошла ... идея

Подобная задача уже решалась http://infostart.ru/public/78285/

Но мне нужна была не просто развернутая спецификация, но количество материальных затрат, которое пойдет на изготовление продукции, их стоимость по определенному виду цен, а также анализ на наличие "мертвых петель" любой глубины вложенности.

2. Как решался вопрос.

Решался по тому же принципу, что и в исходной статье, но там бралась цепочка кодов, а здесь добавлялись колонки в запрос. Непосредственно с пересчетом количества через единицу измерения. И организовывался вывод данных в дерево значений.

3. Результат выполнения.

Результатом выполнения является дерево значений, которое можно перенести в любой необходимый отчет.

Скачать файлы

Наименование Файл Версия Размер
РазвалСпецификацииЗапросомСКоличеством1.epf 65
.epf 12,66Kb
06.03.15
65
.epf 12,66Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Андрей Волин (kser87) 09.03.15 12:24
2. Алексей Ларин (roofless) 25.08.16 15:17
разработки пригодилась в качестве основы, сэкономила немного времени. спасибо
3. Сан Саныч (herfis) 25.08.16 17:49
Позанудствую. Рекурсия ни в чем не виновата :)
Ускорение получено заменой циклического обхода КАЖДОЙ ВЕТКИ на циклический обход УРОВНЕЙ дерева в целом. Что, несомненно, на порядки эффективнее.
Этот же алгоритм можно реализовать и рекурсивно, только смысла нет.
Но я понимаю, что ты хотел сказать. Что в погоне за элегантностью и компактностью кода некоторые индивиды тупо забивают на эффективность решения реальных задач. Есть такое.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа