|
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)
Но конечно более оптимальнее и красивее это рассчитать все данные заранее и потом просто поместить их в запрос (установить таблицу как параметр) и сформировать текст запроса движения уже по данным из этой таблицы...
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший