Доброе утро, коллеги.
Я хотел бы попросить поделиться опытом по решению такой задачи. У меня есть разделы заявка и счет. И там и там есть поле сумма. Они мультивалютные. Мне необходимо подбить сумму по всем счетам, которые есть в заявке.
Мой алгоритм действий:
1. На объекте счет по событию сохранение и удаление я запускаю скрипт таск, который содержит код для класса Select, который проводит суммирование по полю сумма бв в счетах и записывает в поле сумма бв в заявке.
2. На странице заявки есть методы для пересчета мультивалютных полей. В методе onEntityInitialized я запускаю эти методы.
Это не совсем хорошее решение поскольку логика отрабатывает каждый раз когда я захожу на страницу редактирования, в не зависимости от того были какие-то изменения в счете или нет.
И все бы ничего плохо, но работает, но есть более существенный недочет. Если вынести в реестр раздела заявки колонку сумму, то в ней после изменений в разделе счет не будут отображаться изменения, поскольку логика отработает, только тогда, когда я зайду на страницу редактирования данной заявки.
Итого подскажите, пожалуйста, как доделать решение моим методом или еще лучше, как сделать эту задачу правильнее. Буду очень благодарен за примеры кода, так как я начинающий разработчик и многие очевидные вещи для опытных разработчиков, для меня совершенно неочевидные )
Нравится
Добрый день.
А если сделать процесс по пересчёту суммы в заказе, который будет вызываться после изменения счёта. Тогда эта логика не будет отрабатывать каждый раз при открытии карточки, а будет завязана на изменения счёта.
который проводит суммирование по полю сумма бв в счетах и записывает в поле сумма бв в заявке
Если валюты счетов и заявки совпадают, то рано или поздно вы получите ошибки округления. Потому я бы суммировал в валюте, если валюты совпадают, и в базовой валюте, если валюты разные