РЕКЛАМА

На главную страницу

РЕКЛАМА




Чтобы разместить ссылку на свой сайт с этой страницы воспользуйтесь системой платных ссылок SAPE.


На главную 1с форева.ру
На страницу "Программисту \ Разработка СКД отчетов в 1с.".

Использовать таблицу значений как источник данных отчета СКД 1с.

Платформа: 8.2, 8.3
Формы: Обычные, Управляемые
Конфигурация: любая
Релиз: любой
Страница актуализирована: 06.02.2017


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




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




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

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

    // Перенести ТЗ в табличную часть
    ДанныеОтчета.Загрузить(ТЗ);

    // Сформировать отчет
    КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
    СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

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

    МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);


    ВнешниеНаборыДанных=Новый структура;
    ВнешниеНаборыДанных.Вставить("ДанныеОтчета",ДанныеОтчета);

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

    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки,Истина);
    ЭлементыФормы.Результат.Очистить();
    ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

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


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



Copyright (c) by iKai, 2016