Что делать, если при синхронизации 1С:Бухгалтерии с 1С:Управление торговлей переносятся не все контрагенты и номенклатура?

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

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

Разберем влияние первичных настроек синхронизации

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

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

  1. Зайдем в раздел «Администрирование» — «Синхронизация данных» — «Настройки синхронизации».
  2. Откроем нашу настройку и перейдем в «Состав отправляемых данных».
  3. Убедимся, что выбрано «Выгружать всю номенклатуру» и «Выгружать всех контрагентов».

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

Проанализируем скрытые фильтры в базе-приемнике (УТ)

Часто проблема кроется не в том, что БП «не отдает», а в том, что УТ «не принимает». В 1С:Управление торговлей 11 существуют свои правила получения данных, которые могут блокировать загрузку объектов, даже если они физически присутствуют в файле обмена или COM-соединении.

Посмотрим на настройки на стороне УТ:

Исследование регистра «Соответствия объектов информационных баз»

Это одна из самых коварных причин «невидимости» данных. В 1С обмен работает на основе уникальных идентификаторов (GUID). Когда объект передается в первый раз, система создает запись в регистре сведений СоответствияОбъектовИнформационныхБаз. Эта запись связывает объект в БП с объектом в УТ.

Представим ситуацию: мы загрузили 100 контрагентов, а потом решили их удалить из УТ напрямую (или пометили на удаление и очистили базу), чтобы «перезалить» заново. Запись в регистре соответствий при этом часто остается «сиротой». При следующей синхронизации БП отправляет данные, УТ видит, что соответствие для этого GUID уже есть, пытается найти объект, не находит его (так как он удален) и... ничего не делает. Объект не создается заново, потому что система считает его уже синхронизированным.

Как это решить:

Необходимо очистить записи в регистре СоответствияОбъектовИнформационныхБаз для конкретного узла обмена. Это заставит систему при следующем сеансе синхронизации искать объекты по полям поиска (ИНН/КПП, Наименование) или создавать новые карточки.

Проверка обязательных реквизитов для УТ 11

База 1С:Управление торговлей 11 предъявляет гораздо более жесткие требования к заполнению справочников, чем 1С:Бухгалтерия. Если в БП у номенклатуры не заполнены ключевые поля, она может просто не пройти валидацию при загрузке в УТ.

Рассмотрим критически важные реквизиты:

  1. Единица измерения: Если в БП единица измерения создана «руками» и не привязана к классификатору (ОКЕИ), правила обмена могут не понять, как ее сопоставить.
  2. Вид номенклатуры: В УТ 11 это фундаментальный реквизит. Если в правилах обмена не прописано заполнение «Вида номенклатуры» по умолчанию, и объект приходит без него, база УТ может отказаться записывать такой объект.
  3. Группа финансового учета (ГФУ): Хотя этот реквизит обычно заполняется позже, его отсутствие в некоторых редакциях правил может приводить к ошибкам записи.

Выясним причину через Журнал регистрации. Откроем его в УТ в момент совершения обмена. Ищем события с уровнем «Ошибка» или «Предупреждение». Часто там можно встретить сообщения типа Ошибка при вызове метода контекста (Записать), за которыми следует описание: Поле 'Вид номенклатуры' не заполнено. Это и будет ответом, почему данные не «залетают» в базу.

Использование XML-файла для диагностики

Если вы используете прямое подключение (COM), процесс загрузки для нас остается «черным ящиком». Чтобы увидеть, что на самом деле передает БП, перенастроим обмен временно через локальный каталог (XML-файл).

Выполним выгрузку из БП в файл и откроем полученный Message_БП_УТ.xml любым текстовым редактором (например, Notepad++). Поищем в файле теги CatalogObject.Номенклатура. Если в файле мы видим все наши 5000 позиций, а в УТ загрузилось только 1000 — значит, проблема на 100% на стороне приемника (УТ), и нужно копать в сторону фильтров и правил записи объектов.

Пример структуры данных в файле, на которую стоит обратить внимание:


<CatalogObject.Номенклатура>
    <Ref>uuid-вашего-объекта</Ref>
    <DeletionMark>false</DeletionMark>
    <Description>Товар из БП</Description>
    <Артикул>001</Артикул>
    ...
</CatalogObject.Номенклатура>

Разрешение коллизий и приоритеты

В настройках синхронизации есть важный пункт: «Правила разрешения коллизий». Если установлено «Приоритет данных информационной базы-приемника», то при несовпадении данных или наличии в УТ объекта с таким же кодом/наименованием (но пустым), система может игнорировать входящие данные из БП, чтобы не затереть то, что уже есть в УТ.

Для первоначальной массовой загрузки данных мы рекомендуем временно установить «Приоритет данных информационной базы-отправителя». Это гарантирует, что информация из Бухгалтерии «победит» и корректно запишется в Управление торговлей.

Резюме и план действий

Если вы столкнулись с тем, что данные не переносятся полностью, пройдите по этому чек-листу:

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

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

← На главную