Имя: Пароль:
1C
1С v8
СКД, отчёт по заказам с доп.колонками, соответствующими отборам
0 Raff86rus
 
12.09.22
17:33
Добрый день 1С-ам.

Исходные данные:

0) Управление торговлей, редакция 11 (11.4.12.71).

1) Отчет о продажах с 4-я фиксированными группировками (меняться не будут, жесткая структура):
- период (неделя)
- менеджер
- заказ клиента/реализация
- артикул, номенклатура, характеристика

2) Поля (ресурсы):
- количество
- сумма
- себестоимость

3) Набор данных - запрос.

Задача:

Для простоты условия будем считать, что за установленный период (какой-нибудь месяц) имеется три документа "Заказ клиента" с разными менеджерами. В ТЧ "Товары" по 5 разных позиций в каждом документе.
В результате формирования БЕЗ ОТБОРОВ! видим отчет с учетом структуры, описанной в исходных данных выше. Все данные заполнены.

Клиент хочет устанавливать до 10 отборов одновременно на свойства номенклатуры (вид номенклатуры, родитель и т.д.). При установке отбора № 1 на какое-либо свойство номенклатуры (например: номенклатура в группе "Обувь"), в результате остались все те же три заказа, со всеми позициями товаров (по 5 в каждом), но при этом справа добавились три колонки (количество, сумма и себестоимость) и что важно, заполнены были только те позиции номенклатуры (строки в этих трех колонках), которые удовлетворяют отбору (состоят в группе "Обувь)". Остальные строки в этих трех колонках должны быть пустыми. То есть количество строк остается исходным независимо, есть отбор или нет на свойства номенклатуры.

При установке отбора № 2 (номенклатура в группе "Шапки"), в результате остались все те же три заказа, со всеми позициями товаров (по 5 в каждом), но при этом справа (помимо трех колонок по отбору № 1) добавились еще три колонки (количество, сумма и себестоимость) и заполнены были только те позиции номенклатуры (строки в этих трех колонках), которые удовлетворяют отбору № 2. Остальные строки в этих трех колонках должны быть пустыми.

И так далее... То есть таблица растет вправо в зависимости от количества отборов на номенклатуру.      

Какие варианты решения данной задачи могут быть? Спасибо заранее.
1 Sinoptic
 
12.09.22
18:15
Тут вообще полёт фантазии ничем не ограничен, ну например:
В модуле отчета, в процедуре "ПриКомпоновкеДанных" (как-то так вроде называется), обходишь настройки отбора, запихиваешь эти группы (и даже отдельную номенклатуру можно) в таблицу значений, подсовываешь эту таблицу значений в качестве внешнего источника данных, соединяешь по номенклатуре (иерархии) с данными твоего отчета. В настройках делаешь таблицу, где в колонках группы из этого внешнего источника, в строках заказ и ресурсы.
2 Raff86rus
 
13.09.22
13:17
(1) Спасибо за наводку. Выходит так:

Создаем набор данных объект, описываем 3 поля ("Документ продажи (ссылка на документ)", "Номенклатура (ссылка)" и "Номер отбора (строка)"). Настраиваю связи наборов данных внешнего источника и данных отчета по номенклатуре (ссылка) и по документу продажи. В настройках отчета в колонки добавляю группировку "Номер отбора".

В обработчике "ПриКомпоновкеДанных" перебираю отборы. Допустим пользователь установил два отбора: 1) на группу номенклатуры (родитель); 2) на вид номенклатуры. Формирую ТЗ, где значение колонки "Номер отбора" = "Отбор номер 1", колонки "Документ продажи" и колонки "Номенклатура" - сюда необходимо поместить значения, предварительно сформировав отчет с указанным отбором? Верно?

После этого сформировать с вторым отбором на вид номенклатуры и дозаполнить ТЗ, так?