[ Вопрос дня ] Как заполнить объект ДанныеРасшифровки отчета на СКД с использованием набора данных типа Объект?

Доброго дня, коллеги!

Курс Профессиональная разработка отчетов в 1С 8.3 на Системе Компоновки Данных (СКД) очень востребован у слушателей проекта. Владение механизмами СКД – основополагающие знания, без которых работать с современными типовыми конфигурациями просто невозможно.

Настоятельно рекомендуем досконально изучить тему Работа с системой компоновки данных средствами встроенного язык, это однозначно повысит эффективность и скорость вашей работы с решениями 1С.

Вопрос

Сделал отчет на СКД с использованием набора данных типа Объект (таблицы значений). В наборе есть поля типа ссылки на справочники и документы, но в отчете нет ни одной расшифровки.

Попробовал установить расшифровки с помощью макета СКД: оформление макета воспринимается, а расшифровка – нет.

В сети прочитал, что для наборов типа объект расшифровки нужно устанавливать в обработчике “ПриКомпоновкеРезультата“. Подскажите, пожалуйста, как это можно сделать?

Ответ

Для этого в процедуре ПриКомпоновкеРезультата нужно использовать объект ДанныеРасшифровки при создании макета компоновки и при инициализации процессора компоновки, например:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки();
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновки, ДанныеРасшифровки);
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   ТоварныеЗапасыОстатки.Товар,
        |   ТоварныеЗапасыОстатки.Склад,
        |   ТоварныеЗапасыОстатки.КоличествоОстаток КАК Остаток
        |ИЗ
        |   РегистрНакопления.ТоварныеЗапасы.Остатки КАК ТоварныеЗапасыОстатки";
    ТЗ = Запрос.Выполнить().Выгрузить();
    ВнешниеНаборы = Новый Структура("ТЗ", ТЗ);
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборы, ДанныеРасшифровки);
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);   
КонецПроцедуры

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

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

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

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

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.