Ситуация, когда при оформлении увольнения в программе 1С:Зарплата и управление персоналом 8 (редакция 3.1) на закладке «Начисления» автоматически заполняются две разные строки компенсации (например, «Отпуск основной» и «Основной ежегодный отпуск»), является типичной проблемой для организаций, осуществивших переход с версии 2.5. На первый взгляд кажется, что система просто ошибается в расчетах, однако за этим поведением стоит строгая логика работы справочников и регистров. В данной статье мы подробно разберем причины возникновения этой ситуации и пошагово пройдем путь по ее устранению.
Разберем, почему программа «видит» два разных отпуска. В конфигурации ЗУП 3.1 учет прав на отпуска и расчет компенсаций строится на связке нескольких объектов. Ключевым является справочник ВидыОтпусков. При переносе данных из ЗУП 2.5 система пытается сопоставить виды отпусков из старой базы с предопределенными элементами в новой.
Проблема возникает в следующих случаях:
ВидыОтпусков, не распознав в нем стандартный ежегодный отпуск.ВидыОтпусков соответствует свой вид расчета в плане видов расчета Начисления. Если в системе появилось два вида отпуска, то автоматически создаются и два вида начисления компенсации.ОстаткиОтпусков за сотрудником закрепляются не просто «дни», а дни в разрезе конкретных видов отпусков. Если при вводе начальных остатков часть дней была записана на один вид, а текущее право на отпуск в новой базе начало копиться по другому виду, документ «Увольнение» справедливо рассчитает компенсацию по обоим основаниям.Прежде всего, нам необходимо убедиться в наличии дублирующих элементов. Перейдем в раздел Настройка — Виды отпусков. Рассмотрим список внимательно. В норме для основного отпуска там должна быть только одна запись. Если мы видим две похожие записи, одна из которых может иметь значок «предопределенного элемента» (желтая точка на иконке), а другая — нет, значит, мы нашли корень проблемы.
Проанализируем настройки каждого вида. Важно проверить флаг «Отпуск является ежегодным». Если этот флаг стоит у обоих видов, система будет считать их равнозначными в плане накопления прав на отдых, что и приводит к появлению нескольких строк в документе.
Выясним, как именно распределены дни между этими видами отпусков. Для этого лучше всего воспользоваться отчетом Справка об остатках отпусков (находится в карточке сотрудника по кнопке «Печать» или в разделе «Кадровые отчеты»).
Если в справке мы видим две разные таблицы или две строки с названиями «Отпуск основной» и «Основной ежегодный отпуск», значит, остатки «расползлись». Рассмотрим пример:
В этом случае документ Увольнение заполнит две строки: на 14 и на 2.33 дня соответственно.
Самым правильным и технологичным способом решения проблемы является использование типовой обработки «Поиск и замена дублей». Это позволит не просто удалить лишний элемент, а корректно перепривязать все существующие документы (включая ввод остатков и кадровые приказы) к одному «правильному» виду отпуска.
Рассмотрим последовательность действий:
Виды отпусков.После этой операции все записи в регистре ОстаткиОтпусков «схлопнутся» под одним общим видом. Однако будьте внимательны: после замены может потребоваться перепровести документы Ввод остатков отпусков или кадровые документы, если расчеты не обновились автоматически.
Теперь разберем ситуацию с планом видов расчета. Перейдем в Настройка — Начисления. Даже после слияния видов отпусков в списке могут остаться два начисления с названием «Компенсация отпуска (основной)».
Проанализируем их настройки на закладке «Основное». Там есть поле Отпуск (вид ежегодного отпуска). Убедимся, что оба начисления теперь ссылаются на один и тот же (оставшийся после замены) вид отпуска. Одно из этих начислений стоит пометить на удаление, чтобы в будущем при расчетах система не предлагала выбор из двух идентичных вариантов. Как правило, следует оставить то начисление, которое было создано программой автоматически как системное.
Если замена дублей не помогла мгновенно, проверим индивидуальные настройки сотрудника. Зайдем в карточку сотрудника, перейдем по ссылке «Настройка прав на отпуск».
Посмотрим, не назначены ли там одновременно два разных вида отпуска. Такое случается, если в штатном расписании или в документе Прием на работу / Кадровый перевод по ошибке были добавлены оба вида. Рассмотрим алгоритм исправления:
Для программистов 1С, которые сталкиваются с этой задачей при написании обработок переноса, важно понимать, как система инициализирует виды отпусков. В ЗУП 3.1 при первом запуске создаются предопределенные элементы. Если вы программно создаете остатки, всегда используйте ссылку на предопределенный элемент:
ВидОтпускаСсылка = Справочники.ВидыОтпусков.ОсновнойЕжегодныйОтпуск;
// Вместо поиска по наименованию:
// ВидОтпускаСсылка = Справочники.ВидыОтпусков.НайтиПоНаименованию("Отпуск основной");
Это гарантирует, что данные попадут в «нужную корзину» и не создадут конфликтов с типовым функционалом расчета среднего заработка и остатков.
После выполнения всех шагов вернемся в документ Увольнение. Нажмем кнопку «Пересчитать сотрудника» или просто перевыберем его в документе. Теперь на закладке «Начисления» должна остаться одна-единственная строка Компенсация отпуска (Основной ежегодный отпуск), сумма которой будет включать в себя все накопленные дни, как перенесенные из старой базы, так и заработанные в новой.
Мы выяснили, что проблема не в ошибке программного кода, а в избыточности данных в справочниках. Совместная работа по очистке справочников и объединению дублей позволяет полностью восстановить корректный учет и избежать путаницы в отчетности перед проверяющими органами.