Как настроить односторонний обмен данными между идентичными базами 1С:ЗУП 3.1?

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

При работе с программой 1С:Зарплата и управление персоналом, редакция 3.1 часто возникает необходимость переноса данных между двумя одинаковыми (идентичными) базами. Например, когда расчет зарплаты ведется в локальной базе филиала, а отчетность должна консолидироваться в центральной базе головного офиса. При этом обмен должен работать строго в одну сторону: из филиала в центр, без обратного потока документов.

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

Способ 1. Использование универсальной обработки «Выгрузка и загрузка данных XML»

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

Рассмотрим подробнее ключевые особенности работы этой обработки:

  1. Принцип сопоставления по UUID (GUID): Главная особенность обработки заключается в том, что она переносит данные «как есть», сопоставляя объекты исключительно по их внутреннему уникальному идентификатору (UUID). Если в базе-источнике карточка сотрудника имеет определенный GUID, то при загрузке в базу-приемник система будет искать объект именно с таким GUID.
  2. Проблема дублирования данных: Выясним причину возникновения дублей. Если ваши информационные базы были созданы независимо друг от друга (путем ручного ввода аналогичных организаций, сотрудников и физических лиц), их GUID гарантированно будут отличаться, несмотря на полное совпадение реквизитов (ФИО, СНИЛС, ИНН). В этом случае простой перенос документов через XML создаст новые дублирующие карточки сотрудников в базе-приемнике. Если же база-приемник изначально была создана как копия базы-источника, GUID объектов будут совпадать, и данные просто обновятся (перезапишутся).
  3. Предопределенные элементы: Современная платформа «1С:Предприятие 8.3» сопоставляет предопределенные элементы конфигурации (такие как виды документов, ставки налогов, тарифы) по их системному свойству ИмяПредопределенныхДанных. При использовании актуальной версии обработки риск задвоения предопределенных данных минимален, однако при несовпадении релизов конфигураций этот сбой все еще может произойти.

Разберем по шагам процесс выгрузки документов за период:

  1. Запустите базу-источник 1С:ЗУП 3.1 в режиме «1С:Предприятие».
  2. Перейдите в меню Администрирование — Обслуживание — Дополнительные отчеты и обработки (или откройте обработку напрямую через Файл — Открыть, если у вас есть соответствующие права).
  3. В окне обработки выберите объекты, которые необходимо перенести (например, документы расчета зарплаты, начисления, кадровые приказы).
  4. Установите флажок «При необходимости выгружать созависимые объекты». Это позволит автоматически подтянуть все связанные справочники (Сотрудники, Физические лица, Организации, Подразделения), используемые в документах.
  5. Настройте период выгрузки документов в соответствующем поле.
  6. Укажите путь к файлу выгрузки на диске и нажмите кнопку «Выгрузить данные».
  7. В базе-приемнике откройте эту же обработку на вкладке «Загрузка», укажите полученный XML-файл и нажмите «Загрузить данные».

Важный совет: Всегда выполняйте тестовую загрузку на копии базы данных! В случае появления дубликатов физических лиц после переноса, воспользуйтесь стандартным инструментом «Поиск и замена дублей» (раздел Администрирование — Обслуживание — Корректировка данных), чтобы объединить карточки сотрудников.

Способ 2. Создание правил обмена в Конвертации данных 2.1

Если базы создавались независимо, и сопоставление по GUID приводит к массовому появлению дублей, стандартная обработка XML не подойдет. В такой ситуации необходимо написать правила обмена в специализированной конфигурации «Конвертация данных 2.1».

Посмотрим на пример логики настройки таких правил:

После настройки правил в Конвертации данных, они сохраняются в XML-файл. Перенос данных осуществляется через встроенную обработку УниверсальныйОбменДаннымиXML, которая встроена в любую типовую конфигурацию 1С (раздел Администрирование — Сохранение и загрузка данных).

Способ 3. Настройка типовой синхронизации в одностороннем режиме

Многие специалисты считают, что стандартная синхронизация в 1С всегда работает в двустороннем режиме. Однако это не так. Мы можем легко перенаправить потоки данных и заставить типовой механизм обмена работать строго в одну сторону без программирования.

Рассмотрим подробнее, как это сделать с помощью планов обмена:

Шаг 1. Отключение регистрации изменений в базе-приемнике.
Любой обмен в 1С основан на механизме регистрации изменений. Чтобы данные из базы-приемника не отправлялись назад в базу-источник, нам нужно запретить регистрацию объектов на узле обмена в базе-приемнике. Для этого используется обработка «Регистрация изменений для обмена данными» (ее можно открыть через функции для технического специалиста).

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


Процедура ПередЗаписьюРегистрацииИзменений(Отказ)
    УзелОбмена = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоКоду("ЦБ");
    Если ЗначениеЗаполнено(УзелОбмена) Тогда
        ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена, ЭтотОбъект.Ссылка);
    КонецЕсли;
КонецПроцедуры

Шаг 2. Использование сценариев синхронизации.
В настройках регламентных заданий обмена данными (раздел Администрирование — Синхронизация данных — Сценарии выполнения обменов) мы можем гибко разграничить права:

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

Способ 4. Использование универсального формата EnterpriseData

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

Преимущества использования EnterpriseData для одностороннего обмена:

Подводя итог, для быстрого и простого переноса между базами-копиями лучше использовать обработку ВыгрузкаИЗагрузкаДанныхXML. Для регулярного автоматического обмена между базами с разными GUID оптимальным решением станет настройка типовой синхронизации по формату EnterpriseData с отключением регистрации изменений в базе-получателе.

← На главную