Установить значение параметра макета СКД
Здравствуйте.
Есть документ. У него есть реквизит табличный документ. Заполняется этот реквизит с помощью компоновки макета СКД. Возникла проблема в непонимании как передать параметры в этот макет или компоновщик
Код который приведен выше устанавливает значение переменной ПараметрСКД равной Неопределено. И, следовательно, нельзя задать значение параметра. Как нужно передавать параметры в моем случае? Помогите, пожалуйста.
Есть документ. У него есть реквизит табличный документ. Заполняется этот реквизит с помощью компоновки макета СКД. Возникла проблема в непонимании как передать параметры в этот макет или компоновщик
Об = РеквизитФормыВЗначение("Объект");
Схема = Об.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = Схема.НастройкиПоУмолчанию;
ПараметрКомпоновки = Новый ПараметрКомпоновкиДанных("ДатаНачала");
ПараметрСКД = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновки);
Код который приведен выше устанавливает значение переменной ПараметрСКД равной Неопределено. И, следовательно, нельзя задать значение параметра. Как нужно передавать параметры в моем случае? Помогите, пожалуйста.
Прикрепленные файлы:
По теме из базы знаний
- СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты
- Программное добавление параметров редактирования СКД
- Динамическая расшифровка СКД (на примере отчета)
- Изменение расшифровки макета СКД до компоновки
- По-настоящему свои макеты в отчетах СКД. Исследование процесса компоновки и генерация кода отчета
Найденные решения
(1) Я вот так программно формировал таблицу на СКД:
Весь код тебе не нужен, что-нибудь может пригодиться.
Функция Отчет()
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикНастроек1 = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек1.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек1.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
КомпоновщикНастроек1.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период", ЭтотОбъект.Период);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек1.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновки = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
Результат = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КвалификаторДаты = Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя);
КвалификаторЧисла = Новый КвалификаторыЧисла(15,2,ДопустимыйЗнак.Неотрицательный);
ТабИтог = новый ТаблицаЗначений;
ТабИтог.Колонки.Добавить("Объект", Новый ОписаниеТипов("СправочникСсылка.Склады"));
ТабИтог.Колонки.Добавить("ГруппаРаспределения", Новый ОписаниеТипов("СправочникСсылка.ГруппыРаспределения"));
ТабИтог.Колонки.Добавить("ЗП", Новый ОписаниеТипов("Число",,,КвалификаторЧисла));
ТабИтог.Колонки.Добавить("ПериодНачисления", Новый ОписаниеТипов("Дата",,,КвалификаторДаты));
ТабИтог = Результат;
Отбор = Новый Структура("ПериодНачисления");
МассивПустыхСтрок = ТабИтог.НайтиСтроки(Отбор);
Для Каждого СтрокаМассива из МассивПустыхСтрок Цикл
ТабИтог.Удалить(СтрокаМассива);
КонецЦикла;
Возврат ТабИтог;
КонецФункции
ПоказатьВесь код тебе не нужен, что-нибудь может пригодиться.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Я вот так программно формировал таблицу на СКД:
Весь код тебе не нужен, что-нибудь может пригодиться.
Функция Отчет()
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикНастроек1 = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек1.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек1.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
КомпоновщикНастроек1.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период", ЭтотОбъект.Период);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек1.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновки = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
Результат = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КвалификаторДаты = Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя);
КвалификаторЧисла = Новый КвалификаторыЧисла(15,2,ДопустимыйЗнак.Неотрицательный);
ТабИтог = новый ТаблицаЗначений;
ТабИтог.Колонки.Добавить("Объект", Новый ОписаниеТипов("СправочникСсылка.Склады"));
ТабИтог.Колонки.Добавить("ГруппаРаспределения", Новый ОписаниеТипов("СправочникСсылка.ГруппыРаспределения"));
ТабИтог.Колонки.Добавить("ЗП", Новый ОписаниеТипов("Число",,,КвалификаторЧисла));
ТабИтог.Колонки.Добавить("ПериодНачисления", Новый ОписаниеТипов("Дата",,,КвалификаторДаты));
ТабИтог = Результат;
Отбор = Новый Структура("ПериодНачисления");
МассивПустыхСтрок = ТабИтог.НайтиСтроки(Отбор);
Для Каждого СтрокаМассива из МассивПустыхСтрок Цикл
ТабИтог.Удалить(СтрокаМассива);
КонецЦикла;
Возврат ТабИтог;
КонецФункции
ПоказатьВесь код тебе не нужен, что-нибудь может пригодиться.
(2)
Спасибо. То что нужно. Нужна была только эта часть кода:
И спасибо за все остальное, пригодится.
КомпоновщикНастроек1.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
Спасибо. То что нужно. Нужна была только эта часть кода:
КомпоновщикНастроек1 = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек1.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек1.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
КомпоновщикНастроек1.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период", ЭтотОбъект.Период);
И спасибо за все остальное, пригодится.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот