Не так давно разбираюсь с СКД, по сему вопрос. (книга Хрусталевой лежит на столе, если бы нашел там ответ, не задавал бы вопрос)
Есть отчет построенный на основании схемы компоновки данных. В настройках схеме компоновки есть группировки:
Склад
Поставщик
Партия
Номенклатура
Хочу в диалог вывести список значений с пометкой напротив каждой из группировок, чтобы пользователь мог выбирать какую группировку включать в отчет, а какую нет. Сразу оговорюсь в данном случае я не использую стандартную форму настроек. Задача сводится к вводу в диалог список группировок с возможностью их включения / выключения.
Попробовал сделать следующие:
Элементу диалога присвоил тип Отчет.КомпоновщикНастроект.Настройки.Выбор, где содержатся все доступные поля источника данных. Но тут, если попытаться убрать флажки с некоторых полей, ничего не происходит, поля все равно выводятся. Отключение работает только на поле-ресурсе.
(0) Создаешь форму. На форме размещаешь ТП: имя - "СписокПолей", тип - "СписокЗначений". В модуле формы пишешь -
Процедура ПриОткрытии()
Для Каждого ЭлементСтруктуры ИЗ КомпоновщикНастроек.Настройки.ДоступныеПоляГруппировок.Элементы Цикл
СписокПолей.Добавить(ЭлементСтруктуры.Поле);
КонецЦикла;
КонецПроцедуры
Для Каждого Поле Из СписокПолей Цикл
Если Поле.Пометка Тогда
Группировка = Группировка.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ВыбранноеПоле = Группировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
ПолеГруппировки = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировки.Использование = Истина;
ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Элементы;
ПолеГруппировки.Поле = Поле.Значение;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Вторая процедура - это обработчик события ТП.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.