Переход с конфигурации «1С-КАМИН: Расчет заработной платы 3.0» на современную «1С:Зарплата и управление персоналом 3.1» (ЗУП) — это технически сложная задача. Трудность заключается в том, что структуры хранения кадровых данных, начислений и расчетов в этих программах принципиально отличаются. В КАМИНе исторически сложилась более простая, плоская структура, в то время как в ЗУП 3.1 используется сложная система связанных регистров сведений и накопления.
В этой статье мы подробно разберем, почему нет стандартных решений для миграции, проанализируем доступные варианты решения проблемы и рассмотрим по шагам, как выполнить перенос данных с минимальными трудозатратами.
---
Многие пользователи и начинающие специалисты ожидают увидеть в коробке с программой готовый помощник перехода. Однако ни фирма «1С», ни компания «КАМИН» не предоставляют встроенного бесплатного механизма для миграции между этими решениями:
Тем не менее, решить задачу перехода можно несколькими проверенными способами. Разберем каждый из них подробно.
---
Если перед вами стоит задача перенести не просто «карточки сотрудников», а полноценную кадровую историю, остатки отпусков, данные для расчета среднего заработка и налоги, самостоятельная разработка правил обмена с нуля экономически нецелесообразна. Время программиста на изучение структуры ЗУП 3.1 и написание правил в Конвертации данных 2.1 обойдется компании значительно дороже, чем приобретение готового инструмента.
На рынке существуют проверенные коммерческие решения:
Резюме по варианту: Если бюджет позволяет, настоятельно рекомендуется приобрести готовые правила. Это сэкономит десятки часов ручной работы и убережет от ошибок в учете.
---
Если вашей организации требуется перенести только базовые справочники и личные данные сотрудников (без сложной кадровой истории и расчетов), то тратить деньги на коммерческие обработки нет смысла. Такую задачу программист может решить за несколько часов, используя прямое COM-соединение между базами. В качестве альтернативы собственной разработке можно использовать обработку для загрузки физических лиц и сотрудников из файлов табличных документов.
Рассмотрим пример реализации обмена. Нам необходимо подключиться из базы-приемника (ЗУП 3.1) к базе-источнику (КАМИН 3.0) и перенести список физических лиц и сотрудников.
Проанализируем пример кода для инициализации COM-соединения и переноса элементов:
// Инициализация подключения к базе КАМИН 3.0
Функция ПодключитьсяККамину(ПутьКБазе, Пользователь, Пароль) Экспорт
COMConnector = Новый COMОбъект("V83.COMConnector");
ПараметрыПодключения = "File=""" + СокрЛП(ПутьКБазе) + """;Usr=""" + СокрЛП(Пользователь) + """;Pwd=""" + СокрЛП(Пароль) + """;";
Попытка
КаминПодключение = COMConnector.Connect(ПараметрыПодключения);
Возврат КаминПодключение;
Исключение
Предупреждение("Не удалось подключиться к базе КАМИН: " + ОписаниеОшибки());
Возврат Неопределено;
КонецПопытки;
КонецФункции
После успешного подключения мы можем прочитать справочник физических лиц из КАМИНа и создать их в ЗУП. При этом критически важно синхронизировать физических лиц по уникальным реквизитам, таким как СНИЛС или ИНН, чтобы избежать дублирования.
Разберем по шагам алгоритм переноса физических лиц:
Процедура ПеренестиФизическихЛиц(КаминПодключение)
// Получаем выборку справочника ФизическиеЛица из КАМИН 3.0 через COM
ВыборкаКамин = КаминПодключение.Справочники.ФизическиеЛица.Выбрать();
Пока ВыборкаКамин.Следующий() Цикл
// Проверяем, нет ли уже такого физлица в ЗУП по СНИЛС
СНИЛС_Камин = СокрЛП(ВыборкаКамин.СтраховойНомерПФР);
ФизЛицоСсылка = Справочники.ФизическиеЛица.НайтиПоРеквизиту("СтраховойНомерПФР", СНИЛС_Камин);
Если ФизЛицоСсылка.Пустая() Тогда
// Создаем новое физическое лицо в ЗУП
НовоеФизЛицо = Справочники.ФизическиеЛица.СоздатьЭлемент();
НовоеФизЛицо.Наименование = ВыборкаКамин.Наименование;
НовоеФизЛицо.ДатаРождения = ВыборкаКамин.ДатаРождения;
НовоеФизЛицо.ИНН = ВыборкаКамин.ИНН;
НовоеФизЛицо.СтраховойНомерПФР = СНИЛС_Камин;
НовоеФизЛицо.Пол = ?(ВыборкаКамин.Пол = КаминПодключение.Перечисления.ПолФизическихЛиц.Мужской, Перечисления.ПолФизическихЛиц.Мужской, Перечисления.ПолФизическихЛиц.Женский);
Попытка
НовоеФизЛицо.Записать();
Сообщить("Успешно перенесено физлицо: " + НовоеФизЛицо.Наименование);
Исключение
Сообщить("Ошибка записи физлица: " + ОписаниеОшибки());
КонецПопытки;
Иначе
Сообщить("Физлицо со СНИЛС " + СНИЛС_Камин + " уже существует в базе.");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Важное архитектурное замечание: Не путайте справочники ФизическиеЛица и Сотрудники. Физическое лицо — это человек как субъект гражданского права (его СНИЛС, паспорт, ИНН). Сотрудник — это конкретный трудовой договор. Если у вас есть внутренние совместители, у одного физического лица будет несколько элементов в справочнике Сотрудники. При переносе через COM сначала перенесите всех физлиц, а затем создавайте сотрудников, привязывая их к найденным физлицам.
---
Существует неочевидный, условно-бесплатный способ переноса данных, которым пользуются опытные внедренцы. Он позволяет задействовать официальные, но скрытые механизмы переходов.
Рассмотрим этот лайфхак по шагам:
AppData\Roaming\1C\1c8\tmplts\1ckamin\zpl50\...) всегда присутствуют готовые правила переноса данных и обработки для перехода с версии 3.0 на версию 5.0. Эти обработки поддерживаются и обновляются самим КАМИНом.---
Вне зависимости от выбранного способа перехода, вы гарантированно столкнетесь со следующими методологическими проблемами, которые придется решать вручную:
В КАМИН 3.0 карточка сотрудника и карточка физического лица часто были объединены в один объект, либо связь между ними велась по упрощенной схеме. В ЗУП 3.1 разделение жесткое. При некорректном переносе вы можете получить ситуацию, когда для внешнего совместителя создадутся два разных физических лица. Это приведет к полному краху регламентированной отчетности по НДФЛ и страховым взносам (персонифицированные сведения, ЕФС-1).
Решение: Перед загрузкой в ЗУП обязательно проверяйте уникальность физлиц по СНИЛС.
Для того чтобы в ЗУП 3.1 корректно рассчитывались будущие отпуска и больничные, программе требуются данные о начислениях за предыдущие 12 месяцев (для отпусков) и за 2 года (для больничных). Эти данные должны лежать в специальных технических регистрах накопления, таких как:
Данные о начислениях для расчета среднего заработка (ФСС)Данные о времени для расчета среднего заработка (ФСС)При использовании самописных скриптов эти регистры часто забывают заполнить, что заставляет расчетчиков вводить данные для каждого больничного вручную. Для исправления и дополнения таких показателей прошлых периодов подойдёт обработка для редактирования данных расчета среднего заработка.
Формулы и алгоритмы расчета в КАМИН и ЗУП различаются. Например, надбавка за стаж в КАМИНе может быть настроена фиксированной шкалой, а в ЗУП для нее требуется создание специального показателя и вида расчета. Перед переносом кадровых документов необходимо предварительно настроить все виды начислений в ЗУП 3.1 и сопоставить их с кодами из КАМИН.
---
Проанализировав опыт сотен внедрений, можно выделить золотое правило перехода:
Идеальное время для перехода — 1 января нового года.
В этом случае вам потребуется перенести минимальный объем информации:
Если вы решите переходить в середине года (например, с 1 июля), вам придется переносить абсолютно все начисления, выплаты, исчисленный и удержанный НДФЛ, а также базу по страховым взносам с начала года. Это неизбежно приведет к расхождениям в копейках при расчете налогов и потребует от бухгалтера ручной выверки сотен показателей для сдачи ближайшей отчетности (6-НДФЛ, РСВ).