Как объединить кадровую и расчетную базы «1С:ЗУП 3.1» в одну информационную систему?

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

Ситуация, когда учет в компании ведется параллельно в двух разных базах «1С:Зарплата и управление персоналом 3.1» — довольно распространенная проблема. Чаще всего это происходит исторически: кадровая служба работает в своей базе, наводя там идеальный порядок в личных карточках и приказах, а бухгалтеры-расчетчики ведут расчет зарплаты в своей базе, зачастую забивая кадровые данные «вручную» или в усеченном виде. Рано или поздно руководство ставит задачу: объединить учет в одной базе.

На первый взгляд задача кажется тривиальной — перенести документы из одной базы в другую. Однако на практике специалисты сталкиваются с огромным количеством методологических и технических подводных камней. В этой статье мы подробно разберем, как правильно организовать процесс слияния двух баз «1С:ЗУП 3.1», проанализируем основные стратегии переноса, рассмотрим скрытые механизмы платформы и выясним, как избежать фатальных ошибок.

Основные сложности и болевые точки при объединении баз

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

  1. Разные уникальные идентификаторы (GUID). Даже если в обеих базах заведен один и тот же сотрудник (например, Иванов Иван Иванович), в базах они имеют разные GUID. При обычном переносе этот сотрудник просто задвоится.
  2. Несовпадение нормативно-справочной информации (НСИ). Табельные номера, наименования подразделений, должностей, графиков работы в кадровой и расчетной базах почти всегда различаются. Кадровики могли назвать подразделение «Бухгалтерия», а расчетчики — «Администрация (Бухгалтерия)».
  3. История штатного расписания. В «1С:ЗУП 3.1» ведение истории штатного расписания является опциональной настройкой. Если в кадровой базе она включена, а в расчетной выключена, перенесенные кадровые документы просто не проведутся из-за несовпадения структуры данных.
  4. Угроза автоматических перерасчетов. Перепроведение старых кадровых документов в расчетной базе мгновенно запустит лавинообразную регистрацию записей в регистре перерасчетов, что может исказить результаты прошлых периодов.

Рассмотрим три основные стратегии решения этой задачи.

Вариант 1. Перенос данных через «Конвертацию данных 2.0» с сопоставлением НСИ

Этот способ является наиболее гибким и технически правильным, если вам необходимо сохранить всю историю кадровых документов в расчетной базе. Нам потребуется инструмент «1С:Конвертация данных 2.0» (КД 2) для написания правил обмена.

Рассмотрим пошагово алгоритм настройки сопоставления объектов:

Шаг 1. Сопоставление физических лиц и сотрудников

Физические лица в обеих базах должны сопоставляться по уникальным естественным идентификаторам. Идеально подходят СНИЛС и ИНН. В правилах обмена (ПКО) для справочника ФизическиеЛица необходимо настроить поиск именно по этим полям, предварительно очистив строки от пробелов и дефисов. Для справочника Сотрудники ключевыми полями сопоставления будут являться ссылка на сопоставленное физическое лицо, организация и табельный номер (если они совпадают), либо связка по ФИО и СНИЛС.

Шаг 2. Унификация справочников должностей и подразделений

Здесь возможны два пути:

Шаг 3. Перенос и проведение документов

После сопоставления НСИ переносятся кадровые документы: ПриемНаРаботу, КадровыйПеревод, Увольнение. Переносить их необходимо строго в хронологическом порядке. После переноса их потребуется провести.

Вариант 2. Слияние баз через механизм РИБ (с последующим поиском дублей)

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

Рассмотрим этот сценарий по шагам:

  1. Создается абсолютно пустая база «1С:ЗУП 3.1» той же версии релизов, что и объединяемые базы. Она объявляется Центральной базой (ЦБ).
  2. Кадровая и расчетная базы подключаются к ней как Подчиненные узлы (ПУ) распределенной информационной базы (РИБ).
  3. Запускается полная регистрация изменений во всех узлах, и данные из обеих баз ПУ мигрируют в ЦБ.
  4. Разумеется, в Центральной базе все справочники (физлица, сотрудники, подразделения, должности, начисления) мгновенно задвоятся, так как они пришли из независимых баз с разными GUID.
  5. На сцену выходят пользователи и аналитики. Используя типовую обработку «Поиск и удаление дублей», они начинают методично объединять элементы. При этом в качестве «Оригинала» для сотрудников и физлиц выбираются элементы из кадровой базы (где они заполнены верно), а для начислений и расчетных данных — элементы из расчетной базы.
  6. После полной очистки дублей в ЦБ выполняется обратная синхронизация с узлами РИБ. Когда данные выровняются, узлы РИБ отключаются, а Центральная база становится единой рабочей информационной системой.

