Имя: Пароль:
1C
 
Рекурсивное разузлование на СКД
0 PR
 
05.01.21
15:17
1. Это делается так... 0% (0)
2. Это невозможно 0% (0)
3. Свое мнение 0% (0)
Всего мнений: 0

Делаю окололежащую задачу, не на СКД и не совсем в таком виде, но все же стало интересно из спортивного интереса

Пусть будет так
Нужно с помощью СКД для каждой продукции вывести иерархически весь ее состав
На входе есть регистр с полями Продукция и Материал, то есть при производстве продукции (продукция или полуфабрикат) используется Материал (материал, услуга или работа)
И продукция и материал — это справочник Номенклатура
Пусть продукцией считается номенклатура, у которой реквизит ЭтоПродукция = Истина

То есть в итоге должно получиться примерно так:

Продукция 1
    Полуфабрикат 1
        Сырье 1
        Сырье 2
    Сырье 3
Продукция 2
    Полуфабрикат 2
        Полуфабрикат 1
            Сырье 1
            Сырье 2
        Сырье 4
        Сырье 2
    Сырье 1


Понятно, что в один запрос такое не воткнешь
Понятно, что нужно заполнять связи наборов данных, в которых добавлять соединение источника данных с самим собой же
Вопрос в том, что и куда добавлять?

Выводить автоматически, то есть без ручного вывода, средствами самой платформы
Вариант встречного выпуска, то есть рекурсивного зацикливания, для простоты исключаем
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн