Синхронизация данных между различными конфигурациями 1С — это одна из наиболее часто встречающихся задач при автоматизации бизнеса. Типовой сценарий предполагает передачу оперативных данных из торговой системы в бухгалтерскую, однако нередко возникает необходимость обратной выгрузки или двустороннего обмена справочниками, такими как Контрагенты и Договоры. В этой статье мы подробно разберем, как организовать надежный перенос информации из 1С:Бухгалтерия 3.0 в 1С:Управление торговлей 11.5, используя современные механизмы платформы.
Прежде всего, разберем технологический стек, на котором строится обмен. Если раньше разработчики полагались исключительно на Конвертацию данных 2.0, где правила жестко прописывались для конкретных метаданных, то современные версии (БП 3.0 и УТ 11.5) используют универсальный формат обмена Enterprise Data.
Проанализируем основные компоненты этой системы:
Рассмотрим процесс настройки штатной синхронизации. Несмотря на то, что исторически первичной базой считается Управление торговлей, типовой помощник позволяет гибко настроить направление потоков данных.
Выясним последовательность действий в интерфейсе программ:
1С:Бухгалтерии создаем новую синхронизацию, выбрав в качестве программы-корреспондента 1С:Управление торговлей, редакция 11.Разберем, как автоматика понимает, что данные изменились. Для этого используется механизм регистрации изменений. Как только бухгалтер нажимает кнопку «Записать» в карточке контрагента, ссылка на этот объект попадает в таблицу регистрации изменений соответствующего узла плана обмена.
Если нам необходимо программно зарегистрировать объект для выгрузки (например, при первоначальном заполнении базы), мы можем использовать следующий код в расширении или обработке:
// Пример регистрации конкретного контрагента для узла обмена
Процедура ЗарегистрироватьКонтрагентаНаУзле(ВыбранныйКонтрагент, УзелОбмена)
ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, ВыбранныйКонтрагент);
КонецПроцедуры
Посмотрим на ситуацию, когда стандартного расписания недостаточно. В этом случае мы можем инициировать обмен принудительно, используя методы объекта ПланыОбмена или запуская фоновое задание через ДлительныеОперации.
Проанализируем критически важный момент — идентификацию объектов. При синхронизации 1С использует два уровня поиска:
GUID. Это самый надежный способ связи.ИНН + КПП.Важный совет: Перед первым запуском обмена обязательно выполните поиск и удаление дублей в обеих информационных базах. Если в БП контрагент заведен с ИНН, а в УТ этот же контрагент без ИНН, система создаст дубль, так как не сможет их сопоставить.
Перенос договоров сложнее, чем перенос контрагентов, так как договор всегда имеет владельца. Рассмотрим технические нюансы:
1С:Управление торговлей 11.5 для работы с договорами должна быть включена функциональная опция Использовать договоры с клиентами.БП система автоматически «подтягивает» по ссылке контрагента и организацию, даже если они не были зарегистрированы к обмену отдельно.УТ — это разные сущности в рамках одного справочника, и их реквизитный состав может отличаться от бухгалтерского.Если бизнес-процесс требует, чтобы контрагент появлялся на складе мгновенно после создания в бухгалтерии, регламентные задания (раз в 15 минут) могут не подойти. В этом случае рассмотрим реализацию событийного обмена через HTTP-сервисы.
Суть метода заключается в следующем: в модуле объекта Справочник.Контрагенты в процедуре ПриЗаписи прописывается код, который отправляет POST-запрос в базу-приемник. Приемник, получив данные в формате JSON или XML, создает или обновляет объект у себя.
Пример упрощенной структуры отправки данных через HTTPСоединение:
// Упрощенный пример отправки данных
Соединение = Новый HTTPСоединение("server_address", , "user", "password");
Запрос = Новый HTTPЗапрос("/v1/sync/counterparty");
Запрос.УстановитьТелоИзСтроки(ДанныеВФорматеJSON);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Выясним, что делать, если данные не приходят. Основной инструмент администратора — Журнал регистрации. В нем фиксируются ошибки разбора XML-пакетов и нарушения логики (например, попытка записать объект с незаполненным обязательным реквизитом).
Также рекомендуем использовать обработку «Регистрация изменений для обмена данными». С её помощью можно:
Подводя итог, можно сказать, что для связки БП 3.0 — УТ 11.5 оптимальным выбором будет использование штатного механизма на базе Enterprise Data. Это обеспечит стабильность при обновлениях конфигураций и минимальные затраты на поддержку кода. Главное — уделить пристальное внимание качеству данных (ИНН/КПП) перед первым запуском синхронизации.