Имя: Пароль:
1C
 
СКД : Использование табличной части отчета в ПриКомпоновкеРезультата
0 bvb
 
17.06.25
17:07
Добрый день

У отчета на СКД есть табличная часть, в которой содержатся данные для построения данного отчета (загружается во внешний набор данных в ПриКомпоновкеРезультата)

Заполнение / обновление этой ТЧ происходит по требованию на основании данных  API (кнопка на форме)

Проблема  в том что ПриКомпоновкеРезультата  видит данную ТЧ, но она всегда пустая

ИМХО проблема в том, что ПриКомпоновкеРезультата выполняется в фоне
1 PR
 
17.06.25
17:26
Да
2 bvb
 
17.06.25
17:52
(1) Что делать то ?

Я не хочу ваять для этих целей регистр сведений.
А в голову ничего более не идет
3 craxx
 
17.06.25
18:39
(2) МенеджерВременныхТаблиц прекрасно работает в СКД
4 bvb
 
17.06.25
18:50
(3) В данном случае какая разница что наполнять как источник запроса : внешний набор данных макета СКД или  МенеджерВременныхТаблиц ?

У меня таблица с данными готовится по кнопке в форме отчета &НаСервере,  а запихнуть в компоновщик ее нужно в ПриКомпоновкеРезультата
5 DiMel_77
 
17.06.25
19:21
(0) Насколько я понял, вы пытаетесь используя типовую форму отчета БСП сформировать отчет используя в качестве источника данных табличную часть объекта отчета. Т.е. выполняете заполнение табличной части объекта (используя какие то алгоритмы), а потом вызываете какой нибудь типовой метод типа "ВариантыОтчетов.СформироватьОтчетВФоне" или что-то подобное. А в этом методе по имени варианта создается новый объект отчета... Соответственно, данные которые вы заполнили не передаются в этот новый объект. Откажитесь от фонового формирования и сформируйте отчет непосредственно вызвав метод "СкомпоноватьРезультат".
6 craxx
 
17.06.25
18:54
(4) То есть не в момент формирования отчета? а ранее?
7 craxx
 
17.06.25
18:57
+(4) Есть такая штука, называется КомпоновщикНастроек.ПользовательскиеНастройки
Вот можно как раз в таблицу значений выгрузить ТЧ, положить во временное хранилище ТЗ, а адрес ВХ передать в параметр отчета, который в ПриКомпоновкеРезультата обратно превратить в ТЗ и загрузить (например через МВТ)
8 PR
 
17.06.25
19:49
(2) А, так это вопрос был
А то в (0) знаков вопроса нет, я не понял, ты хвастаешься что ли или чего
Помещай во временное хранилище или храни в настройках СКД
9 bvb
 
18.06.25
11:22
(5) Спасибо за разъяснение "создается новый объект отчета".
А то я не мог вкурить почему ПриКомпоновкеРезультата ТЧ видится, но она пустая


(8) Спасибо. Просто и сердито (я чего то устал и туплю)

а) Вариант с временным хранилищем :   адрес хранилища хранить в параметре сеанса ?

б) Вариант с настройками СКД : Мне нужно в настройки "основной схемы компоновки данных" засунуть в ТЗ, сформированное на сервере ?
Или лучше адрес хранилища ?
А как это сделать ? Может есть функция БСП и или рабочий пример кода ?
10 bvb
 
18.06.25
12:59
Короче :
С ВременнымХранилищем не взлетает -  ПриКомпоновкеРезультата значение хранилища не видит.

Адрес хранилища передать можно только через строковую константу
Через параметр сеанса нельзя : "Попытка получения неинициализированного значения параметра сеанса"

Сделал так :
Сделал константу типа  ХранилищеЗначения в нее пихаю ТЗ

В компоновщике получаю константу и получаю ТЗ из хранилища значения и пихаю ее в набор данных

Мне удобно тем что данные хранятся и доступны всем до следующего обновления значения в константе.

Морочиться с передачей параметром СКД думаю в данной задаче не стоит
11 toypaul
 
гуру
18.06.25
14:03
(10) через доп свойства КомпоновщикНастроек.Настройки можно передать адрес
12 Мультук
 
гуру
18.06.25
14:11
(10)

{del}
13 craxx
 
18.06.25
21:47
(10) я же тебе в (7) написал как сделать.
а если 2 человека одновременно отчет будут формировать?
какое значение в константу запишется?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший