|
Как добавить программно подчиненую/вложенную группировку в СКД | ☑ | ||
---|---|---|---|---|
0
iva77ru
17.06.15
✎
18:15
|
Доброго дня!
Нужно добавить програмнно в СКД подчиненную/вложенную группировку. Вот так в табличном документе выводиться в одну строку с двумя колонками: Группировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); Группировка.Использование = Истина; Поле1 = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); Поле1.Использование = Истина; Поле1.Поле = Новый ПолеКомпоновкиДанных("ФизЛицо"); Поле2 = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); Поле2.Использование = Истина; Поле2.Поле = Новый ПолеКомпоновкиДанных("Документ"); А, как сделать, что была группировка по ФизЛицу документов? |
|||
1
Господин ПЖ
17.06.15
✎
18:17
|
вложить в .Структура
|
|||
2
iva77ru
17.06.15
✎
18:29
|
Пример кода, пожалуйста!
|
|||
3
Адский плющ
17.06.15
✎
18:34
|
И ключи от квартиры с исходниками
|
|||
4
bootini
17.06.15
✎
18:40
|
ГруппировкаКомпоновкиДанных (DataCompositionGroup)
Структура (Structure) Использование: Только чтение. Описание: Тип: КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных. Содержит коллекцию элементов структуры, вложенных в группировку. Доступность: Сервер, толстый клиент, внешнее соединение. как-то так: Поле2 = Группировка.Структура.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); Поле2.Использование = Истина; Поле2.Поле = Новый ПолеКомпоновкиДанных("Документ"); |
|||
5
iva77ru
18.06.15
✎
09:55
|
{Форма.ФормаОтчета.Форма(68)}: Ошибка при вызове метода контекста (Добавить)
Поле2 = Группировка.Структура.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); по причине: Коллекция не может содержать элементы данного типа |
|||
6
bootini
18.06.15
✎
09:58
|
Тогда так:
Поле2 = Группировка.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); |
|||
7
iva77ru
18.06.15
✎
10:52
|
Спасибо! Вот так работает:
Группировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); Группировка.Использование = Истина; Поле1 = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); Поле1.Использование = Истина; Поле1.Поле = Новый ПолеКомпоновкиДанных("ФизЛицо"); Группировка2 = Группировка.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); Поле2 = Группировка2.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); Поле2.Использование = Истина; Поле2.Поле = Новый ПолеКомпоновкиДанных("Документ"); ВыбранныеПоля = Группировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); ВыбранныеПоля.Использование = Истина; ВыбранныеПоля = Группировка2.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); ВыбранныеПоля.Использование = Истина; |
|||
8
iva77ru
18.06.15
✎
10:59
|
СКД = ПолучитьСхемуСКД();
Настройки = УстановитьНастройки(СКД); //в этот объект помещается информация о расшифровке данных ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД,Настройки,ДанныеРасшифровки); // ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки); //очистка поля табличного документа - Результат Таб = новый ТабличныйДокумент; //Вывод результатов компоновки в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Таб); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); Таб.Показать(); В результирующей таблице не отрабатывает расшифровка. Щелк по полю "Документ" - документ открылся. Пожалуйста, подскажите, как зацепить расшифровку? |
|||
9
bootini
18.06.15
✎
11:09
|
(8) ОбработкаРасшифровки() - событие Поля Табличного Документа
|
|||
10
iva77ru
18.06.15
✎
11:17
|
Это если таблица выводиться в табличный документ, лежащий на форме. А, если табличный документ выводиться независимо от формы:
Таб = новый ТабличныйДокумент; Таб.Показать(); То где ловить процедуру ОбработкаРасшифровки()? |
|||
11
bootini
18.06.15
✎
11:24
|
(10) Ни где
|
|||
12
iva77ru
18.06.15
✎
11:36
|
То, есть отработка расшифровки невозможна при выводе табличного документа независимо от формы через СКД и надо вернуться к старому проверенному способу сбору табличного документа по секциям и вывод (Назад к 7.7)?
|
|||
13
bootini
18.06.15
✎
11:43
|
Получается так, только я не представляю как ты это будешь делать :)
ЗЫ. А формы для отчетов вам запрещают делать? |
|||
14
iva77ru
18.06.15
✎
11:55
|
Спасибо Вам за помощь! Задача состоит в том, чтобы не плодить общие табличные макеты или табличные макеты в любых др. доступных объектах конфигурации. А скажем в общем модуле сформировать и вывести табличный документ. Хотелось уйти от сбора табличного макета по-старинке и создание табличного документа поручить СКД. Но из выше сказанного в табличном документе не будет отрабатывать расшифровка.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |