Как перенести расчет зарплаты из КА 1.1 в ЗУП 3.1 напрямую без промежуточных баз?

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

Переход с устаревших конфигураций на платформе «1С:Предприятие 8.2» (и ранних версиях 8.3) на современные решения — всегда непростая задача. Особенно остро этот вопрос стоит для конфигурации «1С:Комплексная автоматизация, редакция 1.1» (КА 1.1), в которой зарплатный блок реализован на базе старой редакции «Зарплата и управление персоналом, редакция 2.5» (ЗУП 2.5). При переходе на новую версию «Зарплата и управление персоналом, редакция 3.1» (ЗУП 3.1) у многих специалистов возникает закономерный вопрос: как перенести накопленные данные по расчету зарплаты и кадрам с минимальными трудозатратами?

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

Анализ возможных стратегий переноса данных

Перед тем как приступить к технической реализации, давайте сравним два основных подхода к решению этой задачи:

  1. Двухэтапный перенос (КА 1.1 -> ЗУП 2.5 -> ЗУП 3.1): При таком подходе сначала создается пустая база ЗУП 2.5, в которую переносятся данные из КА 1.1 с помощью правил обмена (или распределенной информационной базы, если это применимо). Затем выполняется стандартный типовой переход из ЗУП 2.5 в ЗУП 3.1. Основной минус этого варианта — необходимость разворачивать, настраивать и контролировать промежуточную базу, что существенно увеличивает время работы и вероятность возникновения ошибок при двойной конвертации.
  2. Прямой перенос (КА 1.1 -> ЗУП 3.1): Поскольку архитектура подсистемы расчета зарплаты и кадров в КА 1.1 практически на 99% идентична ЗУП 2.5, мы можем использовать типовой механизм перехода ЗУП 2.5 -> ЗУП 3.1 напрямую из базы-источника КА 1.1. Для этого потребуется лишь минимальная доработка правил выгрузки или кода помощника перехода. Это наиболее рациональный и быстрый путь.

Рассмотрим подробнее, как реализовать прямой перенос данных собственными силами.

Решение 1. Прямой перенос через адаптацию типового «Помощника выгрузки»

Этот способ позволяет запустить стандартный инструмент выгрузки 1С непосредственно в базе Комплексной автоматизации 1.1. Выясним, как обойти встроенную проверку конфигурации, которую выполняет обработка выгрузки.

Выполним следующие шаги:

  1. Запустим целевую базу ЗУП 3.1 в режиме «Предприятие».
  2. Перейдем в раздел Администрирование -> Перенос данных из предыдущих программ.
  3. В открывшемся окне выберем пункт «1С:Зарплата и управление персоналом 8, редакция 2.5», укажем вариант «Загрузить данные из файлов» и нажмем кнопку «Получить помощник выгрузки». Программа предложит сохранить на диск внешнюю обработку ПомощникВыгрузки_V8.epf.
  4. Если мы попробуем запустить эту обработку напрямую в КА 1.1 через меню Файл -> Открыть, система выдаст ошибку несовместимости конфигураций, так как обработка ожидает увидеть чистую ЗУП 2.5.
  5. Чтобы исправить это поведение, откроем файл ПомощникВыгрузки_V8.epf в Конфигураторе. Нам необходимо закомментировать код, который отвечает за жесткую проверку имени конфигурации источника.
  6. Найдем модуль основной формы обработки и перейдем к процедуре, которая инициализирует проверку метаданных (обычно это процедура ПриОткрытии или специализированная функция проверки версии).

Проанализируем пример кода, который выполняет проверку в типовом помощнике, и скорректируем его:


// Пример исходного кода проверки конфигурации:
Если Метаданные.Имя <> "ЗарплатаИУправлениеПерсоналом" И Метаданные.Имя <> "ЗарплатаИУправлениеПерсоналомКП" Тогда
    Предупреждение("Данная обработка предназначена для выгрузки данных из конфигурации Зарплата и Управление Персоналом!");
    Отказ = Истина;
    Возврат;
КонецЕсли;

Для обхода этой проверки мы можем просто закомментировать данный блок или принудительно вернуть истину, как показано ниже:


