Почему измененные документы не передаются из 1С:УТ 11 в 1С:БП 3.0 при синхронизации?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Часто в процессе эксплуатации типового обмена между 1С:Управление торговлей 11 и 1С:Бухгалтерия 3.0 пользователи сталкиваются с тем, что повторные изменения в уже выгруженных документах не «доходят» до базы-приемника. Рассмотрим вместе, как провести диагностику и заставить систему корректно учитывать правки.

Шаг 1. Анализ регистрации изменений

Первым делом мы должны проверить, видит ли вообще план обмена факт изменения нашего документа. В типовых конфигурациях 1С обмен данными работает через механизм регистрации изменений. Если при проведении документа в УТ 11 запись в таблицу регистрации не попала, то и выгружать будет нечего.

Для проверки выполним следующие действия:

  1. Откроем Функции технического специалиста (в старых версиях «Все функции»).
  2. Найдем обработку Регистрация изменений для обмена данными.
  3. В списке выберем нужный нам узел обмена, соответствующий базе БП 3.0.
  4. В дереве объектов найдем наш вид документа и конкретный документ, который был изменен.

Если документа нет в списке зарегистрированных, значит, «отвалилась» подписка на событие или произошел сбой в РегламентныеЗадания. В этом случае мы можем попробовать зарегистрировать объект вручную, нажав кнопку Зарегистрировать в этой же обработке.

Шаг 2. Проверка настроек синхронизации

Разберем ситуацию, когда документ числится в очереди, но синхронизация всё равно не проходит. Возможно, сработали фильтры данных. Рассмотрим настройки параметров синхронизации:

Шаг 3. Конфликт версий и ручное редактирование

Бывает так, что данные уже ушли в БП 3.0, но там они были отредактированы вручную. Механизм EnterpriseData может препятствовать затиранию таких правок. Если в БП 3.0 документ помечен как отредактированный после даты последней загрузки, система может игнорировать входящие пакеты данных из УТ 11. Проверьте журнал регистрации в БП 3.0 на предмет ошибок при получении сообщений.

Шаг 4. Диагностика через ручную выгрузку

Обычно обмен работает в фоне через РегламентныеЗадания, что скрывает от нас детальные сообщения об ошибках. Чтобы разобраться в проблеме, выполним принудительный обмен:

  1. Перейдем в раздел Администрирование -> Синхронизация данных.
  2. Запустим синхронизацию вручную, нажав кнопку Синхронизировать.
  3. Внимательно изучим окно сообщений, которое появится по окончании процесса. Система часто выводит предупреждения, если объект был пропущен из-за конфликта ссылок или GUID.

Шаг 5. Работа с расширениями и кэшем

Если конфигурация «типовая», это не исключает наличия Расширения конфигурации, которые могли быть установлены для интеграции с другими сервисами или доработки специфических печатных форм. Расширения могут содержать перехватчики (события ПередЗаписью или ПриЗаписи), которые блокируют стандартный механизм записи изменений в планы обмена.

Для чистоты эксперимента мы можем временно отключить все расширения и попробовать провести документ заново:


// Пример проверки регистрации объекта программно (для консоли кода)
ОбъектСсылка = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("0000001", ТекущаяДата());
УзелОбмена = ПланыОбмена.ОбменСБухгалтерией.НайтиПоКоду("БП");
ДанныеДляОбмена = ПланыОбмена.ИзменитьРегистрацию(УзелОбмена, ОбъектСсылка);
// Если возвращает Ложь, значит, в модуле есть проблема с записью в план обмена

В завершение, если ничего не помогает, рекомендуем использовать метод принудительной перерегистрации всех объектов (с осторожностью на больших базах) или сравнение GUID документов в обеих базах. Если GUID различаются, синхронизация будет создавать дубли, а не обновлять существующий документ.

← На главную