Через структуру «ВнешниеНаборыДанных»в СКД можно добавить несколько источников данных
1 2 |
ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("ОбъектСДанными ", ТаблицаЗначенийОтчета); |
При формировании отчета СКД формирует таблицу специального формата, в которой хранит связь между полями результирующей формы и данными отчета. Именно благодаря этой таблице мы можем сформировать расшифровку ячейки отчета. В нашем примере расшифровка выгружается в переменную ДанныеРасшифровкиОтчета.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
Процедура ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) // Запретим стандартную обработку расшифровки СтандартнаяОбработка = Ложь; // Создадим и инициализируем обработчик расшифровки СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровкиОтчета, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); //Перечень возможных действий ДоступныеДействия = Новый Массив(); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Отфильтровать); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Оформить); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Сгруппировать); // Осуществим выбор действия расшифровки пользователем НастройкиСКД = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия); Если НастройкиСКД <> Неопределено Тогда // Пользователь выбрал действие, для которого нужно менять настройки Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить ИЛИ ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Оформить Тогда КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиСКД); Сформировать(); Иначе // При других действиях - создадим новый отчет, откроем форму, сформируем отчет в ней Отчет = ВнешниеОтчеты.Создать(ЭтаФорма.ОтчетОбъект.ИспользуемоеИмяФайла); Форма = Отчет.ПолучитьФорму("ФормаОтчета"); Форма.Открыть(); Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиСКД); Форма.Печать(); КонецЕсли; КонецЕсли; КонецПроцедуры |
Источник: http://www.1c1c1c.ru/