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

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

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

Шаг 1: Проверка регистрации изменений и состава отправляемых данных

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

В открывшемся окне найдем объект Документ.РеализацияТоваровУслуг. Нам нужно проверить:

  1. Зарегистрированы ли конкретные документы за апрель в узле обмена.
  2. Если список пуст, значит, документы не прошли первичный фильтр при регистрации. Попробуем зарегистрировать их вручную через кнопку «Зарегистрировать объекты выбранного типа» и повторим обмен.
  3. Если документы в списке есть, но после выполнения обмена они оттуда не исчезают, значит, произошла ошибка на этапе выгрузки, которую нужно искать в Журнале регистрации УТ.

Шаг 2: Метод «Хитрого плана» — анализ через файл обмена

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

Выполним выгрузку из УТ в XML-файл. После завершения процесса откроем полученный файл любым текстовым редактором или браузером. Нам нужно найти в тексте XML строки, соответствующие нашим реализациям (поиск по номеру документа или по тегу Document.SalesInvoice, если используется формат EnterpriseData).

Проанализируем ситуацию:

Шаг 3: Проверка фильтров в настройках синхронизации УТ

Часто корень проблемы кроется в «забытых» настройках. Проверим параметры в УТ, которые могут отсекать реализации:

  1. Дата начала выгрузки: Если установлена дата, например, 01.05.2023, то документы за апрель регистрироваться будут, но в пакет выгрузки не попадут.
  2. Фильтр по организациям: Убедимся, что в настройках обмена выбраны все нужные организации. Часто реализацию делают от нового юрлица, которое забыли включить в обмен.
  3. Фильтр по складам: Если в УТ настроена выгрузка только по конкретным складам, а апрельские реализации прошли по новому или розничному складу, они будут проигнорированы.
  4. Состояние документа: В типовых правилах часто стоит запрет на выгрузку непроведенных документов. Убедимся, что наши реализации проведены.

Шаг 4: Поиск «невидимых» документов в базе-приемнике (БП)

Иногда документы в БП попадают, но не туда, где их ожидает увидеть пользователь. Разберем, где они могут прятаться:

Шаг 5: Анализ Журнала регистрации в БП 3.0

Выясним причину «молчаливого» отказа системы от загрузки данных. Для этого в БП перейдем в Администрирование — Обслуживание — Журнал регистрации.

Установим фильтр по событию «Обмен данными». Нам нужно найти записи со статусом «Ошибка» или «Предупреждение». Часто там можно встретить сообщения следующего типа:

«Объект не может быть записан, так как дата документа находится в закрытом периоде».

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

Шаг 6: Конфликты сопоставления и дубли

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

  1. Зайдем в Результаты синхронизации данных в БП.
  2. Посмотрим вкладку «Конфликты». Если наша реализация там есть, система не знает, чью версию данных считать приоритетной.
  3. Проверим префиксы. Если в УТ и БП настроены разные префиксы информационных баз, убедимся, что они корректно подставляются в номера документов. Конфликт префиксов часто приводит к тому, что документ считается «чужим».

Шаг 7: Отладка процесса загрузки (для разработчиков)

Если ни один из вышеперечисленных способов не помог, придется прибегнуть к отладке. Посмотрим, как это сделать правильно:

Для этого в БП нужно использовать обработку «Регистрация изменений для обмена» или запустить сеанс в режиме отладки. Основной интерес представляет модуль ОбменДаннымиСервер и процедуры, отвечающие за чтение сообщения обмена.

Нам важно поймать момент выполнения следующего кода в приемнике:


// В момент загрузки объекта система выполняет поиск по правилам
ПланыОбмена.ВыполнитьЗагрузкуДанных(ЧтениеСообщения);
// Если документ не проходит проверку заполнения в БП, он может не записаться
Если Не ДокументОбъект.Записать() Тогда
    ЗаписатьВЖурналРегистрации("Ошибка записи при обмене", ...);
КонецЕсли;

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

Резюме: Чаще всего отсутствие реализаций при наличии поступлений связано либо с фильтром по складам/организациям в УТ, либо с датой запрета загрузки в БП. Пройдя по шагам от состава отправляемых данных до анализа XML-файла, вы гарантированно найдете точку, на которой данные теряются.

← На главную