Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Получить ДЗ из спецификации (http://forums.kuban.ru/f1040/poluchit-_dz_iz_specifikacii-8868412.html)

Ganduras 25.04.2019 09:16

Получить ДЗ из спецификации
 
ДВС всем. Все самописное. Есть РегистрСведений Спецификации с измерениями Владелец (номенклатура) и Комплектующее (номенклатура), ресурс Количество. Можно ли одним запросом получить ДЗ из этого регистра? Сейчас все реализовано циклом с запросом.

roma n 25.04.2019 12:44

Разузлование? В общем случае - нет.
Больше того, без специальных усилий может случиться зацикливание: Номенклатура включает в себя некое комплектующее1, которое в сою очередь является сложным и включает в себя Комплектующее2, которое в свою очередь..... и где-то в череде этих построении "которое в сою очередь является сложным и включает в себя Номенклатура". Такая беда может случиться на любой ветке дерева. И никакой запрос тут данные нормально не вытащит. А вот при некоторых ограничениях (к примеру, заранее известна максимальная глубина вложенности) можно и запрос организовать

Ganduras 25.04.2019 17:56

В цикле максимальная глубина вложенности зафиксирована 20. Максимальная вложенность существующих спецификаций не превышает 12. Спецификации составляют специально обученные люди и никаких зацикленностей за несколько лет не обнаружено. Отчеты работают нормально, но вопрос носит чисто математический характер, оптимизация запроса в цикле.

roma n 25.04.2019 18:20

[em]максимальная глубина вложенности зафиксирована 20[/em] - ну так 19 левых соединений и итоги по 19 колонкам выплюнет искомое дерево.

USSR 26.04.2019 05:46

по моему так не стоит заниматься этим извращением. Есть рекурсия, вот ее в зубы и вперед

roma n 26.04.2019 09:15

4-USSR > +100500

Ganduras 28.04.2019 13:36

Ну так рекурсия, это опять же циклический запрос, до тех пор пока комплектующее не будет пусто. Ничем принципиально новым от простого ограничения по циклам не отличается. Еще раз: хочется уйти от запросов в цикле. Это зло. Пользуемся им только в силу отсутствия другого алгоритма без цикла.

EarlyBird 28.04.2019 20:53

(6) ты зашорен
запросы в цикле - это зло только на экзамене по 1С:Специалисту.
А когда начинаешь работать над продуктовыми задачами и претендуешь на позицию специалиста-эксперта, нужно уметь снять эти шоры.
Понятия "добро" и "зло" нужно исключить из своего лексикона.
Если инструмент работает, и скорость удовлетворяет конечного заказчика - это можно и нужно использовать

bma1 29.04.2019 14:42

[quote=Ирли Бёрд;46726480]запросы в цикле - это зло только на экзамене по 1С:Специалисту.[/quote]
Это если неправильные запросы в цикле делать. А если правильные - ни разу не зло, а наоборот добро и польза. Например, эта конкретная задача о составе спецификации решается количеством запросов = Глубина вложенности + 1.

EarlyBird 29.04.2019 16:39

(8) дак я и говорю, запросы без цикла - деньги на ветер

Ganduras 29.04.2019 22:15

Опять деньги, я про математику. Сейчас все работает на циклах. Есть механизм 1С, позволяющий решить эту задачу без цикла? Пока только отрицательные ответы. Значит пока нет решения.

EarlyBird 30.04.2019 00:30

Решение - использовать циклы. Очень хорошее, работающее, зарекомендовавшее себя решение.

Uho 30.04.2019 10:23

10-Гандурас > Зачем? (с) Д1С


Текущее время: 20:55. Часовой пояс GMT +3.