Всем привет. Столкнулся со следующей задачей: есть необходимость хранить в документе и отображать на форме в виде дерева значений следующую иерархическую структуру (см. рисунок во вложении).
Колонки ОргОбъект, ТехническоеМесто и Передано - заполняются на основании данных поставщика. ТехническоеМесто подчинено ОргОбъекту.
Колонки по клиентам хранят в себе информацию о том, сколько получил каждый клиент - заполняются на основании данных, полученных от клиентов.. Сумма полученных значений от клиентов не всегда равна значению в колонке Передано. Иногда бывают потери.
На данный момент всё это хранится в таблицах Excel. Нужно разработать формат хранения в 1С.
Я решил хранить данные в двух табличных частях: ДанныеОтПоставщика и ДанныеОтКлиентов, а связывать их через поле КлючСтроки. Транспонировать с помощью СКД. Для транспонирования с помощью СКД использовал это и это. Транспонировал с помощью группировки в таблицу.
Но в итоге получаю следующую ошибку СКД:
Ошибка генерации макета по причине:
Не поддерживается вывод таблиц и диаграмм в универсальную коллекцию значений.
Подскажите, пожалуйста, каким образом это лучше хранить и как это отображать на форме?
(14)Допустим, вывести не проблема.
Выбираете различных клиентов (из тех, что есть в тч2), в цикле обходите их, создаете реквизиты формы, создаете элементы формы. Запоминаете в соответствие клиентов и имена колонок.
(1)Не очень понятно, зачем все это - СКД, траспонирование и прочее.
Допустим будет 10 разных клиентов, у каждого из которых 1 строка в первой таблице.
И вы собираетесь сделать 10 колонок - для каждого из клиентов, в которых значение будет только в одной из ячеек. А если клиентов будет 20 или 50? Как с этим работать?
Можно сделать 2 разные таблицы, и выводить их обе на форму.
Можно сделать дерево.
Можно сделать 1 таблицу, в которой клиенты в шапке.
Но если клиентов много, то в колонки вставлять, кажется, не самое удачное решение.
Особенно если это надо вводить вручную, а не только отображать, то есть перечень клиентов, которые выводятся, редактируется в пользовательском режиме.
Вариант хранения - вы правильно написали, 2 таблицы с полем ключем.
(8) Этот вариант (который у вас на скрине) мне тоже больше нравится. Но изначальная договоренность была, чтобы клиенты были в шапке, т.к. в Excel файле заказчика клиенты хранились в виде колонок. Уточню ещё раз этот вопрос.
(14)Допустим, вывести не проблема.
Выбираете различных клиентов (из тех, что есть в тч2), в цикле обходите их, создаете реквизиты формы, создаете элементы формы. Запоминаете в соответствие клиентов и имена колонок.
(7) Изначально так и думал, но колонки ОргОбъект ТехническоеМесто Передано будут многократно дублироваться. Будет возникать большая избыточность. Особенно это будет заметно, думаю, на большом количестве строк
(9)Тогда делайте по своему варианту - 2 таблицы, соединяйте их запросом по ключу, используйте итоги в запросе и это дерево из запроса выводите в дерево на форме
(12)Для дерева - клиенты в строках.
Именно для этой цели и дерево, а не таблица, потому что для одной строки дерева (с местом) можно добавить подчиненные строки (с клиентами).
Резюмируя, можно сказать, что хранить такую информацию можно и в одной ТЧ, можно и в двух. Я бы организовал хранение в двух. Данные по каждому клиенту - в отдельной строке. А при выводе информации на форму для каждого отдельного клиента добавлялась бы своя колонка. Другое дело, что, вероятно, имеет смысл выводить информацию не в Таблицу, а в ТабличныйДокумент. И да, тут пригодится СКД, в настройках которой которой можно задать группировку в колонках таблицы по полю Клиент.