Как настроить одностороннюю синхронизацию данных между 1С ЗУП и нетиповой конфигурацией с использованием планов обмена?

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

Задача по настройке синхронизации данных между различными конфигурациями 1С, особенно между типовой, такой как 1С ЗУП, и нетиповой (самописной) конфигурацией, является одной из наиболее распространенных и вместе с тем комплексных задач в сфере автоматизации бизнеса. Давайте рассмотрим подробный алгоритм действий для настройки одностороннего обмена данными, фокусируясь на передаче информации из базы-источника (1С ЗУП) в базу-приемник (нетиповая конфигурация), с учетом использования планов обмена и конфигурации "Конвертация данных 2.1".

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

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

Пошаговый алгоритм настройки односторонней синхронизации

  1. Создание Планов Обмена в Обеих Конфигурациях

    Первым шагом нам необходимо создать планы обмена в обеих конфигурациях: как в источнике (1С ЗУП), так и в приемнике (нетиповая база). Ключевое требование — названия планов обмена должны быть идентичными в обеих базах. Это позволяет системе корректно идентифицировать узлы обмена, относящиеся к одному и тому же сценарию синхронизации.

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

    Для создания плана обмена, перейдем в конфигураторе в ветку ПланыОбмена и создадим новый объект.

  2. Добавление Пустого Макета с Названием "ПравилаОбмена"

    В каждый из созданных планов обмена, как в базе-источнике, так и в базе-приемнике, нам потребуется добавить пустой макет. Этот макет должен иметь строго определенное имя: ПравилаОбмена. Этот макет играет роль контейнера для правил обмена, которые мы впоследствии создадим в "Конвертации данных". Его наличие предотвращает частую ошибку "неправильный формат файла обмена" на ранних этапах, когда система пытается найти этот макет для хранения правил.

  3. Определение Состава Плана Обмена

    Далее мы определяем, какие объекты метаданных будут участвовать в синхронизации. Этот шаг выполняется в конфигураторе для каждого плана обмена:

    • В плане обмена источника (1С ЗУП) мы должны указать состав объектов метаданных, изменения которых требуется отслеживать и передавать. Для этого открываем свойства плана обмена, переходим на вкладку "Состав" и отмечаем флажками необходимые справочники, документы и регистры. Для нашей задачи, как минимум, нужно будет отметить справочник, содержащий два реквизита, которые мы планируем синхронизировать.
    • В плане обмена приемника (нетиповая база) на данном этапе состав можно оставить пустым. Это связано с тем, что приемник не будет инициировать регистрацию своих изменений для данного одностороннего обмена.

    Авторегистрация объектов: Обратите внимание на свойство Авторегистрация у объектов метаданных, включенных в план обмена. Если оно установлено в Истина, система автоматически регистрирует изменения объекта при его записи. Если же вы хотите более тонко управлять регистрацией (например, регистрировать только проведенные документы или объекты по определенным условиям), свойство Авторегистрация можно установить в Ложь, а затем программно регистрировать изменения, используя метод менеджера планов обмена ЗарегистрироватьИзменения() в обработчиках событий объекта, например, ПередЗаписью или ПриЗаписи.

    
    // Пример программной регистрации изменений
    МенеджерПланаОбмена.ЗарегистрироватьИзменения(УзелОбмена, СсылкаНаОбъект);
    
  4. Интеграция Планов Обмена в Состав Типовых Команд БСП

    Если в вашей нетиповой базе подключена БСП, она предоставляет унифицированный механизм для работы с обменами данными, включая формы настройки и команды. Нам необходимо "сообщить" БСП о существовании нашего нового плана обмена. Для этого мы интегрируем наш план обмена в состав типов команд БСП, которые отвечают за операции, такие как "Загрузить правила", "Запустить обмен" и другие. Обычно это достигается путем поиска ссылок на существующие планы обмена, интегрированные в БСП, и добавления туда ссылки на наш новый план обмена. Это позволит нам использовать стандартные формы и обработки БСП для управления обменом.

  5. Создание Узлов Планов Обменов в Обеих Базах

    После создания планов обмена в конфигураторе нам необходимо создать их экземпляры (узлы) в режиме "Предприятие" для каждой из баз. Узел плана обмена — это конкретное представление обмена в данной информационной базе. Для ЗУП, как правило, узлы обмена создаются через стандартные подсистемы настройки обмена (например, "Настройки синхронизации данных"). В нетиповой конфигурации, если интегрированы стандартные подсистемы БСП, создание узла также будет доступно через специализированную форму настройки обменов.

    Каждый узел обмена будет иметь свой уникальный код и наименование, а также указывать на корреспондента (т.е. на другой узел обмена, с которым он взаимодействует).

  6. Простановка Признака Завершения Настройки Узлов

    Для того чтобы система БСП разрешила запускать обмен через свои стандартные формы, необходимо проставить признак завершения настройки для вновь созданных узлов в регистре сведений ОбщиеНастройкиУзловИнформационныхБаз. Это подтверждает, что первоначальная настройка узла выполнена и он готов к работе. Без этого признака БСП может блокировать запуск обмена, считая, что узел находится в процессе настройки.

  7. Подготовка Метаданных Обеих Конфигураций для КД 2.1

    Конфигурация "Конвертация данных 2.1" (КД 2.1) является основным инструментом для создания правил обмена между различными конфигурациями. Перед тем как начать создавать правила, нам необходимо загрузить описания метаданных обеих конфигураций в КД 2.1. Это делается при помощи специализированных обработок, которые поставляются вместе с КД 2.1. Эти обработки позволяют выгрузить структуру всех объектов метаданных (справочники, документы, регистры, реквизиты и т.д.) из рабочей базы в XML-файл, который затем загружается в КД 2.1.

    Мы загружаем метаданные как из ЗУП (конфигурации-источника), так и из нетиповой базы (конфигурации-приемника).

  8. Создание Правил Обмена в КД 2.1

    Этот этап является одним из наиболее трудоемких и ответственных. В КД 2.1 мы создаем правила обмена, которые определяют, как данные будут преобразовываться при переходе из одной конфигурации в другую.

    • Правила регистрации объектов (ПРО): Определяют, какие объекты будут регистрироваться для выгрузки из базы-источника. ПРО позволяют задавать сложные условия фильтрации данных, например, выгружать только сотрудников определенного отдела, или документы, проведенные после определенной даты. Мы можем использовать ПРОБ (правила регистрации по свойствам объекта) или ПРОП (правила регистрации по свойствам плана обмена).
    • Правила конвертации объектов (ПКО): Определяют, как конкретный объект метаданных из конфигурации-источника (например, справочник "Сотрудники") будет преобразован в соответствующий объект в конфигурации-приемнике (например, справочник "Работники"). В ПКО мы настраиваем соответствия между реквизитами объектов и табличными частями. Для нашей задачи, мы создадим ПКО для справочника и настроим соответствие двух требуемых реквизитов. КД 2.1 предоставляет инструменты для автоматической настройки правил конвертации значений, что может ускорить процесс.
    • Правила выгрузки данных (ПВД): Определяют сам процесс выгрузки данных. Внутри ПВД мы можем использовать ПРО для фильтрации данных.

    Для базы-источника (ЗУП) мы создаем полноценные правила обмена, включающие ПВД, ПРО и ПКО. Для базы-приемника (нетиповой) правила конвертации (ПКО) могут быть пустыми или минимальными, поскольку она только принимает данные и не конвертирует их для отправки обратно в этом сценарии одностороннего обмена.

  9. Выгрузка Комплектов Правил для Источника и Приемника

    После создания и отладки правил в КД 2.1, мы выгружаем их в виде комплектов файлов XML. Обычно создаются два комплекта: один для загрузки в конфигурацию-источник, другой – для загрузки в конфигурацию-приемник. Эти комплекты будут содержать все наши ПКО, ПРО и ПВД.

  10. Загрузка Правил Обмена в Обе Базы

    Выгруженные комплекты правил (XML-файлы) необходимо загрузить в соответствующие базы. Это делается через формы настройки синхронизации, предоставляемые БСП, или специализированные обработки. Каждый узел обмена получает свой набор правил.

  11. Убеждаемся, что Объекты Регистрируются на Узле и Запускаем Обмен

    После загрузки правил, мы должны убедиться, что изменения объектов, включенных в состав плана обмена источника, действительно регистрируются для обмена. Это можно проверить в регистре сведений ИзмененияДляОбмена или через стандартные средства отладки БСП. Если регистрация происходит корректно, мы можем запускать обмен. Запуск обмена обычно осуществляется через форму "Настройка синхронизации данных" в пользовательском режиме, выбирая соответствующий узел и команду "Выполнить обмен".

    Если при загрузке данных в приемнике вы столкнетесь с ошибкой "неправильный формат файла обмена", прежде всего, перепроверьте, что в обоих планах обмена присутствует пустой макет с названием ПравилаОбмена. Если проблема сохраняется, возможно, причина кроется в различиях версий БСП между конфигурациями. В этом случае, приемник может некорректно обрабатывать специфические теги в фигурных скобках, такие как {ДанныеПоФоновомуОбмену}. Решением может быть модификация обработки КонвертацияОбъектовИнформационныхБаз в приемнике для пропуска чтения проблемных тегов.

Реализация Обратной Связи: Подтверждение Получения Данных

Ваш запрос на получение подтверждения от базы-приемника ("Данные получила/Изменения сохранены") в рамках одностороннего обмена является логичным для контроля процесса. В условиях чисто одностороннего обмена, когда приемник не инициирует отправку своих изменений, стандартные механизмы двусторонней синхронизации здесь не применимы. Однако мы можем реализовать это нестандартными путями:

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

Типичные Проблемы и Методы Отладки

В процессе настройки и эксплуатации обменов данными мы часто сталкиваемся с различными сложностями. Разберем наиболее распространенные:

Автоматизация и Производительность

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

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

Настройка синхронизации — это итеративный процесс. Мы начинаем с минимального набора данных, тщательно отлаживаем его, а затем постепенно расширяем состав обмениваемых объектов. Использование отладчика и документации (ИТС) будет вашими верными помощниками на всех этапах.

← На главную