Имя: Пароль:
1C
1С v8
Преобразовать дерево значений к иному виду
,
0 Vasilisk
 
26.05.15
15:33
1. Я тебе хлеба сладкого принес 33% (1)
2. Уберите годовалого ребенка с кухни 33% (1)
3. Срочно иду патентовать данный рецепт 33% (1)
4. Это рецепт колобка 0% (0)
5. Такой хлеб при запекании расплавится 0% (0)
Всего мнений: 3

Добрый день господа и дамы есть непростая, но интересная задачка, не прошу что бы ее решили за меня, но было бы интересно почитать мысли по вариантам реализации.
Условия задачи:
Есть дерево с колонками (Номенклатура, Количество, Операция) суть дерева в отражении состава конкретной номенклатуры а также операции над ней для ее получения. Пример:
Хлеб-1 шт                Опер. Запекать
     -тесто- 1 шт        Опер. Месить
           -мука 1 кг    Опер. Взять из заначки
           -соль 100 мг  Опер. Взять из заначки
           -сахар 3 кг   Опер. Взять из заначки
     -соль 30 мг         Опер. Взять из заначки
Сама задача: Необходимо преобразовать данные дерева к другому виду вот к такому:
Опер. Взять из заначки-
                      -мука 1 кг
                      -соль 130 мг
                      -сахар 3 кг
Опер. Месить-
            -тесто- 1 шт
                  -мука 1 кг    
                  -соль 100 мг
                  -сахар 3 кг
Опер. Запекать-
              Хлеб-1 шт
                   -тесто- 1 шт
                   -Соль- 30 гр

То есть суть в том что бы получить пошаговые пары изделие-материал в разрезе операций, наверное как то так, при том что структура дерева идет по составу а не по порядку операций.

Непосредственная трудность с которой я столкнулся это свертка по количеству в дереве(Обратите внимание на соль), так как дерево в работе будет значительно глубже, то применим только рекурсивный подход.
3 Vasilisk
 
26.05.15
15:45
Я в курсе вот ломаю свои извилины над ней пока в голову приходит преобразование в табзнач по полям Номенклатура, НоменклатураРодитель, Количество, Операция дальше много раз и по разному сворачивать. Но пока не понимаю ка я это сделаю.

Я тебе хлеба сладкого принес
Ошибка? Это не ошибка, это системная функция.