Вариант 3. Переход на новую базу «с чистого листа» через ввод начальных остатков

Если организация насчитывает около 340 человек (как в рассматриваемой теме форума), а история прошлых лет в кадровом учете не является критически важной для ежедневной работы, самым надежным и методологически чистым решением будет ввод начальных остатков на начало нового расчетного периода (например, на 1 января).

В «1С:ЗУП 3.1» заложен прекрасный готовый функционал для этой задачи. Разберем этот процесс подробнее:

1. Перенос штатной расстановки

В расчетной базе создается специальный документ НачальнаяШтатнаяРасстановка. Он заменяет собой необходимость переносить всю историческую цепочку приемов и переводов за прошлые годы. В этот документ вносятся данные по всем 340 сотрудникам по состоянию на дату начала ведения учета: их должности, подразделения, тарифные ставки (оклады), плановые начисления и графики работы.

Документ НачальнаяШтатнаяРасстановка автоматически делает движения во все необходимые регистры сведений, отвечающие за кадровую историю и плановые начисления.

2. Ввод остатков отпусков

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

3. Перенос данных для расчета среднего заработка

Чтобы расчетчики могли безболезненно считать больничные и отпуска в новой объединенной базе, необходимо перенести данные о заработке за предыдущие периоды (12 месяцев для общего среднего заработка и 2 года для расчета пособий ФСС). Для этого используются специальные документы РегистрацияПериодовДействия и регистры накопления:

Эти данные можно легко перенести с помощью несложных правил КД 2, сопоставляя физлиц по ИНН и СНИЛС.

Критические технические нюансы, о которых нужно знать

Если вы приняли решение переносить документы исторически (Вариант 1), вам обязательно нужно учесть скрытые механизмы работы «1С:ЗУП 3.1».

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

Часто программисты переносят документы КД-шкой, проводят их групповой обработкой, но при открытии базы видят пустые списки сотрудников в кадровых журналах. Дело в том, что в ЗУП 3.1 за видимость сотрудников и корректность отчетов отвечают вспомогательные регистры сведений, которые при некорректном программном проведении могут остаться пустыми:

Опасность автоперерасчетов

При проведении исторических кадровых документов за прошлые периоды в базе расчетов программа решит, что у сотрудников изменились условия труда (оклады, графики) «задним числом». Платформа мгновенно создаст тысячи записей в регистре «Задачи перерасчета».

Чтобы избежать этой блокирующей работу ситуации, при загрузке документов через правила обмена необходимо программно отключать механизмы автоперерасчета. Для этого в обработчиках КД 2 или при программном проведении документов обязательно используйте режим загрузки данных:


// Отключение проверок и автоперерасчетов при программной записи документов
ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
ДокументОбъект.ОбменДанными.Загрузка = Истина;
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);

Использование свойства ОбменДанными.Загрузка = Истина скажет платформе, что документ переносится из другой системы, и стандартные триггеры перерасчета запускать не нужно.

Регуляторные требования и ЕФС-1

Не забывайте, что сейчас кадровая служба обязана оперативно сдавать отчет ЕФС-1 (Подраздел 1.1) при любых кадровых изменениях. Любые расхождения в СНИЛС, ФИО или кодах ОКЗ (Общероссийский классификатор занятий) между кадровой и расчетной базами приведут к тому, что Социальный фонд России (СФР) отклонит отчетность. Поэтому при сопоставлении должностей критически важно проверить заполнение справочника ОКЗ в кадровой базе еще до начала миграции.

Рекомендация по организации процесса: Двухконтурное слияние

Чтобы не парализовать работу предприятия во время слияния баз, мы рекомендуем использовать двухконтурную схему перехода:

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

Использование этого подхода минимизирует риски сбоев и гарантирует плавный, безболезненный переход на единый учет в «1С:ЗУП 3.1».

← На главную