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