Имя: Пароль:
1C
 
ERP 2.5, обработать данные временной таблицы перед записью движений
0 Dmitry1c
 
29.11.22
16:59
ERP 2.5, механизм проведения


я возможно чего-то делаю не так, но возникла потребность при проведении документа обработать результат общего запроса, который формируется в процедуре ДанныеДокументаДляПроведения модуля менеджера

то есть при проведении сделать дополнительные вычисления

для этого есть какой-то стандартный способ?
1 shuhard
 
29.11.22
17:37
(0) В модуле локализации движений смотрел
2 stix2010
 
29.11.22
17:58
(0) много их - Локализации разные, есть схема на ИС с порядком проведения.

Можешь тут покопаться ПроведениеДокументов.ТаблицыДляДвижений
3 Dmitry1c
 
23.12.22
10:39
(1) (2) не смог найти


сделал как: в ЗаполнитьПараметрыИнициализации указал параметром таблицу, а в эту таблицу на лету рассчитал нужные мне данные.

не знаю, насколько корявый этот подход, вроде ничего я этим не нарушил, но архитектурно точно неправильно: этого способа я в типовой не встречал
4 Dmitry1c
 
23.12.22
10:41
(3) +конечно корявый: вместо выполнения 1 запроса, как предусматривает архитектура решения, выполняется отдельный мой запрос и отдельный основной запрос
5 ass1c
 
23.12.22
10:48
Смотря что конкретно тебе нужно. Результат итогового текста запроса является множество таблиц с движениями для различных регистров. В результате тебе нужна какая то отдельная таблица или ты хочешь обработать прям все данные итогового результата запроса?
6 Dmitry1c
 
23.12.22
10:50
(5) у меня сложный алгоритм расчета, то что мне нужно я в запросе сделать не могу.
7 Dmitry1c
 
23.12.22
10:53
Конкретно мне нужно пропорциональное распределение с округлением копеек, я это в запросе при формировании таблицы для записи в регистр сделать не могу.

Отдельную табличную часть в документе, куда бы предварительно я мог бы сгружать результат расчета я делать не стал, дабы не перегружать метаданные.
8 ass1c
 
23.12.22
11:03
(7)
Если в результате запроса тебе в итоговой таблице всего лишь нужно что-то подправить или проверить, то я бы исправлял это в модуле менеджера твоего регистра в процедуре "ОтразитьДвижения"

Процедура ОтразитьДвижения(ТаблицыДляДвижений, Движения, Отказ) Экспорт
    
    Если Отказ Тогда
        Возврат;
    КонецЕсли;
    
    ПроверитьЗаполнитьАналитикуУчетаПоПартнерам(ТаблицыДляДвижений.ИмяТвоейТаблицы); //самописная процедура в которой мы можем править движения в виде таблицы значений, они в дальнейшем лягут в регистр
.....
        
КонецПроцедуры
9 ass1c
 
23.12.22
11:04
(7)
Но конечно более оптимальнее и красивее это рассчитать все данные заранее и потом просто поместить их в запрос (установить таблицу как параметр) и сформировать текст запроса движения уже по данным из этой таблицы...