|
СКД |
☑ |
0
CyberDream
30.11.11
✎
12:33
|
Не так давно разбираюсь с СКД, по сему вопрос. (книга Хрусталевой лежит на столе, если бы нашел там ответ, не задавал бы вопрос)
Есть отчет построенный на основании схемы компоновки данных. В настройках схеме компоновки есть группировки:
Склад
Поставщик
Партия
Номенклатура
Хочу в диалог вывести список значений с пометкой напротив каждой из группировок, чтобы пользователь мог выбирать какую группировку включать в отчет, а какую нет. Сразу оговорюсь в данном случае я не использую стандартную форму настроек. Задача сводится к вводу в диалог список группировок с возможностью их включения / выключения.
|
|
1
CyberDream
30.11.11
✎
12:38
|
Попробовал сделать следующие:
Элементу диалога присвоил тип Отчет.КомпоновщикНастроект.Настройки.Выбор, где содержатся все доступные поля источника данных. Но тут, если попытаться убрать флажки с некоторых полей, ничего не происходит, поля все равно выводятся. Отключение работает только на поле-ресурсе.
|
|
2
DrShad
30.11.11
✎
12:39
|
видимо полохо еще прочитал мануал
|
|
3
CyberDream
30.11.11
✎
12:40
|
пошел читать еще раз - спасибо
|
|
4
PVV65
30.11.11
✎
13:36
|
(0) Создаешь форму. На форме размещаешь ТП: имя - "СписокПолей", тип - "СписокЗначений". В модуле формы пишешь -
Процедура ПриОткрытии()
Для Каждого ЭлементСтруктуры ИЗ КомпоновщикНастроек.Настройки.ДоступныеПоляГруппировок.Элементы Цикл
СписокПолей.Добавить(ЭлементСтруктуры.Поле);
КонецЦикла;
КонецПроцедуры
Процедура СписокПолейПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
КомпоновщикНастроек.Настройки.Структура.Очистить();
Группировка = КомпоновщикНастроек.Настройки;
Для Каждого Поле Из СписокПолей Цикл
Если Поле.Пометка Тогда
Группировка = Группировка.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ВыбранноеПоле = Группировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
ПолеГруппировки = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировки.Использование = Истина;
ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Элементы;
ПолеГруппировки.Поле = Поле.Значение;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Вторая процедура - это обработчик события ТП.
|
|