Часто в процессе эксплуатации типового обмена между 1С:Управление торговлей 11 и 1С:Бухгалтерия 3.0 пользователи сталкиваются с тем, что повторные изменения в уже выгруженных документах не «доходят» до базы-приемника. Рассмотрим вместе, как провести диагностику и заставить систему корректно учитывать правки.
Первым делом мы должны проверить, видит ли вообще план обмена факт изменения нашего документа. В типовых конфигурациях 1С обмен данными работает через механизм регистрации изменений. Если при проведении документа в УТ 11 запись в таблицу регистрации не попала, то и выгружать будет нечего.
Для проверки выполним следующие действия:
Регистрация изменений для обмена данными.БП 3.0.Если документа нет в списке зарегистрированных, значит, «отвалилась» подписка на событие или произошел сбой в РегламентныеЗадания. В этом случае мы можем попробовать зарегистрировать объект вручную, нажав кнопку Зарегистрировать в этой же обработке.
Разберем ситуацию, когда документ числится в очереди, но синхронизация всё равно не проходит. Возможно, сработали фильтры данных. Рассмотрим настройки параметров синхронизации:
Бывает так, что данные уже ушли в БП 3.0, но там они были отредактированы вручную. Механизм EnterpriseData может препятствовать затиранию таких правок. Если в БП 3.0 документ помечен как отредактированный после даты последней загрузки, система может игнорировать входящие пакеты данных из УТ 11. Проверьте журнал регистрации в БП 3.0 на предмет ошибок при получении сообщений.
Обычно обмен работает в фоне через РегламентныеЗадания, что скрывает от нас детальные сообщения об ошибках. Чтобы разобраться в проблеме, выполним принудительный обмен:
GUID.Если конфигурация «типовая», это не исключает наличия Расширения конфигурации, которые могли быть установлены для интеграции с другими сервисами или доработки специфических печатных форм. Расширения могут содержать перехватчики (события ПередЗаписью или ПриЗаписи), которые блокируют стандартный механизм записи изменений в планы обмена.
Для чистоты эксперимента мы можем временно отключить все расширения и попробовать провести документ заново:
// Пример проверки регистрации объекта программно (для консоли кода)
ОбъектСсылка = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("0000001", ТекущаяДата());
УзелОбмена = ПланыОбмена.ОбменСБухгалтерией.НайтиПоКоду("БП");
ДанныеДляОбмена = ПланыОбмена.ИзменитьРегистрацию(УзелОбмена, ОбъектСсылка);
// Если возвращает Ложь, значит, в модуле есть проблема с записью в план обмена
В завершение, если ничего не помогает, рекомендуем использовать метод принудительной перерегистрации всех объектов (с осторожностью на больших базах) или сравнение GUID документов в обеих базах. Если GUID различаются, синхронизация будет создавать дубли, а не обновлять существующий документ.