Вопрос

Суммирование для мультивалютных полей

Доброе утро, коллеги.



Я хотел бы попросить поделиться опытом по решению такой задачи. У меня есть разделы заявка и счет. И там и там есть поле сумма. Они мультивалютные. Мне необходимо подбить сумму по всем счетам, которые есть в заявке.

Мой алгоритм действий:

1. На объекте счет по событию сохранение и удаление я запускаю скрипт таск, который содержит код для класса Select, который проводит суммирование по полю сумма бв в счетах и записывает в поле сумма бв в заявке.

2. На странице заявки есть методы для пересчета мультивалютных полей.  В методе onEntityInitialized я запускаю эти методы.



Это не совсем хорошее решение поскольку логика отрабатывает каждый раз когда я захожу на страницу редактирования, в не зависимости от того были какие-то изменения в счете или нет.

И все бы ничего плохо, но работает, но есть более существенный недочет. Если вынести в реестр раздела заявки колонку сумму, то в ней после изменений в разделе счет не будут отображаться изменения, поскольку логика отработает, только тогда, когда я зайду на страницу редактирования данной заявки.



Итого подскажите, пожалуйста, как доделать решение моим методом или еще лучше, как сделать эту задачу правильнее. Буду очень благодарен за примеры кода, так как я начинающий разработчик и многие очевидные вещи для опытных разработчиков, для меня совершенно неочевидные )

Нравится

3 комментария

Добрый день.

А если сделать процесс по пересчёту суммы в заказе, который будет вызываться после изменения счёта. Тогда эта логика не будет отрабатывать каждый раз при открытии карточки, а будет завязана на изменения счёта.

Demchenko Olha,

Спасибо за помощь)

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

 Если валюты счетов и заявки совпадают, то рано или поздно вы получите ошибки округления. Потому я бы суммировал в валюте, если валюты совпадают, и в базовой валюте, если валюты разные

Показать все комментарии