Как настроить обмен данными между конфигурациями 1С:Бухгалтерия 3.0 с помощью КД 2.0?

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

Многие разработчики сталкиваются с заблуждением, что в современной БП 3.0 «старая добрая» Конвертация данных 2.0 (КД 2) больше не работает. На самом деле это не так. Хотя 1С активно продвигает универсальный формат Enterprise Data (КД 3), классическая КД 2 остается мощным, гибким и, главное, работающим инструментом, особенно когда нужно перенести специфические данные, такие как справочники с дополнительными регистрами сведений.

Развеиваем мифы: КД 2 в БП 3.0

Технически компоненты КД 2 никуда не исчезли из конфигурации БП 3.0. Вы можете использовать обработку УниверсальныйОбменДаннымиXML для выполнения обмена по правилам, созданным в конфигурации Конвертация данных 2.1. Основное преимущество такого подхода — отсутствие необходимости глубокого изучения XDTO-пакетов и структуры Enterprise Data. Если вам нужно передать данные из РегистраСведений с привязкой к Контрагенту, КД 2 позволит сделать это через обработчики событий ПередВыгрузкой или ПослеЗагрузки максимально прозрачно.

Выбор транспорта данных: от FTP к веб-сервисам

Когда мы говорим об обмене данными между двумя базами БП 3.0, критически важно выбрать надежный канал связи. Хотя традиционно обмен настраивается через общие папки или FTP, это часто приводит к проблемам с блокировками файлов, правами доступа и необходимостью ручной очистки «очередей» сообщений.

Мы рекомендуем рассмотреть более современный подход — использование HTTP-сервисов. Вместо создания промежуточных файлов, одна база (база-приемник) может выступать в роли веб-сервера, принимая пакеты данных напрямую. Это позволяет:

  1. Передавать данные в «живом» режиме, без задержек.
  2. Исключить риск повреждения файлов на файловой системе.
  3. Автоматизировать процесс подтверждения получения данных без использования номеров сообщений в ПланахОбмена.

Пошаговый план реализации обмена

Для создания собственной системы обмена без использования тяжелых типовых механизмов БСП, следуйте этим шагам:

  1. Создание правил: Используйте конфигурацию Конвертация данных 2.1. Опишите структуру метаданных обеих баз. Поскольку конфигурации идентичны, правила будут выглядеть максимально просто: правило выгрузки для Справочника.Контрагенты и правило для РегистраСведений.
  2. Автоматизация выгрузки: Вместо использования типового интерфейса синхронизации, напишите внешнюю обработку. Она будет вызывать метод ВыгрузитьДанные() объекта УниверсальныйОбменДаннымиXML.
  3. Настройка транспорта: Вместо сохранения XML-файла в локальную папку, сериализуйте данные в строку или поток и отправьте их на HTTP-сервис приемника методом POST.
  4. Обработка на стороне приемника: При получении HTTP-запроса, вызывайте метод ЗагрузитьДанные() той же обработки УниверсальныйОбменДаннымиXML, передавая полученный контент напрямую из памяти.

Пример логики вызова обработки из кода

Разберем, как программно запустить выгрузку, если вы решили использовать внешнюю обработку УниверсальныйОбменДаннымиXML:


// Пример упрощенного вызова выгрузки
ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
ОбработкаОбмена.ИмяФайлаПравил = "C:\Rules\MyRules.xml";
ОбработкаОбмена.ИмяФайлаДанных = "C:\Data\ExportData.xml";
ОбработкаОбмена.ЗагрузитьПравилаОбмена();
ОбработкаОбмена.ВыполнитьВыгрузку();

Почему стоит выбрать именно этот путь?

Использование КД 2 при обмене между идентичными базами БП 3.0 экономит время разработки. Вам не нужно переписывать XDTO-модели, которые 1С меняет при каждом обновлении конфигурации. Если вы используете универсальную обработку, ваша логика обмена остается стабильной, даже если разработчики 1С перепишут структуру подсистемы БСП.

Важное предостережение: При использовании обмена через FTP или файловый обмен всегда учитывайте вероятность дублирования объектов, если в обеих базах данные создаются параллельно. Используйте УИД (УникальныйИдентификатор) объектов для сопоставления. Если вы используете веб-сервисы, добавьте логгирование ответов сервера, чтобы в случае ошибки 500 или 404 быстро понять, на каком этапе прервалась передача данных.

Таким образом, сочетание гибкости Конвертации данных 2.0 и надежности передачи через HTTP-сервисы является идеальным «легким» решением для переноса контрагентов и связанных регистров между базами 1С:Бухгалтерии.

← На главную