Как перенести сотрудников из одной базы 1С:ЗКГУ (ЗУП) 3.1 в другую без переноса всех данных

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

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

В этой статье мы подробно разберем, как правильно перенести кадровую информацию, сохраняя целостность данных и обеспечивая возможность дальнейшего ведения учета в новой базе — для этого подойдёт перенос справочников и документов из ЗУП 3 в ЗУП 3 или ERP.

Различие между физическими лицами и сотрудниками

Прежде чем приступать к техническим действиям, проанализируем архитектуру программы. В системе 3.1 существует два принципиально разных объекта:

  1. Справочник Физические лица — здесь хранятся персональные данные человека: ФИО, дата рождения, ИНН, СНИЛС, паспортные данные, сведения об образовании и семье. Один и тот же человек всегда представлен одной записью в этом справочнике.
  2. Справочник Сотрудники — это «контрактная» сущность. Здесь хранится информация о трудовых отношениях (номер договора, табельный номер). Если один человек работает в организации и как основной сотрудник, и как внутренний совместитель, у него будет две карточки в справочнике Сотрудники, но обе они будут ссылаться на одно и то же Физическое лицо.

Важно: Если вы перенесете только сотрудников, вы получите пустые карточки без личных данных. Если только физлиц — у вас не будет данных для кадровых отчетов и начисления зарплаты. Рассмотрим, как перенести их в связке.

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

Это классический «инженерный» метод. Рассмотрим его пошагово. Для работы нам понадобится внешняя обработка V8Exchan83.epf (или встроенная в состав конфигурации в режиме «Все функции»). Для этой задачи также есть универсальная обработка переноса данных между идентичными конфигурациями 1С.

Разберем алгоритм действий в базе-источнике:

  1. Открываем обработку и переходим на вкладку «Выгрузка».
  2. В списке объектов находим справочник Сотрудники.
  3. Критически важная настройка: обязательно устанавливаем флаг «Выгружать с учетом иерархии» и, что еще важнее, «Выгружать связанные объекты». Это заставит систему автоматически выгрузить соответствующие записи из справочника ФизическиеЛица и связанные с ними данные.
  4. Поскольку нам не нужны расчеты, мы не выбираем документы начислений или ведомости.
  5. Указываем путь к файлу выгрузки и нажимаем кнопку «Выгрузить».

В базе-приемнике мы открываем ту же обработку на вкладке «Загрузка», выбираем файл и нажимаем «Загрузить». Система создаст объекты с теми же GUID (уникальными идентификаторами), что и в исходной базе. Это поможет избежать дублей при повторных обменах.

Способ 2: Штатный механизм «Загрузка данных из файла»

Если работа с XML кажется слишком сложной или вы хотите провести «санацию» данных (например, исключить неактуальных сотрудников), воспользуемся встроенным инструментом. Перейдем в раздел Администрирование — Обслуживание — Корректировка данных — Загрузка данных из файла — для этого также подойдёт обработка загрузки данных из Excel в любые справочники 1С.

Рассмотрим этапы загрузки:

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

Преимущество этого метода в том, что он «прощает» технический мусор. Система создаст новые записи, основываясь на тех данных, которые вы предоставили, и проверит их на соответствие формату (например, корректность СНИЛС).

Способ 3: Регистрация кадрового состояния через «Начальную штатную расстановку»

Как справедливо заметили участники обсуждения на форуме, перенос справочников — это только половина дела. Чтобы сотрудник «ожил» в программе, он должен быть принят на работу. Если мы не хотим переносить старые приказы о приеме, нам необходимо использовать специальный инструмент ввода остатков.

Проанализируем работу с документом «Начальная штатная расстановка»:

  1. Заходим в раздел Главное — Данные на начало эксплуатации.
  2. Создаем новый документ Начальная штатная расстановка.
  3. Этот документ позволяет зафиксировать состояние сотрудника на дату начала работы в новой базе (например, на 01.01.2024).
  4. В нем указываются:
    • Подразделение и должность;
    • Количество ставок;
    • График работы;
    • Плановые начисления (оклад, надбавки);
    • Сведения об отпусках (остатки дней).

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

Технические нюансы: Регистры сведений

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

Если вы пишете собственный скрипт или обработку для переноса, структура кода для создания сотрудника программно может выглядеть примерно так (рассмотрим упрощенный пример):


// Создание физического лица
НовоеФизЛицо = Справочники.ФизическиеЛица.СоздатьЭлемент();
НовоеФизЛицо.Наименование = "Иванов Иван Иванович";
НовоеФизЛицо.ДатаРождения = '19800101';
НовоеФизЛицо.Записать();

// Создание сотрудника на базе физлица
НовыйСотрудник = Справочники.Сотрудники.СоздатьЭлемент();
НовыйСотрудник.Физлицо = НовоеФизЛицо.Ссылка;
НовыйСотрудник.Организация = Объект.Организация;
НовыйСотрудник.Наименование = НовоеФизЛицо.Наименование;
НовыйСотрудник.Записать();

Рекомендации по итогам переноса

После завершения процесса переноса обязательно выполните следующие проверки — в этом поможет обработка сравнения данных и поиска расхождений между базами 1С.

  1. Откройте отчет «Личные данные сотрудников» и проверьте наличие заполненных ИНН, СНИЛС и паспортных данных.
  2. Проверьте стажи сотрудников (они также хранятся в отдельном регистре СтажиФизическихЛиц). Без них некорректно будут рассчитываться больничные листы.
  3. Убедитесь, что в справочнике Физические лица не образовалось дублей (особенно если в базе уже были какие-то данные) — для контроля удобно использовать инструмент поиска и удаления дублей в 1С.

Таким образом, комбинируя перенос справочников через XML или Excel с последующим вводом документа Начальная штатная расстановка, мы получаем чистую, рабочую базу с актуальным штатом сотрудников, готовую к ведению учета без груза старых ошибок.

← На главную