Как перенести механизмы обмена данными из БСП в самописную конфигурацию 1С?

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

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

Причины сложности переноса и скрытые зависимости БСП

Подсистема «Обмен данными» в БСП не является изолированной. Для своей полноценной работы она использует инфраструктуру и сервисы других модулей библиотеки:

  1. Обязательные базовая подсистемы: БазоваяФункциональность, ОбновлениеВерсииИБ и Пользователи. Без них работа большинства механизмов БСП невозможна в принципе.
  2. Связанные сервисные механизмы: подсистема обмена данными активно задействует Префиксация объектов (для генерации кодов и номеров), Файловые функции (для передачи пакетов обмена через сетевые каталоги, FTP или e-mail), Завершение работы пользователей и Удаление отмеченных объектов.

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

Шаг 1. Определение зависимостей с помощью обработки «Первое внедрение БСП»

В комплекте поставки БСП присутствуют специальная обработка ПервоеВнедрениеБСП.epf и конфигурация-демонстрация. Эта обработка позволяет наглядно увидеть дерево зависимостей подсистем и сформировать правильный файл настроек для сравнения и объединения.

Рассмотрим алгоритм работы с обработкой:

  1. Запустим обработку ПервоеВнедрениеБСП.epf в информационной базе БСП.
  2. Отметим флажками целевые подсистемы (в нашем случае — «Обмен данными»).
  3. Обработка автоматически выделит все обязательные и сопутствующие подсистемы, без которых выбранный функционал работать не будет.
  4. Сохраним настройки правила сравнения/объединения в файл для последующей загрузки в Конфигураторе.

Шаг 2. Пошаговая инструкция по сравнения и объединению в Конфигураторе

Проанализируем базовый алгоритм частичного внедрения БСП в чистую или существующую нетиповую конфигурацию:

  1. Откроем разрабатываемую конфигурацию в режиме «Конфигуратор».
  2. Выберем пункт меню Конфигурация – Сравнить, объединить с конфигурацией из файла и укажем файл 1Cv8.cf из поставки БСП.
  3. На предложение выполнить полную загрузку конфигурации ответим Нет.
  4. На предложение постановки на поддержку ответим Да.
  5. В окне сравнения и объединения снимим все флажки (снимаем галочку с коренного элемента).
  6. Нажмем Действия – Отметить по подсистемам файла (или загрузим настройки, подготовленные обработкой «Первое внедрение БСП»).
  7. Отметим нужные подсистемы (включая обязательные БазоваяФункциональность, ОбновлениеВерсииИБ, Пользователи) и нажмем Установить.
  8. Отметим к объединению свойства корневого элемента: Основные роли, Модуль управляемого приложения, Модуль сеанса, Модуль внешнего соединения, Модуль обычного приложения, а также настройки режимов совместимости.
  9. Нажмем кнопку Выполнить и согласимся с правилами поддержки.

Шаг 3. Настройка программного кода и модулей обновления

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

  1. В свойствах конфигурации укажем имя (например, МояКонфигурация) и версию (например, 1.0.0.1).
  2. В ветке общих модулей скопируем модуль ОбновлениеИнформационнойБазы и переименуем его, добавив префикс нашей программы — например, ОбновлениеИнформационнойБазыМК.
  3. Заменим содержимое созданного модуля на следующий код:

Процедура ПриДобавленииПодсистемы(Описание) Экспорт
	Описание.Имя = "МояКонфигурация";
	Описание.Версия = "1.0.0.1";
	
	// Требуется библиотека стандартных подсистем
	Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы");
КонецПроцедуры

Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
КонецПроцедуры

Процедура ПередОбновлениемИнформационнойБазы() Экспорт
КонецПроцедуры

Процедура ПослеОбновленияИнформационнойБазы(Знач ПредыдущаяВерсия, Знач ТекущаяВерсия, Знач ВыполненныеОбработчики, ВыводитьОписаниеОбновлений, МонопольныйРежим) Экспорт
КонецПроцедуры

Процедура ПриПодготовкеМакетаОписанияОбновлений(Знач Макет) Экспорт
КонецПроцедуры

Процедура ПриДобавленииОбработчиковПереходаСДругойПрограммы(Обработчики) Экспорт
КонецПроцедуры

Процедура ПриОпределенииРежимаОбновленияДанных(РежимОбновленияДанных, СтандартнаяОбработка) Экспорт
КонецПроцедуры

Процедура ПриЗавершенииПереходаСДругойПрограммы(Знач ПредыдущееИмяКонфигурации, Знач ПредыдущаяВерсияКонфигурации, Параметры) Экспорт
КонецПроцедуры

4. Включим возможность изменения для общего модуля ПодсистемыКонфигурацииПереопределяемый и добавьте в процедуру ПриДобавленииПодсистем вызов нашего нового модуля:


Процедура ПриДобавленииПодсистем(МодулиПодсистем) Экспорт
	МодулиПодсистем.Добавить("ОбновлениеИнформационнойБазыМК");
КонецПроцедуры

Шаг 4. Финальная инициализация метаданных и планов обмена

После первого запуска конфигурации в режиме «1С:Предприятие» необходимо выполнить технические процедуры для старта работы механизмов обмена:

Альтернативные способы реализации обмена без интеграции БСП

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

  1. HTTP/REST-сервисы: Создание собственного HTTP-сервиса в конфигурации или расширении. Позволяет обмениваться данными в формате JSON/XML без тяготения тяжеловесных библиотечных метаданных.
  2. Простой самописный План обмена: Использование стандартного объекта конфигурации «План обмена» с платформенной авторегистрацией изменений и выгрузкой через XML/JSON или прямое COM-соединение.
  3. Обмен по правилам конвертации: Создание правил в «1С:Конвертация данных» и их выполнение с помощью универсальной внешней обработки по расписанию.
← На главную