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

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

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

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

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

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

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

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

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

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

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

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

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

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

Страницы

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

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

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

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

Читайте также:  Швейная машина janome my excel 18w отзывы

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

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

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

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

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector