Рано или поздно перед любой организацией, использующей историческую конфигурацию «1С:Управление производственным предприятием» (УПП) редакции 1.3, встает вопрос перехода на современное решение для ведения кадрового учета и расчета заработной платы — «1С:Зарплата и управление персоналом» (ЗУП) редакции 3.1. Ситуация усложняется, если в УПП велся исключительно зарплатный блок, а сама база давно не обновлялась и снята с поддержки.
Напрямую перенести данные из УПП 1.3 в ЗУП 3.1 штатными средствами «из коробки» невозможно, так как фирма «1С» не выпускала прямых правил перехода для этой связки. Однако подсистема расчета зарплаты и кадрового учета в УПП 1.3 практически на 99% идентична старой конфигурации ЗУП 2.5. Это открывает перед нами возможность использовать штатные инструменты перехода с ЗУП 2.5 на ЗУП 3.1. В этой статье мы подробно разберем по шагам, как обмануть систему и выполнить миграцию данных с минимальными трудозатратами.
Перед началом технических манипуляций нам необходимо определиться, какой объем данных мы будем переносить. В штатном помощнике перехода ЗУП 3.1 доступны два варианта:
Начальная штатная расстановка. Сведения для расчета среднего заработка переносятся за последние 3 года для пособий ФСС и за 15 месяцев для отпусков. Это самый безопасный и стабильный вариант, который минимизирует количество ошибок при переносе.Для нашей задачи оптимальным выбором будет рекомендованный перенос остатками на начало года или квартала.
---
Этот способ является самым быстрым и не требует глубокого программирования. Идея заключается в том, чтобы временно превратить нашу базу УПП 1.3 в ЗУП 2.5 в глазах конфигурации-приемника.
Важно: Все действия мы выполняем исключительно на копии базы данных УПП 1.3!
Рассмотрим пошаговый алгоритм настройки нашей копии:
Запустим копию базы УПП 1.3 в режиме Конфигуратор. Откроем свойства конфигурации (правый клик по корневому элементу дерева метаданных — «Свойства»). Нам необходимо изменить значение свойства Версия.
Вместо текущего номера релиза УПП (например, 1.3.150.1) введем актуальный номер релиза ЗУП 2.5 (например, 2.5.130.2 или выше). Это необходимо для того, чтобы штатный помощник перехода в ЗУП 3.1 прошел проверку на минимально допустимый релиз источника.
В ЗУП 2.5 и УПП 1.3 есть небольшие различия в именах ключевых регистров и реквизитов. Если их не скорректировать, выгрузка завершится ошибкой. Проанализируем основные нестыковки и устраним их:
УчетнаяПолитикаОрганизаций. В ЗУП 2.5 этот регистр называется УчетнаяПолитикаНалоговыйУчет. Нам необходимо переименовать этот регистр в нашей копии УПП в конфигураторе, либо перелить данные из одного в другой, предварительно создав пустой регистр с нужным именем.ПодразделенияОрганизаций реквизит СоответствуетСудамПодФлагомРФ (тип Булево). В УПП этого реквизита нет. Добавим его вручную в справочник ПодразделенияОрганизаций в конфигураторе копии УПП.После внесения изменений выполним обновление конфигурации базы данных (клавиша F7).
Теперь откроем нашу чистую базу ЗУП 3.1 в режиме «Предприятие».
ПомощникПереходаСДругихКонфигураций).---
Если мы не хотим вносить изменения в структуру метаданных УПП (даже в копии), мы можем пойти другим путем — выгрузить штатную обработку перехода из ЗУП 3.1 и немного доработать ее код под структуру УПП 1.3.
Разберем этот процесс детально:
В базе ЗУП 3.1 откроем обработку ПомощникПереходаСДругихКонфигураций. Выберем вариант выгрузки через файл и нажмем кнопку «Получить помощник выгрузки». Программа предложит сохранить файл ПомощникВыгрузки_V8.epf на диск. Сохраним его.
Откроем сохраненный файл ПомощникВыгрузки_V8.epf в Конфигураторе. Нам нужно внести несколько изменений в модули обработки.
Выясним причину проверки версии конфигурации. В модуле формы найдем процедуру проверки релиза (обычно это процедура перед выгрузкой данных) и закомментируем блок, который сравнивает имя конфигурации источника. Мы должны позволить обработке запускаться в конфигурации «УправлениеПроизводственнымПредприятием».
Пример кода, который необходимо скорректировать или закомментировать:
// Если Метаданные.Имя <> "ЗарплатаИУправлениеПерсоналом" Тогда
// Предупреждение("Данная обработка предназначена только для выгрузки из ЗУП 2.5!");
// Возврат;
// КонецЕсли;
Далее исправим запрос к регистру учетной политики. Найдем в модуле обработки функцию или процедуру Организации_Выгрузка (или аналогичную, где формируется запрос к учетной политике). Заменим обращение к таблице регистра:
// Было в коде обработки для ЗУП 2.5:
Запрос.Текст = "ВЫБРАТЬ * ИЗ РегистрСведений.УчетнаяПолитикаНалоговыйУчет КАК УчетнаяПолитика";
// Меняем на имя регистра из УПП 1.3:
Запрос.Текст = "ВЫБРАТЬ * ИЗ РегистрСведений.УчетнаяПолитикаОрганизаций КАК УчетнаяПолитика";
В штатных правилах выгрузки прошлых версий присутствует досадный баг: при выгрузке фактических отпусков сотрудников данные могут не сопоставиться, из-за чего в ЗУП 3.1 переносятся пустые документы отпусков, ломая остатки дней отпуска. Предотвратим эту проблему.
В коде обработки выгрузки найдем строчку, формирующую структуру выгрузки фактических отпусков:
НовыйДокумент.Вставить("ФактическиеОтпускаОрганизаций", ФактическиеОтпуска);
Заменим ее на корректное имя реквизита, которое ожидает ЗУП 3.1:
НовыйДокумент.Вставить("ФактическиеОтпуска", ФактическиеОтпуска);
Сохраним обработку. Теперь мы можем запустить ее в режиме «1С:Предприятие» непосредственно в нашей рабочей или копийной базе УПП 1.3. Обработка сформирует XML-файл с данными, который мы затем загрузим в ЗУП 3.1 через тот же помощник перехода (выбрав пункт «Загрузить данные из файла»).
---
Часто возникает ситуация (как и описывал автор темы на форуме), когда помимо переноса из УПП 1.3 необходимо объединить сотрудников и подразделения с уже существующей базой ЗУП (или перенести еще одну группу подразделений из другой базы ЗУП 2.5). При этом важно не допустить хаоса в справочниках и задвоения информации.
Проанализируем оптимальный подход к решению этой задачи:
Обратите особое внимание на справочник Физические лица. Объединяйте дубликаты именно в нем. Справочник Сотрудники при этом трогать не нужно — у одного физического лица может быть несколько элементов сотрудников (например, в случае внутреннего или внешнего совместительства).
Для подразделений настройте правила слияния в обработке поиска дублей так, чтобы подразделения с одинаковыми наименованиями и родителями схлопнулись в один элемент, перенеся на него все ссылки из кадровых документов.
---
Переход с УПП 1.3 на ЗУП 3.1 без покупки сторонних правил обмена вполне реален и выполняется силами одного штатного программиста. Мы рассмотрели два основных пути: изменение конфигурации копии базы-источника и модификацию внешней обработки выгрузки. Выбирайте тот метод, который кажется вам наиболее удобным и безопасным для вашей инфраструктуры. Помните о важности сверки остатков отпусков, взаиморасчетов и среднего заработка сразу после завершения процедуры загрузки данных!