При работе с программой 1С:Зарплата и управление персоналом, редакция 3.1 часто возникает необходимость переноса данных между двумя одинаковыми (идентичными) базами. Например, когда расчет зарплаты ведется в локальной базе филиала, а отчетность должна консолидироваться в центральной базе головного офиса. При этом обмен должен работать строго в одну сторону: из филиала в центр, без обратного потока документов.
В этой статье мы подробно разберем, как решить задачу одностороннего обмена данными типовыми и полутиповыми средствами платформы «1С:Предприятие 8.3», проанализируем возможные технические проблемы, связанные с сопоставлением объектов, и выясним, как избежать критических ошибок при переносе справочников и документов.
Для разового переноса документов за определенный период или периодического ручного обмена между абсолютно идентичными базами конфигурации 1С:ЗУП 3.1 идеально подходит стандартная обработка от разработчиков 1С — ВыгрузкаИЗагрузкаДанныхXML.
Рассмотрим подробнее ключевые особенности работы этой обработки:
ИмяПредопределенныхДанных. При использовании актуальной версии обработки риск задвоения предопределенных данных минимален, однако при несовпадении релизов конфигураций этот сбой все еще может произойти.Разберем по шагам процесс выгрузки документов за период:
Важный совет: Всегда выполняйте тестовую загрузку на копии базы данных! В случае появления дубликатов физических лиц после переноса, воспользуйтесь стандартным инструментом «Поиск и замена дублей» (раздел Администрирование — Обслуживание — Корректировка данных), чтобы объединить карточки сотрудников.
Если базы создавались независимо, и сопоставление по GUID приводит к массовому появлению дублей, стандартная обработка XML не подойдет. В такой ситуации необходимо написать правила обмена в специализированной конфигурации «Конвертация данных 2.1».
Посмотрим на пример логики настройки таких правил:
ФизическиеЛица настраивается поиск по уникальным полям — СНИЛС или сочетанию ФИО и ДатаРождения. При этом флажок «Искать объект по внутреннему идентификатору» снимается.Организации поиск настраивается по реквизиту ИНН и КПП.Сотрудники сопоставление можно настроить по уникальному коду в связке с организацией.После настройки правил в Конвертации данных, они сохраняются в XML-файл. Перенос данных осуществляется через встроенную обработку УниверсальныйОбменДаннымиXML, которая встроена в любую типовую конфигурацию 1С (раздел Администрирование — Сохранение и загрузка данных).
Многие специалисты считают, что стандартная синхронизация в 1С всегда работает в двустороннем режиме. Однако это не так. Мы можем легко перенаправить потоки данных и заставить типовой механизм обмена работать строго в одну сторону без программирования.
Рассмотрим подробнее, как это сделать с помощью планов обмена:
Шаг 1. Отключение регистрации изменений в базе-приемнике.
Любой обмен в 1С основан на механизме регистрации изменений. Чтобы данные из базы-приемника не отправлялись назад в базу-источник, нам нужно запретить регистрацию объектов на узле обмена в базе-приемнике. Для этого используется обработка «Регистрация изменений для обмена данными» (ее можно открыть через функции для технического специалиста).
Для полной автоматизации этого процесса программисты часто используют простое расширение конфигурации. В базе-приемнике перехватывается событие перед записью объектов и принудительно очищается их регистрация на узле обмена. Пример такого кода:
Процедура ПередЗаписьюРегистрацииИзменений(Отказ)
УзелОбмена = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоКоду("ЦБ");
Если ЗначениеЗаполнено(УзелОбмена) Тогда
ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена, ЭтотОбъект.Ссылка);
КонецЕсли;
КонецПроцедуры
Шаг 2. Использование сценариев синхронизации.
В настройках регламентных заданий обмена данными (раздел Администрирование — Синхронизация данных — Сценарии выполнения обменов) мы можем гибко разграничить права:
При таком подходе данные будут циркулировать строго в одном направлении, исключая риск повреждения или перезаписи актуальной информации в базе-источнике.
Для идентичных конфигураций ЗУП 3.1 отлично подходит обмен через современный формат EnterpriseData. В отличие от распределенных информационных баз (РИБ), данный формат переносит исключительно бизнес-данные (документы и справочники), никак не затрагивая конфигурацию и системные настройки баз данных.
Преимущества использования EnterpriseData для одностороннего обмена:
Подводя итог, для быстрого и простого переноса между базами-копиями лучше использовать обработку ВыгрузкаИЗагрузкаДанныхXML. Для регулярного автоматического обмена между базами с разными GUID оптимальным решением станет настройка типовой синхронизации по формату EnterpriseData с отключением регистрации изменений в базе-получателе.