Как настроить обмен кадровыми данными между нетиповой 1С:УПП и 1С:ЗУП 3.1, если в УПП нет справочника «Сотрудники»?

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

При интеграции устаревших или сильно кастомизированных конфигураций (таких как 1С:Управление производственным предприятием, ред. 1.3) с современными решениями для учета кадров и зарплаты (1С:Зарплата и управление персоналом, ред. 3.1) специалисты часто сталкиваются с архитектурными противоречиями. Типичная ситуация: в исторической базе УПП кадровый учет велся в упрощенном виде — документы оформлялись напрямую на элементы справочника ФизическиеЛица, а справочник Сотрудники не использовался вовсе. При попытке перенести кадровые документы («Прием на работу», «Кадровое перемещение») в ЗУП 3.1 возникает технический тупик: новая система требует обязательного указания ссылки на элемент справочника Сотрудники.

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

Вариант 1. Техническое решение: создание «Сотрудника» на лету через «Конвертацию данных 2.1»

Если бизнес-требования жестко диктуют необходимость первичного ввода кадровых документов именно в УПП, нам придется научить систему обмена автоматически генерировать карточки сотрудников в ЗУП 3.1 на основании данных о физических лицах. Реализовать это можно программно с помощью правил обмена в конфигурации 1С:Конвертация данных 2.1.

Разберем этот процесс по шагам:

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

// Обработчик "Поля поиска" в ПКО Сотрудники (ЗУП 3.1)
Если СвойстваПоиска.Получить("ФизическоеЛицо") <> Неопределено И СвойстваПоиска.Получить("ГоловнаяОрганизация") <> Неопределено Тогда
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |	Сотрудники.Ссылка КАК Ссылка
        |ИЗ
        |	Справочник.Сотрудники КАК Сотрудники
        |ГДЕ
        |	Сотрудники.ФизическоеЛицо = &ФизическоеЛицо
        |	И Сотрудники.ГоловнаяОрганизация = &Организация
        |	И НЕ Сотрудники.ВАрхиве";
        
    Запрос.УстановитьПараметр("ФизическоеЛицо", СвойстваПоиска.Получить("ФизическоеЛицо"));
    Запрос.УстановитьПараметр("Организация", СвойстваПоиска.Получить("ГоловнаяОрганизация"));
    
    РезультатЗапроса = Запрос.Выполнить();
    Если Не РезультатЗапроса.Пустой() Тогда
        Выборка = РезультатЗапроса.Выбрать();
        Выборка.Следующий();
        СсылкаНаОбъект = Выборка.Ссылка;
        ПрекратитьПоиск = Истина; // Объект найден, создавать новый не нужно
    КонецЕсли;
    
КонецЕсли;

Если поиск не дал результатов, система создаст новый элемент справочника Сотрудники. При этом платформа ЗУП 3.1 автоматически сгенерирует для него новый табельный номер. Кадровику в ЗУП останется лишь зайти в созданный документ приема, проверить автоматически подставившегося сотрудника и провести документ.

Вариант 2. Лайфхак для исторического переноса кадровых данных

Если перед вами стоит задача не ежедневного обмена, а разового (или регулярного, но крупного) переноса всей кадровой истории из кастомизированной УПП 1.3 в новую ЗУП 3.1, можно прибегнуть к проверенной хитрости. Поскольку архитектура учета кадров в типовой УПП 1.3 базируется на коде ЗУП 2.5, штатный помощник перехода ЗУП 3.1 умеет идеально переносить из нее данные, автоматически преобразуя физлиц в сотрудников.

Рассмотрим алгоритм действий:

  1. Создаем резервную копию рабочей базы УПП 1.3.
  2. В конфигураторе этой копии открываем свойства конфигурации и временно меняем имя конфигурации на ЗарплатаИУправлениеПерсоналом, а номер версии устанавливаем соответствующим одной из поддерживаемых версий ЗУП 2.5 (информацию об актуальных версиях для переноса можно найти в дистрибутиве обновления ЗУП 3.1).
  3. Запускаем ЗУП 3.1 и открываем стандартный «Помощник перехода с прежних программ».
  4. Указываем нашу измененную базу УПП. Помощник распознает ее как штатную ЗУП 2.5 и без ошибок перенесет кадровые документы, автоматически создав корректную структуру справочников ФизическиеЛица и Сотрудники с сохранением всей истории связей и срезов последних данных.

Вариант 3. Методологически верное решение: перенос точки ввода данных в ЗУП 3.1

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

Правильная архитектурная схема:

Кадровый учет и расчет зарплаты полностью ведутся в 1С:ЗУП 3.1. Это позволяет кадровикам оперативно сдавать отчетность, а расчетчикам — корректно начислять зарплату в едином контуре. На сторону 1С:УПП из ЗУП передаются только агрегированные или необходимые для управленческого учета данные:

  1. Синхронизация справочника ФизическиеЛица (для складского учета, ответственных лиц в документах УПП и т.д.).
  2. Выгрузка документа Отражение зарплаты в бухучете в конце месяца для формирования проводок по дебету затратных счетов и кредиту 70 (73, 69) счета в УПП без детализации по конкретным сотрудникам (или с детализацией, если это необходимо для аналитики затрат).
  3. При необходимости — выгрузка ведомостей на выплату зарплаты для оформления кассовых ордеров или платежных поручений в УПП.

Резюме

Для решения разовой задачи переноса данных воспользуйтесь «обманом» помощника перехода. Если же вы проектируете постоянную интеграцию, мы рекомендуем приложить усилия для убеждения руководства в необходимости смены вектора обмена. Попытка сделать УПП источником кадровых данных для ЗУП 3.1 превратит поддержку системы в постоянную борьбу с ошибками проведения документов и расхождениями в расчете налогов и взносов.

← На главную