Sky1C

Разделы каталога

Товар дняХиты продажПереносы данных 1СПродукты и лицензии 1СПрочий Софт

Информация

О насИнтересноеДоставка и оплатаКонтакты

Программный вывод СКД (система компоновки данных) в 1с 8.2

Программный вывод СКД (система компоновки данных) в 1с 8.2

Ниже приведен пример программного вывода отчета с использованием системы компоновки данных. Обратите внимание на комментарии в программном коде. // В табличном документе будем заменять слова в шапке на значения отбора Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)    СтандартнаяОбработка = Ложь; // отключаем стандартный вывод отчета - будем выводить программно  Настройки = КомпоновщикНастроек.Настройки;   // если стоит настройка формирования отчета при открытии, то будет появляться ошибка, если некоторые параметры обязательные и не заполнены. // Поэтому устанавливаем параметры программно  ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ВидСредств");     ПараметрСКД.Использование = Истина;  Если НЕ ЗначениеЗаполнено(ПараметрСКД.Значение) Тогда      ПараметрСКД.Значение      = Перечисления.ВидыСредств.ЛимитыБюджетныхОбязательств;  КонецЕсли;    ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ФинансовыйГод");     ПараметрСКД.Использование = Истина;  Если НЕ ЗначениеЗаполнено(ПараметрСКД.Значение) Тогда   ПараметрСКД.Значение = НачалоГода(ТекущаяДата());  КонецЕсли;   // Переносим настройки из настроек в пользовательские настройки  ТаблицаОтборов = ПолучитьТаблицуОтборов();  Н = 0;  Для Каждого ЭлементОтбора Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл   СтрокаТаблицы = ТаблицаОтборов.Получить(Н);   ЭлементПользовательскогоОтбора = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[СтрокаТаблицы.Индекс+3];        ЭлементОтбора.Использование = ЭлементПользовательскогоОтбора.Использование;   ЭлементОтбора.ПравоеЗначение = ЭлементПользовательскогоОтбора.ПравоеЗначение;   Н = Н + 1;  КонецЦикла;   // Программно выводим отчет  КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;    СхемаКомпоновкиДанных = ПолучитьМакет("СхемаКомпоновкиДанных");  МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);  ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;  ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);  ДокументРезультат.Очистить();    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;  ПроцессорВывода.УстановитьДокумент(ДокументРезультат);    ПроцессорВывода.Вывести(ПроцессорКомпоновки);    // эта таблица должна совпадать с порядком и названиями  // элементов отбора отчета  Для Каждого Строка Из ТаблицаОтборов Цикл   Если Строка.Индекс+3 <= КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Количество()-1 Тогда    ЭлементОтбора = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[Строка.Индекс+3];    //Сообщить(СокрЛП(ЭлементОтбора.ПравоеЗначение) + " индекс  = " + Н);       Если ЭлементОтбора.Использование Тогда     УстановитьНазвание = Истина;    Иначе     Установитьназвание = Ложь;    КонецЕсли; // В отчете нарисована собственная шапка. В ней необходимо установить значения параметров. // Для этого в сформированном табличном документе делаем поиск текста и меняем его на значения параметров.       Область = ДокументРезультат.НайтиТекст("&" + Строка.Название);    Если Область<>Неопределено Тогда     Если УстановитьНазвание Тогда      Область.Текст = СокрЛП(ЭлементОтбора.ПравоеЗначение);      ЗаменитьНазваниеКода(ДокументРезультат, Строка.НазваниеКода, ЭлементОтбора.ПравоеЗначение.Код);     Иначе      Область.Текст = "";      ЗаменитьНазваниеКода(ДокументРезультат, Строка.НазваниеКода, "");     КонецЕсли;    КонецЕсли;   КонецЕсли;     КонецЦикла;    КонецПроцедуры

Читайте также

Фиксация шапки в СКД в 1С 8.2 (СКД - система компоновки данных) · Шапка СКД (система компоновки данных) вручную · СКД (система компоновки данных) ПриКомпоновкеРезультата() · Макет в СКД - система компоновки данных