Переход с устаревших конфигураций на платформе «1С:Предприятие 8.2» (и ранних версиях 8.3) на современные решения — всегда непростая задача. Особенно остро этот вопрос стоит для конфигурации «1С:Комплексная автоматизация, редакция 1.1» (КА 1.1), в которой зарплатный блок реализован на базе старой редакции «Зарплата и управление персоналом, редакция 2.5» (ЗУП 2.5). При переходе на новую версию «Зарплата и управление персоналом, редакция 3.1» (ЗУП 3.1) у многих специалистов возникает закономерный вопрос: как перенести накопленные данные по расчету зарплаты и кадрам с минимальными трудозатратами?
В этой статье мы подробно рассмотрим и проанализируем различные стратегии переноса, разберем по шагам наиболее эффективный способ прямого переноса данных без создания промежуточных баз, а также изучим технические нюансы адаптации типовых правил выгрузки.
Перед тем как приступить к технической реализации, давайте сравним два основных подхода к решению этой задачи:
Рассмотрим подробнее, как реализовать прямой перенос данных собственными силами.
Этот способ позволяет запустить стандартный инструмент выгрузки 1С непосредственно в базе Комплексной автоматизации 1.1. Выясним, как обойти встроенную проверку конфигурации, которую выполняет обработка выгрузки.
Выполним следующие шаги:
ПомощникВыгрузки_V8.epf.ПомощникВыгрузки_V8.epf в Конфигураторе. Нам необходимо закомментировать код, который отвечает за жесткую проверку имени конфигурации источника.ПриОткрытии или специализированная функция проверки версии).Проанализируем пример кода, который выполняет проверку в типовом помощнике, и скорректируем его:
// Пример исходного кода проверки конфигурации:
Если Метаданные.Имя <> "ЗарплатаИУправлениеПерсоналом" И Метаданные.Имя <> "ЗарплатаИУправлениеПерсоналомКП" Тогда
Предупреждение("Данная обработка предназначена для выгрузки данных из конфигурации Зарплата и Управление Персоналом!");
Отказ = Истина;
Возврат;
КонецЕсли;
Для обхода этой проверки мы можем просто закомментировать данный блок или принудительно вернуть истину, как показано ниже:
// Модифицированный код для запуска в КА 1.1:
// Если Метаданные.Имя <> "ЗарплатаИУправлениеПерсоналом" И Метаданные.Имя <> "ЗарплатаИУправлениеПерсоналомКП" Тогда
// Предупреждение("Данная обработка предназначена для выгрузки данных из конфигурации Зарплата и Управление Персоналом!");
// Отказ = Истина;
// Возврат;
// КонецЕсли;
Сохраним измененную обработку. Теперь мы можем успешно запустить её в КА 1.1, выбрать необходимые разделы учета (кадры, начисления, данные для расчета среднего заработка, НДФЛ и страховые взносы) и сформировать файлы выгрузки в формате XML.
Существует еще один интересный технический прием, который часто используют разработчики, чтобы не вносить изменения в код самого Помощника выгрузки. Мы можем временно изменить имя конфигурации в копии базы КА 1.1.
Разберем этот процесс по шагам:
КомплекснаяАвтоматизация) временно запишем значение ЗарплатаИУправлениеПерсоналомКП или ЗарплатаИУправлениеПерсоналом.ПомощникВыгрузки_V8.epf. Обработка успешно пройдет проверку имени конфигурации и позволит без проблем выгрузить данные.Если в вашей базе Комплексной автоматизации 1.1 зарплатный блок подвергался существенным доработкам (были добавлены новые виды расчетов, дополнительные реквизиты в кадровые документы или изменены алгоритмы расчета среднего заработка), то стандартная выгрузка может завершиться с ошибками. В такой ситуации наилучшим решением будет точечная доработка правил обмена.
Проанализируем последовательность действий для этого сценария:
ЗарплатаКадрыПереносДанныхИзЗУП25.MD83Exp.epf и загрузим ее в Конвертацию данных как информационную базу-источник.ПередВыгрузкой или ПриВыгрузке) для корректного заполнения данных в ЗУП 3.1.Такой подход требует высокой квалификации специалиста 1С, но гарантирует стопроцентно точный перенос даже сильно кастомизированных систем учета.
При использовании прямого переноса из КА 1.1 программисты часто сталкиваются с техническими ошибками, обусловленными архитектурными различиями систем. Разберем наиболее популярные из них:
1. Ошибка при выгрузке фактических отпусков.
В некоторых релизах правил выгрузки присутствует досадная опечатка, из-за которой не переносятся данные об использовании отпусков. Проблема кроется в несоответствии имен табличных частей. Для исправления откройте правила обмена в текстовом редакторе или в Конвертации данных и найдите строку:
НовыйДокумент.Вставить("ФактическиеОтпускаОрганизаций", ФактическиеОтпуска);
Ее необходимо заменить на корректное имя коллекции объектов, используемое в новой конфигурации:
НовыйДокумент.Вставить("ФактическиеОтпуска", ФактическиеОтпуска);
2. Ошибки сопоставления организаций и подразделений.
В Комплексной автоматизации 1.1 справочники организаций и подразделений тесно связаны с бухгалтерским и налоговым учетом (содержат счета учета, субконто и т.д.). В ЗУП 3.1 эти реквизиты отсутствуют или имеют совершенно другую структуру. Если при переносе возникают ошибки сопоставления, рекомендуется:
Мы настоятельно рекомендуем использовать так называемый «рекомендованный» (краткий) перенос данных. Полноценный перенос всех документов за прошлые годы («документ в документ») практически невозможен из-за принципиально разной методологии учета зарплаты в редакциях 2.5 и 3.1. При рекомендованном переносе в ЗУП 3.1 будут перенесены:
Такой объем информации является оптимальным для быстрого старта работы в новой программе без переноса «мусорных» данных из старой базы.