Дерево значений на форме. Транспонирование с помощью СКД и хранение в ТЧ

1. Drivingblind 227 11.08.20 07:20 Сейчас в теме
Всем привет. Столкнулся со следующей задачей: есть необходимость хранить в документе и отображать на форме в виде дерева значений следующую иерархическую структуру (см. рисунок во вложении).
Колонки ОргОбъект, ТехническоеМесто и Передано - заполняются на основании данных поставщика. ТехническоеМесто подчинено ОргОбъекту.
Колонки по клиентам хранят в себе информацию о том, сколько получил каждый клиент - заполняются на основании данных, полученных от клиентов.. Сумма полученных значений от клиентов не всегда равна значению в колонке Передано. Иногда бывают потери.
На данный момент всё это хранится в таблицах Excel. Нужно разработать формат хранения в 1С.

Я решил хранить данные в двух табличных частях: ДанныеОтПоставщика и ДанныеОтКлиентов, а связывать их через поле КлючСтроки. Транспонировать с помощью СКД. Для транспонирования с помощью СКД использовал это и это. Транспонировал с помощью группировки в таблицу.

Но в итоге получаю следующую ошибку СКД:
Ошибка генерации макета по причине:
Не поддерживается вывод таблиц и диаграмм в универсальную коллекцию значений.


Подскажите, пожалуйста, каким образом это лучше хранить и как это отображать на форме?
Прикрепленные файлы:
Вознаграждение за ответ
Показать полностью
Найденные решения
15. Sashares 34 11.08.20 09:50 Сейчас в теме +1 $m
(14)Допустим, вывести не проблема.
Выбираете различных клиентов (из тех, что есть в тч2), в цикле обходите их, создаете реквизиты формы, создаете элементы формы. Запоминаете в соответствие клиентов и имена колонок.

Потом заполняете получившуюся таблицу данными.

Интерфейсно сложнее изменить их состав.
Drivingblind; ipoloskov; +2 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
4. Sashares 34 11.08.20 09:07 Сейчас в теме
(1)Не очень понятно, зачем все это - СКД, траспонирование и прочее.
Допустим будет 10 разных клиентов, у каждого из которых 1 строка в первой таблице.
И вы собираетесь сделать 10 колонок - для каждого из клиентов, в которых значение будет только в одной из ячеек. А если клиентов будет 20 или 50? Как с этим работать?
5. Drivingblind 227 11.08.20 09:11 Сейчас в теме
(4) клиентов будет максимум 15-20. Это требование заказчика. Видеть разрез по клиентам.
8. Sashares 34 11.08.20 09:13 Сейчас в теме
(5)Именно чтобы клиенты были в шапке?

Можно сделать 2 разные таблицы, и выводить их обе на форму.
Можно сделать дерево.
Можно сделать 1 таблицу, в которой клиенты в шапке.

Но если клиентов много, то в колонки вставлять, кажется, не самое удачное решение.
Особенно если это надо вводить вручную, а не только отображать, то есть перечень клиентов, которые выводятся, редактируется в пользовательском режиме.

Вариант хранения - вы правильно написали, 2 таблицы с полем ключем.
Прикрепленные файлы:
Drivingblind; +1 Ответить
11. Drivingblind 227 11.08.20 09:27 Сейчас в теме
(8) Этот вариант (который у вас на скрине) мне тоже больше нравится. Но изначальная договоренность была, чтобы клиенты были в шапке, т.к. в Excel файле заказчика клиенты хранились в виде колонок. Уточню ещё раз этот вопрос.
14. Drivingblind 227 11.08.20 09:45 Сейчас в теме
(8) уточнил. Все клиенты должны быть в колонках
15. Sashares 34 11.08.20 09:50 Сейчас в теме +1 $m
(14)Допустим, вывести не проблема.
Выбираете различных клиентов (из тех, что есть в тч2), в цикле обходите их, создаете реквизиты формы, создаете элементы формы. Запоминаете в соответствие клиентов и имена колонок.

Потом заполняете получившуюся таблицу данными.

Интерфейсно сложнее изменить их состав.
Drivingblind; ipoloskov; +2 Ответить
19. Drivingblind 227 13.08.20 07:57 Сейчас в теме
(15) Так и сделал. Спасибо
2. toypaul 63 11.08.20 08:33 Сейчас в теме
Как хранить не знаю, отображать дерево или таблицу не через СКД (СКД не умеет программно выводить таблицу в коллекцию)
6. Drivingblind 227 11.08.20 09:12 Сейчас в теме
(2) да я уже понял, что не через СКД
3. MishinVl 6 11.08.20 09:04 Сейчас в теме
Все хранить в одной табличной части, ключ строки тогда не нужен, ее же выводить в дерево программно или в виде отчета на форму.
7. MishinVl 6 11.08.20 09:12 Сейчас в теме
например так
ОргОбъект ТехническоеМесто Передано КлючСтроки Клиент Получено
Объект1 Место1 50 1 Клиент1 20
Объект1 Место1 50 1 Клиент2 30
Объект1 Место1 50 1 Клиент3 0

Место1 Передано Получено
+ Объект1 50 50
- Клиент1 20
- Клиент2 30
- Клиент3 0
9. Drivingblind 227 11.08.20 09:14 Сейчас в теме
(7) Изначально так и думал, но колонки ОргОбъект ТехническоеМесто Передано будут многократно дублироваться. Будет возникать большая избыточность. Особенно это будет заметно, думаю, на большом количестве строк
10. MishinVl 6 11.08.20 09:17 Сейчас в теме
(9)Тогда делайте по своему варианту - 2 таблицы, соединяйте их запросом по ключу, используйте итоги в запросе и это дерево из запроса выводите в дерево на форме
Drivingblind; +1 Ответить
12. Drivingblind 227 11.08.20 09:30 Сейчас в теме
(10) Допустим. Но как в таком случае вывести клиентов в колонки дерева значений?
13. Sashares 34 11.08.20 09:41 Сейчас в теме
(12)Для дерева - клиенты в строках.
Именно для этой цели и дерево, а не таблица, потому что для одной строки дерева (с местом) можно добавить подчиненные строки (с клиентами).
16. MishinVl 6 11.08.20 10:06 Сейчас в теме
а какой в этом смысл тогда? пришлите скрин дерева, которое вы хотите получить
17. PiotrLoginov 11.08.20 12:01 Сейчас в теме
Резюмируя, можно сказать, что хранить такую информацию можно и в одной ТЧ, можно и в двух. Я бы организовал хранение в двух. Данные по каждому клиенту - в отдельной строке. А при выводе информации на форму для каждого отдельного клиента добавлялась бы своя колонка. Другое дело, что, вероятно, имеет смысл выводить информацию не в Таблицу, а в ТабличныйДокумент. И да, тут пригодится СКД, в настройках которой которой можно задать группировку в колонках таблицы по полю Клиент.

Если не хочется ваять обработчики для работы с Табличным документом, можно посмотреть, как работает вывод дерева из обычных ТЧ в типовых конфах. См. Табличная часть и визуальное отображение иерархии элементов
18. Drivingblind 227 13.08.20 05:16 Сейчас в теме
(17) Нет, с ТабДоком заморачиваться не очень хочется. Сделал динамический вывод колонок.
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день