Проверка в подписке на событие ломает загрузку данных из обмена
Расширением добавлена подписка на событие «ПередЗаписью» справочника «Контрагенты»:
Процедура ПередЗаписьюКонтрагента(Источник, Отказ) Экспорт
Если ПустаяСтрока(Источник.ИНН) Тогда
ВызватьИсключение "Не заполнен ИНН";
КонецЕсли;
КонецПроцедуры
Пользователи довольны: вручную создать контрагента без ИНН теперь нельзя. Но после включения подписки сломался регулярный обмен со складской базой — сообщения перестали загружаться целиком, в том числе документы.
В чём дефект?
- Подписки нельзя создавать в расширениях: платформа вызывает их дважды и вторая попытка падает
- В подписке на «ПередЗаписью» нельзя вызывать исключение: платформа разрешает здесь только устанавливать параметр «Отказ» и выводить сообщение
- Обработчик не учитывает признак записи в режиме загрузки по обмену данными: при загрузке такие проверки нужно пропускать
- Обмен нужно перевести на запись объектов с отключением бизнес-логики в правилах конвертации