// Модифицированный код для запуска в КА 1.1:
// Если Метаданные.Имя <> "ЗарплатаИУправлениеПерсоналом" И Метаданные.Имя <> "ЗарплатаИУправлениеПерсоналомКП" Тогда
//     Предупреждение("Данная обработка предназначена для выгрузки данных из конфигурации Зарплата и Управление Персоналом!");
//     Отказ = Истина;
//     Возврат;
// КонецЕсли;

Сохраним измененную обработку. Теперь мы можем успешно запустить её в КА 1.1, выбрать необходимые разделы учета (кадры, начисления, данные для расчета среднего заработка, НДФЛ и страховые взносы) и сформировать файлы выгрузки в формате XML.

Решение 2. Обход проверки через временное переименование конфигурации-источника

Существует еще один интересный технический прием, который часто используют разработчики, чтобы не вносить изменения в код самого Помощника выгрузки. Мы можем временно изменить имя конфигурации в копии базы КА 1.1.

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

  1. Обязательно создадим резервную копию (резервный архив) базы данных КА 1.1 и развернем её на локальном ПК разработчика. Все манипуляции производим только в копии базы!
  2. Откроем копию базы КА 1.1 в режиме Конфигуратор.
  3. Откроем свойства корневого узла метаданных (самая верхняя строка в дереве конфигурации).
  4. В поле Имя вместо текущего значения (например, КомплекснаяАвтоматизация) временно запишем значение ЗарплатаИУправлениеПерсоналомКП или ЗарплатаИУправлениеПерсоналом.
  5. Выполним обновление конфигурации базы данных (клавиша F7) и согласимся с изменениями. При этом структура СУБД не пострадает, так как мы меняем только логическое имя конфигурации для системы лицензирования и проверок.
  6. Запустим копию базы в режиме «Предприятие» и откроем оригинальный, неизмененный ПомощникВыгрузки_V8.epf. Обработка успешно пройдет проверку имени конфигурации и позволит без проблем выгрузить данные.

Решение 3. Использование правил обмена через «Конвертацию данных 2.0»

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

Проанализируем последовательность действий для этого сценария:

  1. В конфигурации ЗУП 3.1 найдем макет с правилами конвертации. Как правило, он хранится в общих макетах под именем ЗарплатаКадрыПереносДанныхИзЗУП25.
  2. Сохраним этот макет на диск в формате XML-файла. Это и есть наши типовые правила обмена.
  3. Загрузим полученный файл правил в специализированную конфигурацию «1С:Конвертация данных, редакция 2.0».
  4. Выгрузим описание структуры метаданных из нашей измененной базы КА 1.1 с помощью обработки MD83Exp.epf и загрузим ее в Конвертацию данных как информационную базу-источник.
  5. В Конвертации данных сопоставим объекты источника (КА 1.1) и приемника (ЗУП 3.1). При необходимости настроим правила конвертации свойств (ПКС) для кастомных реквизитов или добавим обработчики событий (например, ПередВыгрузкой или ПриВыгрузке) для корректного заполнения данных в ЗУП 3.1.

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

Типичные ошибки при прямом переносе и способы их устранения

При использовании прямого переноса из КА 1.1 программисты часто сталкиваются с техническими ошибками, обусловленными архитектурными различиями систем. Разберем наиболее популярные из них:

1. Ошибка при выгрузке фактических отпусков.
В некоторых релизах правил выгрузки присутствует досадная опечатка, из-за которой не переносятся данные об использовании отпусков. Проблема кроется в несоответствии имен табличных частей. Для исправления откройте правила обмена в текстовом редакторе или в Конвертации данных и найдите строку:

НовыйДокумент.Вставить("ФактическиеОтпускаОрганизаций", ФактическиеОтпуска);

Ее необходимо заменить на корректное имя коллекции объектов, используемое в новой конфигурации:

НовыйДокумент.Вставить("ФактическиеОтпуска", ФактическиеОтпуска);

2. Ошибки сопоставления организаций и подразделений.
В Комплексной автоматизации 1.1 справочники организаций и подразделений тесно связаны с бухгалтерским и налоговым учетом (содержат счета учета, субконто и т.д.). В ЗУП 3.1 эти реквизиты отсутствуют или имеют совершенно другую структуру. Если при переносе возникают ошибки сопоставления, рекомендуется:

Какую глубину данных переносить?

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

Такой объем информации является оптимальным для быстрого старта работы в новой программе без переноса «мусорных» данных из старой базы.

← На главную