Переход с редакции Зарплата и Управление Персоналом 2.5 на 3.1 является масштабной задачей, особенно когда речь идет о крупных предприятиях с численностью сотрудников более 12 000 человек. Одной из наиболее острых проблем является перенос документов Табель. Стандартный помощник перехода от фирмы «1С» не предусматривает автоматический перенос этих документов, так как методология учета рабочего времени в новых версиях программного продукта претерпела значительные изменения.
В рамках данной статьи мы подробно разберем, почему прямой перенос «один в один» практически невозможен, проанализируем архитектурные различия систем и рассмотрим альтернативные способы автоматизации учета рабочего времени при параллельном ведении баз.
Прежде чем приступать к разработке собственных правил обмена, нам необходимо понять, почему структура данных ЗУП 2.5 несовместима с ЗУП 3.1 в части учета времени. Проанализируем ключевые отличия:
Явка часто включал в себя ночные и вечерние часы. То есть, если сотрудник отработал 8 часов, из которых 2 ночные, в табеле могло стоять «8» в поле явки и «2» в поле ночных. В версии 3.1 реализован строгий раздельный учет: Явка — это только дневные часы. Суммирование происходит на уровне отчетов, а в регистрах накопления каждый вид времени фиксируется отдельной записью.Табель имеет самый низкий приоритет. Система ориентирована на автоматическое вытеснение графиков документами-отклонениями (больничные, отпуска, командировки). В версии 2.5 табель был «сильнее» многих документов, что позволяло вручную корректировать время без оглядки на другие документы.Табель (и особенно Индивидуальный график) требует детальной разбивки по дням или по видам времени, что усложняет структуру XML-пакета при переносе.Для компаний с большим штатом (например, 800 табелей на 12 000 сотрудников) эксперты рекомендуют переносить данные не в документы Табель, а в документы Индивидуальный график. Разберем, почему это решение является более стабильным.
Индивидуальный график в ЗУП 3.1 фактически заменяет норму времени для конкретного сотрудника на месяц. Если мы перенесем данные из табеля 2.5 именно в этот документ, система воспримет это как плановое время. При вводе отклонений (например, внезапного больничного) расчетчик сможет легко пересчитать зарплату, так как Индивидуальный график корректно взаимодействует с механизмом вытеснения. В то время как «жестко» перенесенный Табель придется каждый раз перезаполнять или корректировать вручную при любом изменении кадровой ситуации.
Рассмотрим пример кода, который может быть использован в обработке для программного создания документа Индивидуальный график на основании данных из внешней базы:
НовыйГрафик = Документы.ИндивидуальныйГрафикРаботы.СоздатьДокумент();
НовыйГрафик.Дата = ТекущаяДата();
НовыйГрафик.ПериодРегистрации = НачалоМесяца(ДатаПереноса);
НовыйГрафик.Организация = Объект.Организация;
Для Каждого СтрокаДанных Из ТЗ_ДанныеИзЗУП25 Цикл
НоваяСтрока = НовыйГрафик.Сотрудники.Добавить();
НоваяСтрока.Сотрудник = Справочники.Сотрудники.НайтиПоРеквизиту("ЛичныйНомер", СтрокаДанных.ТабельныйНомер);
// Заполнение данных по дням
Для День = 1 По День(КонецМесяца(ДатаПереноса)) Цикл
НоваяСтрока["День" + День] = СтрокаДанных["Часы" + День];
НоваяСтрока["ВидВремени" + День] = СтрокаДанных["Вид" + День];
КонецЦикла;
КонецЦикла;
НовыйГрафик.Записать(РежимЗаписиДокумента.Проведение);
Если разработка полноценного обмена через COM-соединение или XDTO кажется избыточной, проанализируем возможность использования штатного функционала. В ЗУП 3.1 в табличных частях большинства документов (включая Табель) присутствует кнопка «Заполнить из файла».
Алгоритм действий в данном случае будет следующим:
РабочееВремяСотрудников в формат Excel.Сотрудник, Дата, Вид времени, Часы.Табель, нажмите «Заполнить из файла» и сопоставьте колонки.Проанализируем ситуацию, описанную в сообщениях форума: 12 000 сотрудников и 800 табелей. Для ЗУП 3.1 такое количество документов Табель может стать причиной существенного замедления работы базы и увеличения её объема (рост регистров расчета и накопления).
Специалисты по внедрению рекомендуют использовать метод отклонений. Выясним его суть: если фактическое время сотрудника совпадает с его графиком работы (общим или индивидуальным), то документ Табель создавать не нужно. Программа сама рассчитает время на основании графика и введенных документов Больничный лист, Отпуск и прочих.
Переносить из 2.5 в 3.1 стоит только те данные, которые:
После того как данные будут перенесены (любым из вышеперечисленных способов), необходимо выполнить проверку по следующим пунктам:
GUID или коды видов времени в справочнике Виды использования рабочего времени идентичны. Если в 2.5 код был «Я», а в 3.1 он стал «Яв», перенос может завершиться ошибкой или пустыми значениями.Отсутствие с сохранением оплаты). Если в 2.5 это просто правилось в табеле, то в 3.1 такой подход может нарушить логику расчета среднего заработка в будущем.Работа в выходные и праздники, и в документ Табель. Это приведет к удвоению начислений.Подводя итог, можно сказать, что перенос табелей из ЗУП 2.5 в 3.1 — это не техническая выгрузка, а методологическая работа. Наиболее эффективным путем для крупного бизнеса остается использование Индивидуальных графиков и постепенный отказ от массового использования документов Табель в пользу автоматического расчета по отклонениям.