Получить ДЗ из спецификации ДВС всем. Все самописное. Есть РегистрСведений Спецификации с измерениями Владелец (номенклатура) и Комплектующее (номенклатура), ресурс Количество. Можно ли одним запросом получить ДЗ из этого регистра? Сейчас все реализовано циклом с запросом. |
Разузлование? В общем случае - нет. Больше того, без специальных усилий может случиться зацикливание: Номенклатура включает в себя некое комплектующее1, которое в сою очередь является сложным и включает в себя Комплектующее2, которое в свою очередь..... и где-то в череде этих построении "которое в сою очередь является сложным и включает в себя Номенклатура". Такая беда может случиться на любой ветке дерева. И никакой запрос тут данные нормально не вытащит. А вот при некоторых ограничениях (к примеру, заранее известна максимальная глубина вложенности) можно и запрос организовать |
В цикле максимальная глубина вложенности зафиксирована 20. Максимальная вложенность существующих спецификаций не превышает 12. Спецификации составляют специально обученные люди и никаких зацикленностей за несколько лет не обнаружено. Отчеты работают нормально, но вопрос носит чисто математический характер, оптимизация запроса в цикле. |
[em]максимальная глубина вложенности зафиксирована 20[/em] - ну так 19 левых соединений и итоги по 19 колонкам выплюнет искомое дерево. |
по моему так не стоит заниматься этим извращением. Есть рекурсия, вот ее в зубы и вперед |
4-USSR > +100500 |
Ну так рекурсия, это опять же циклический запрос, до тех пор пока комплектующее не будет пусто. Ничем принципиально новым от простого ограничения по циклам не отличается. Еще раз: хочется уйти от запросов в цикле. Это зло. Пользуемся им только в силу отсутствия другого алгоритма без цикла. |
(6) ты зашорен запросы в цикле - это зло только на экзамене по 1С:Специалисту. А когда начинаешь работать над продуктовыми задачами и претендуешь на позицию специалиста-эксперта, нужно уметь снять эти шоры. Понятия "добро" и "зло" нужно исключить из своего лексикона. Если инструмент работает, и скорость удовлетворяет конечного заказчика - это можно и нужно использовать |
[quote=Ирли Бёрд;46726480]запросы в цикле - это зло только на экзамене по 1С:Специалисту.[/quote] Это если неправильные запросы в цикле делать. А если правильные - ни разу не зло, а наоборот добро и польза. Например, эта конкретная задача о составе спецификации решается количеством запросов = Глубина вложенности + 1. |
(8) дак я и говорю, запросы без цикла - деньги на ветер |
Опять деньги, я про математику. Сейчас все работает на циклах. Есть механизм 1С, позволяющий решить эту задачу без цикла? Пока только отрицательные ответы. Значит пока нет решения. |
Решение - использовать циклы. Очень хорошее, работающее, зарекомендовавшее себя решение. |
10-Гандурас > Зачем? (с) Д1С |
Текущее время: 20:55. Часовой пояс GMT +3. |