Версия для печати темы (https://pro1c.org.ua/index.php?s=9caa1fa1ff4439129f6a642696f355ac&showtopic=41677)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Передать таблицу значений в построитель отчета

Автор: Vidocq05 06.11.17, 16:33

УТП 1.2
Взял за основу типовой отчет "Продажи". Мне его нужно дополнить своими данными с таблицы значений. Пытаюсь так:

УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("КатегоризацияТЗ",КатегоризацияТЗ);
УниверсальныйОтчет.ПостроительОтчета.Текст = "ВЫБРАТЬ
            |    Категоризация.Реквизит1,
            |    Категоризация.Реквизит2
            |ПОМЕСТИТЬ КатегоризацияВТ
            |ИЗ
            |    &КатегоризацияТЗ КАК Категоризация
            |;
// Дальше текст с типового

Но выдает ошибку -
{ВнешнийОтчет.Продажи.МодульОбъекта(94)}: Ошибка при установке значения атрибута контекста (Текст)
УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
по причине:
{(9, 2)}: Неверные параметры "КатегоризацияТЗ"
<<?>>&КатегоризацияТЗ КАК Категоризация

Как передать таблицу значений в построитель отчета?

Автор: DrLivsi 06.11.17, 16:46

Vidocq05 @ Сегодня, 17:33 * ,
ПостроительОтчета.Параметры.Вставить(Ключ, Значение);

<Ключ> (обязательный)

Тип: Строка.
Ключ устанавливаемого элемента. Ключ должен соответствовать правилам, установленным для идентификаторов:
Первым символом ключа должна быть буква или символ подчеркивания (_).
Каждый из последующих символов может быть буквой, цифрой или символом подчеркивания (_).
<Значение> (необязательный)

Тип: Произвольный.
Значение устанавливаемого элемента.

Автор: Vidocq05 06.11.17, 16:56

DrLivsi @ Сегодня, 17:46 * ,
Не понятно, что Вы хотите этим сказать. КатегоризацияТЗ - это таблица значений.

Автор: Petre 06.11.17, 17:00

Vidocq05 @ Сегодня, 17:56 * ,
ТЗ типизирована? ТЗ не содержит бесконечных строк?

Автор: Vidocq05 06.11.17, 17:12

Цитата(Petre @ 06.11.17, 18:00) *
ТЗ типизирована?

Типизирована. Обычьный запрос с ней нормально работает.

Автор: Vladal 07.11.17, 11:37

Цитата(Vidocq05 @ 06.11.17, 17:12) *
ТЗ типизирована?
Типизирована. Обычный запрос с ней нормально работает.

"обычный запрос" и будет работать. Консоль запросов менее требовательная и более всеядная.

Как получаете эту таблицу значений? Выгрузкой запроса или другого объекта базы?
Если создаете просто
ТаблицаЗначений.Колонки.Добавить("Реквизит1");
- то такую ТЗ построитель не возьмет. Для таких таблиц колонки нужно создавать с описанием типов:
ТаблицаЗначений.Колонки.Добавить("Реквизитй", Новый ОписаниеТипов("СправочникСсылка.ВариантыОтветовОпросов"));

Автор: Vidocq05 09.11.17, 10:09

Vladal @ 07.11.17, 12:37 * ,
Таблицу значений получаю из хранилища значений. В хранилище она попадает из табличной части обработки. Так что типизирована.
В интернете чтото находил, что типа построитель отчета не работает с временными таблицами, что нужно ТЗ закидывать в ИсточникДанных. Не совсем понял и подробностей никаких не нашел. Пытался просто закинуть ТЗ в ИсточникДанных - та же ошибка.

Автор: Vladal 14.11.17, 16:01

Vidocq05 @ 09.11.17, 10:09 * ,
Покажите, как закидывали ТЗ в Построитель?

Вот работающий пример:

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


Далее можно программно установить группировки и итоги.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua