Добрый день. Фоновое задание перерассчитывает реквизиты документов и перезаписывает их. Если форма документа открыта на ней вызывается ошибка записи документа другим пользователем. Из фонового задания оповещения послать нельзя. Как обмануть форму? Можно ли отловить ошибку перед ее выводом например чтобы перечитать форму?
(2) 1. Пропускать в фоновом если "форма открыта" и "объект редактируется другим пользователем"
2. Уведомлять в открытой форме объекта (если не редактируется) об изменении для обновления формы и перечитывать
Есть служебный реквизит ВерсияДанных. При записи он обновляется. Похоже надо сохранить его при открытии формы и проверить перед записью совпадет или нет с текущим. Или таймером вызывать проверку например раз в минуту. И тогда делать Перечитать().
Если совсем тяжко и какой-то большой документ с кучей данных (марки там сканируют или еще чего, чтобы после повторного чтения документа не пришлось 5 паллет пересканировать, но в целом, не рекомендую такую схему), то в регистр сведений изменения значений записывать фоновым, если он не может наложить блокировку на документ.
ОбработчикОжидания формы документа проверяет данные по изменению реквизитов в регистре сведений, оповещая об этом пользователя что было изменено. И вопрос: перезаполнить такие-то реквизиты Да\Нет. Тогда переоткрывать документ не придется, но всякие обработчики ПриИзменении - программно обработать.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший