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

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

Синхронизация данных между различными конфигурациями 1С — это одна из наиболее часто встречающихся задач при автоматизации бизнеса. Типовой сценарий предполагает передачу оперативных данных из торговой системы в бухгалтерскую, однако нередко возникает необходимость обратной выгрузки или двустороннего обмена справочниками, такими как Контрагенты и Договоры. В этой статье мы подробно разберем, как организовать надежный перенос информации из 1С:Бухгалтерия 3.0 в 1С:Управление торговлей 11.5, используя современные механизмы платформы.

Основные механизмы синхронизации в современных конфигурациях

Прежде всего, разберем технологический стек, на котором строится обмен. Если раньше разработчики полагались исключительно на Конвертацию данных 2.0, где правила жестко прописывались для конкретных метаданных, то современные версии (БП 3.0 и УТ 11.5) используют универсальный формат обмена Enterprise Data.

Проанализируем основные компоненты этой системы:

  1. Планы обмена: Специальные объекты метаданных, которые хранят информацию об узлах (базах-корреспондентах) и регистрируют изменения конкретных объектов.
  2. Enterprise Data (ED): Формат XML-сообщений, который позволяет базам «общаться» на одном языке, независимо от их внутренней структуры.
  3. Регламентные задания: Механизмы автоматизации, которые по расписанию запускают процесс выгрузки и загрузки данных без участия пользователя.

Шаг 1: Настройка типового обмена через формат Enterprise Data

Рассмотрим процесс настройки штатной синхронизации. Несмотря на то, что исторически первичной базой считается Управление торговлей, типовой помощник позволяет гибко настроить направление потоков данных.

Выясним последовательность действий в интерфейсе программ:

  1. В обеих базах необходимо зайти в раздел Администрирование — Синхронизация данных и установить соответствующий флаг.
  2. В 1С:Бухгалтерии создаем новую синхронизацию, выбрав в качестве программы-корреспондента 1С:Управление торговлей, редакция 11.
  3. На этапе настройки правил отправки данных мы можем указать, что справочники должны выгружаться. Важно проанализировать фильтры: система позволяет отправлять либо все объекты, либо только те, которые используются в документах, либо отобранные по конкретным группам.

Шаг 2: Регистрация изменений и работа планов обмена

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

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


// Пример регистрации конкретного контрагента для узла обмена
Процедура ЗарегистрироватьКонтрагентаНаУзле(ВыбранныйКонтрагент, УзелОбмена)
    ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, ВыбранныйКонтрагент);
КонецПроцедуры

Посмотрим на ситуацию, когда стандартного расписания недостаточно. В этом случае мы можем инициировать обмен принудительно, используя методы объекта ПланыОбмена или запуская фоновое задание через ДлительныеОперации.

Шаг 3: Сопоставление объектов и борьба с дублями

Проанализируем критически важный момент — идентификацию объектов. При синхронизации 1С использует два уровня поиска:

  1. Уникальный идентификатор (GUID): Если объект был создан одной базой и передан в другую, система запоминает его GUID. Это самый надежный способ связи.
  2. Поля поиска (ИНН/КПП, Наименование): Если справочники в обеих базах заполнялись вручную до настройки обмена, система попытается сопоставить их по ключевым полям. Для контрагентов это чаще всего ИНН + КПП.

Важный совет: Перед первым запуском обмена обязательно выполните поиск и удаление дублей в обеих информационных базах. Если в БП контрагент заведен с ИНН, а в УТ этот же контрагент без ИНН, система создаст дубль, так как не сможет их сопоставить.

Шаг 4: Особенности синхронизации договоров

Перенос договоров сложнее, чем перенос контрагентов, так как договор всегда имеет владельца. Рассмотрим технические нюансы:

Шаг 5: Использование Web-сервисов для мгновенной передачи

Если бизнес-процесс требует, чтобы контрагент появлялся на складе мгновенно после создания в бухгалтерии, регламентные задания (раз в 15 минут) могут не подойти. В этом случае рассмотрим реализацию событийного обмена через HTTP-сервисы.

Суть метода заключается в следующем: в модуле объекта Справочник.Контрагенты в процедуре ПриЗаписи прописывается код, который отправляет POST-запрос в базу-приемник. Приемник, получив данные в формате JSON или XML, создает или обновляет объект у себя.

Пример упрощенной структуры отправки данных через HTTPСоединение:


// Упрощенный пример отправки данных
Соединение = Новый HTTPСоединение("server_address", , "user", "password");
Запрос = Новый HTTPЗапрос("/v1/sync/counterparty");
Запрос.УстановитьТелоИзСтроки(ДанныеВФорматеJSON);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);

Мониторинг и отладка процесса

Выясним, что делать, если данные не приходят. Основной инструмент администратора — Журнал регистрации. В нем фиксируются ошибки разбора XML-пакетов и нарушения логики (например, попытка записать объект с незаполненным обязательным реквизитом).

Также рекомендуем использовать обработку «Регистрация изменений для обмена данными». С её помощью можно:

Подводя итог, можно сказать, что для связки БП 3.0 — УТ 11.5 оптимальным выбором будет использование штатного механизма на базе Enterprise Data. Это обеспечит стабильность при обновлениях конфигураций и минимальные затраты на поддержку кода. Главное — уделить пристальное внимание качеству данных (ИНН/КПП) перед первым запуском синхронизации.

← На главную