Почему не обновляются документы в 1С:Бухгалтерии при повторной выгрузке из 1С:Управление торговлей?

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

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

Анализ конфликтов и раздела «Предупреждения»

В современных конфигурациях 1С на базе управляемых форм используется механизм синхронизации данных через формат EnterpriseData. Одной из самых частых причин отсутствия обновлений является автоматическое разрешение конфликтов. Разберем, как это работает: если после последнего обмена документ был изменен и в УТ, и в БП (даже если в БП это было простое перепроведение), система помечает это как конфликт.

Проанализируем ситуацию в интерфейсе базы-приемника (БП):

  1. Перейдем в раздел Администрирование — Синхронизация данных.
  2. Откроем ссылку Настройки синхронизации данных.
  3. Выделим нужную настройку и нажмем кнопку Результаты синхронизации (или ссылку «Предупреждения»).
  4. Перейдем на вкладку Конфликты.

Если в списке присутствуют интересующие нас документы, это означает, что система не знает, какую версию считать приоритетной. По умолчанию может быть настроен приоритет «принимающей» стороны. В этом случае изменения из УТ будут игнорироваться. Для решения необходимо вручную подтвердить версию из УТ или настроить правила разрешения конфликтов в пользу источника данных.

Проверка регистрации изменений в базе-источнике

Выясним причину на стороне источника (УТ). Возможно, изменения документа просто не зарегистрированы к отправке. Синхронизация работает по принципу регистрации: любое изменение объекта должно попасть в специальную таблицу «очереди» на выгрузку. Посмотрим на этот процесс подробнее:

  1. В 1С:Управление торговлей перейдем в Администрирование — Синхронизация данных.
  2. Нажмем на значок Состав отправляемых данных (иконка в виде списка рядом с настройкой обмена).
  3. Найдем в дереве объектов нужный тип документа (например, Реализация товаров и услуг).
  4. Проверим, зарегистрирован ли конкретный документ в списке.

Если документа в списке нет, значит, он не прошел фильтры выгрузки. Например, если в настройках обмена установлена дата начала выгрузки или фильтр по конкретной организации/складу, а после изменения документ перестал соответствовать этим условиям, он не будет отправлен. Если документ есть в списке, но в БП не меняется — проблема на стороне приема.

Идентификация объектов: GUID и Публичные идентификаторы

Связь между документами в разных базах осуществляется не по номеру и дате, а по внутреннему уникальному идентификатору (GUID). Если связь нарушена, документ может перестать обновляться. Рассмотрим два ключевых регистра, которые отвечают за это:

Регистр сведений «Публичные идентификаторы синхронизируемых объектов» хранит сопоставление объектов в формате XML. Если записи в этом регистре в УТ и БП по какому-то объекту различаются, система может воспринимать их как разные сущности или блокировать обновление.

Регистр сведений «Сведения о синхронизации объектов» — это «сердце» обмена. Именно здесь хранится информация о том, какой ссылке в текущей базе соответствует ссылка во внешней базе. Посмотрим, как проверить программно соответствие идентификаторов, если у нас есть подозрение на дубли или некорректное сопоставление:


// Пример получения GUID для проверки сопоставления
СсылкаНаДокумент = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("00001", Дата);
УникальныйИдентификатор = СсылкаНаДокумент.УникальныйИдентификатор();
Сообщить("GUID документа в текущей базе: " + УникальныйИдентификатор);

Если записи в регистре СведенияОСинхронизацииОбъектов повреждены или отсутствуют, БП может создать новый документ вместо обновления старого, либо (в случае Базовой версии) просто проигнорировать загрузку, так как не сможет сопоставить объект.

Даты запрета и блокировки в Бухгалтерии (Базовая версия)

В сообщении упоминается использование БП Базовая. Это накладывает определенные ограничения. Рассмотрим подробнее влияние учетной политики и дат запрета:

  1. Дата запрета редактирования: Если документ в БП попадает в закрытый период, загрузка изменений будет заблокирована платформой. При этом в журнале регистрации может появиться запись о невозможности записи объекта.
  2. Ручные корректировки: В 1С:Бухгалтерии есть флаг «Ручная корректировка (содержит исправления, сделанные вручную)». Если бухгалтер зашел в проводки документа и установил эту галочку, стандартный механизм обмена часто блокирует перезапись такого документа извне, чтобы не стереть ручной труд бухгалтера. Если после таких блокировок или ручных изменений требуется проверить соответствие учёта, для быстрого поиска отклонений запускают автоматическое сравнение бухгалтерских и налоговых проводок между базами.
  3. Связанные документы: Если на основании «Реализации» в БП создан «Счет-фактура выданный» или документ оплаты, и они уже проведены, то в Базовой версии изменение родительского документа может быть ограничено логикой транзакций платформы.

Версионность данных и кэш обмена

Проанализируем ситуацию с точки зрения версионности объектов. При обмене EnterpriseData в XML-сообщении передается номер версии объекта. Если система в БП видит, что к ней пришел документ с номером версии 5, а у нее уже успешно загружена версия 5, она проигнорирует этот объект, считая, что ничего не изменилось.

Иногда возникает сбой, при котором изменения в УТ произведены, но «номер версии» для обмена не увеличился. В таком случае помогает полная перерегистрация объектов. Рассмотрим, как это сделать:

  1. В УТ в окне Состав отправляемых данных выберем нужные документы.
  2. Нажмем Зарегистрировать — Все объекты выбранных типов.
  3. Запустим синхронизацию повторно.

Это заставит систему принудительно выгрузить все данные, игнорируя предыдущие состояния «успешности» обмена.

Подведение итогов и рекомендации

Для исправления проблемы «неперезатирания» документов рекомендуем следующий алгоритм действий:

  1. Проверьте в БП раздел «Предупреждения при синхронизации». Если там есть конфликты — разрешите их в пользу УТ.
  2. Убедитесь, что в БП не установлена Дата запрета загрузки данных (Администрирование — Синхронизация данных).
  3. Проверьте, не стоит ли в документах БП признак Ручной корректировки проводок.
  4. В УТ используйте обработку «Регистрация изменений для обмена», чтобы убедиться, что измененные документы физически стоят в очереди на выгрузку.
  5. Если используется прямое подключение (не через файлы), проверьте права пользователя, под которым осуществляется подключение к БП — у него должны быть полные права на запись и проведение документов.

Помните, что в стандартном обмене приоритет всегда можно отследить через монитор синхронизации. Если же проблема сохраняется даже при отсутствии конфликтов, стоит проверить регистр Сведения о синхронизации объектов на наличие дублей или «битых» ссылок, которые могли возникнуть при некорректном удалении объектов в одной из баз.

← На главную