1с скд вывести в таблицу значений

1с. СКД. Таблица значений как источник данных.
Чтобы полученную запросом или как угодно таблицу значений вывести в отчет СКД надо:
1. В отчете создать табличную часть с перечнем полей отчета. Название и типы полей должны быть такими же как в таблице значений с данными. Это облегчит загрузку данных до одной строки кода.

2. В качестве набора данных отчета СКД 1с использовать Объект. Имя объекта — имя табличной части.
3. Добавить поля, одноименные и однотипные с реквизитами табличной части. Какого-то автоматического создания полей на основе ТЧ я не нашел. Так что всё в руки.

4. В форме на кнопку формирования отчета повесить следующую процедуру:

Процедура ДействияФормыДействие ( Кнопка )
&nbsp&nbsp&nbsp // Получить данные для отчета
&nbsp&nbsp&nbsp ТЗ = ПолучитьДанныеДляОтчета ( ) ;

Если при выполнении отчета возникает ошибка «Не найдено поле замены . «, значит вы не прописали нужное поле в табличную часть или макет СКД.

Для программного вывода результата отчета СКД в таблицу значений, необходимо в модуле объекта объявить обработчик событий «ПриКомпоновкеРезультата» и прописать код, который указан в примере:

Процедура ПриКомпоновкеРезультата ( ДокументРезультат , ДанныеРасшифровки , СтандартнаяОбработка )

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных ();
МакетКомпоновкиДанных = КомпоновщикМакета . Выполнить ( СхемаКомпоновкиДанных , КомпоновщикНастроек . ПолучитьНастройки (). Тип ( «ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений» ));

// Инициализация процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных ;
ПроцессорКомпоновкиДанных . Инициализировать(МакетКомпоновкиДанных . );

Таблица = Новый ТаблицаЗначений ;

// Получение результата
ПроцессорВыводаРезультатаКомпоновкиДанных = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений ;
ПроцессорВыводаРезультатаКомпоновкиДанных . УстановитьОбъект ( Таблица );
ПроцессорВыводаРезультатаКомпоновкиДанных . Вывести ( ПроцессорКомпоновкиДанных );

КонецПроцедуры

Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования (Linus Torvalds).

Страницы

понедельник, 16 декабря 2013 г.

Выгрузка результата СКД в таблицу значений

Функция РезультатКомпоновкиВТЗ ( СКД ) Экспорт

КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных ;
КомпоновщикНастроек . Инициализировать (Новый ИсточникДоступныхНастроекКомпоновкиДанных ( СКД ));
КомпоновщикНастроек . ЗагрузитьНастройки ( СКД . НастройкиПоУмолчанию );

НастройкиКомпоновщика = КомпоновщикНастроек . Настройки ;
ПараметрыНастройки = НастройкиКомпоновщика . ПараметрыДанных ;

// устанавливаем параметры отчета
ЗначениеПараметра = ПараметрыНастройки . НайтиЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( «НачалоПериода» ));
ЗначениеПараметра . Значение = НачалоПериода ;

ЗначениеПараметра = ПараметрыНастройки . НайтиЗначениеПараметра (Новый ПараметрКомпоновкиДанных ( «КонецПериода» ));
ЗначениеПараметра . Значение = КонецДня ( КонецПериода );

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных ;
МакетКомпоновкиДанных = КомпоновщикМакета . Выполнить ( СКД , НастройкиКомпоновщика . Тип ( «ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений» ));

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных ;
ПроцессорКомпоновкиДанных . Инициализировать ( МакетКомпоновкиДанных );

ТаблицаРезультат = Новый ТаблицаЗначений ;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений ;

ПроцессорВывода . УстановитьОбъект ( ТаблицаРезультат );
ПроцессорВывода . Вывести ( ПроцессорКомпоновкиДанных );

Процедура КнопкаВыполнитьНажатие ( Кнопка )
Продажи . Загрузить ( РезультатКомпоновкиВТЗ ( СКД ));
КонецПроцедуры

СКД = ПолучитьМакет ( «ПродажиЗаПериод» );

Понравилась статья? Поделиться с друзьями:
Vkontakte.INFO
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: