Имя: Пароль:
1C
1С v8
Получить значение переменной в процедуре ПриКомпоновкеРезультата
0 salvator
 
25.01.22
15:22
Доброго дня!
Вопрос, собственно такой.
Во внешнем отчете в процедуре "ПриКомпоновкеРезультата" необходимо получить переменную. Это таблица значений.
Изначально я ее формировал в модуле формы, пытался получить в модуле объекта. Что-то не вышло, забил.
Сделал экспортную функцию в модуле формы, где формирую эту таблицу значений. Далее в модуле формы ее получаю и использую.
Эта жа таблица значений нужна в процедуре ПриКомпоновкеРезультата.

Собственно, код в модуле объекта:

"РеквизитТаблица" - реквизит внешнего отчета с типом "ТаблицаЗначений".

Функция ПолучитьТаблицу() Экспорт
   Таб = Новый ТаблицаЗначений;
   Таб.Колонки.Добавить("Колонка1");
   ... заполняю таблицу...
   ЭтотОбъект.РеквизитТаблица = Таб;
   Возврат Таб;
КонецФункции

Процедура Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
   ЭтотОбъект.РеквизитТаблица <--- в отладчике тип "ТаблицаЗначений", но она пустая.
КонецПроцедуры

Пробовал помещать таблицу в "КомпоновщикНастроек.Настройки.ДополнительныеСвойства" - в процедуре "ПриКомпоновкеДанных" создаваемое свойство пропадает.
Подскажите, плиз.
1 salvator
 
25.01.22
15:23
Сорян,
"Сделал экспортную функцию в модуле формы" = "Сделал экспортную функцию в модуле ОБЪЕКТА"
2 salvator
 
25.01.22
15:28
Функцию ПолучитьТаблицу() вызываю из модуля формы в процедуре ПриСозданииНаСервере.
3 vicof
 
25.01.22
15:32
Помещать таблицу во временное хранилище.
4 salvator
 
25.01.22
15:49
(3)
Сделал строковый реквизит "АдресТаблицы",
в функции написал
АдресТаблицы = ПоместитьВоВременноеХранилище(Таб, Новый УникальныйИдентификатор);
Затем в процедуре ПриКомпоновкеРезультата
АдресТаблицы  - пустая строка.
5 SleepyHead
 
гуру
25.01.22
16:03
(4) сделай АдресТаблицы реквизитом отчета.
6 salvator
 
25.01.22
16:17
(5) Он им и является.
7 SleepyHead
 
гуру
25.01.22
16:22
(6) Присваиваешь в процедуре на сервере?

Напиши - Отчет.АдресТаблицы = ПоместитьВоВременноеХранилище(Таб, Новый УникальныйИдентификатор);
8 salvator
 
25.01.22
16:27
(7) В модуле объекта присваиваю. В функции экспортной. Которая вызывается из формы отчета. При создании на сервере.
Затем при формировании отчета (кнопка "Сформировать"), в процедуре ПриКомпоновкеРезультата получаю, что значения очищены.
9 SleepyHead
 
гуру
25.01.22
16:33
(8) После вызова экспортной функции надо тогда делать ЗначениеВРеквизитФормы()

Но проще всего сделать возврат адреса из экспортной фукнции, а в присоздании на сервере уже положить в реквизит отчета.
10 pechkin
 
25.01.22
16:33
нужно в доп свойства компоновщика устанавливать
11 salvator
 
25.01.22
16:56
(10) Уже писал об этом. Не получилось.
(9) Спасибо огромное, помогло.
Закон Брукера: Даже маленькая практика стоит большой теории.