Как настроить реквизит ИспользованиеПериода в виде расчета Компенсация отпуска в ЗУП 3.1

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Налоговый учет
← На главную

В практике работы с конфигурацией 1С:Зарплата и Управление Персоналом 3.1 (ЗУП) пользователи и разработчики часто сталкиваются с ситуацией, когда начисления, созданные автоматически (например, при использовании помощников перехода или копировании существующих видов расчета), начинают вести себя некорректно в учете. Одной из наиболее неочевидных проблем является неправильная установка системного реквизита ИспользованиеПериода для компенсаций неиспользованного отпуска.

Рассмотрим ситуацию: при начислении компенсации за дополнительный северный отпуск программа перестает ставить флаг «Компенсация» в регистре накопления ФактическиеОтпуска. Это приводит к тому, что дни списываются как фактически отгулянные, что искажает справку об остатках отпусков. Проанализируем, почему это происходит и как исправить ситуацию, если реквизит скрыт в интерфейсе.

Выясним причину: влияние реквизита ИспользованиеПериода

Реквизит ИспользованиеПериода (тип Перечисление.ВариантыИспользованияПериодаНачисления) определяет, как система должна трактовать время, за которое производится начисление. Существует два основных варианта:

  1. ПериодДействия — используется для начислений, которые занимают календарное время (оплата отпуска, больничный, оклад). Это включает механизмы вытеснения: например, отпуск вытесняет оклад.
  2. НеИспользовать — применяется для компенсационных выплат, которые не означают отсутствие сотрудника на рабочем месте.

Проблема возникает, когда для вида расчета с назначением «Компенсация отпуска» ошибочно устанавливается значение ПериодДействия. В этом случае программные модули ЗУП, в частности процедура ДвиженияФактическихОтпусков, начинают воспринимать выплату как фактический уход в отпуск. В результате в регистре ФактическиеОтпуска не проставляется признак компенсации, а данные о периоде могут конфликтовать с другими начислениями (например, окладом).

Проанализируем ситуацию с Помощником перехода

В версиях ЗУП 3.1, актуальных для 2025–2026 годов, при адаптации к изменениям законодательства часто используется Помощник перехода на новые начисления. Посмотрим на алгоритм его работы: зачастую он копирует настройки из основных ежегодных отпусков для создания «северных» компенсаций. Поскольку основной отпуск всегда имеет ПериодДействия, этот признак наследуется компенсацией, что является технической ошибкой метаданных.

Важно помнить, что в режиме предприятия (в карточке начисления) этот реквизит не отображается. Система управляет им автоматически в зависимости от выбранного «Назначения начисления». Однако при программном создании или сбое алгоритмов значение может «застыть» в неверном состоянии.

Решение 1: Использование группового изменения реквизитов

Самый безопасный способ исправить ситуацию без использования конфигуратора — штатная обработка Групповое изменение реквизитов. Разберем по шагам, как это сделать:

  1. Перейдем в раздел АдминистрированиеОбслуживаниеКорректировка данныхГрупповое изменение реквизитов.
  2. В поле «Выбирать элементы типа» укажем Начисления (или Виды расчета в зависимости от версии).
  3. Добавим фильтр по ссылке на наше проблемное начисление (например, «Компенсация ежегодного отпуска (северный)»).
  4. Нажмем кнопку «Дополнительные параметры» и установим флаг «Показывать служебные реквизиты». Без этого шага мы не увидим нужное поле.
  5. Найдем в списке реквизит ИспользованиеПериода и установим для него значение Не использовать.
  6. Нажмем «Изменить реквизиты».

Решение 2: Программная корректировка (для разработчиков)

Если необходимо выполнить исправление быстро для большого количества начислений или обработка не дает внести изменения из-за блокировок, воспользуемся программным методом. Напишем небольшой код, который принудительно установит нужное значение.

Рассмотрим пример кода:


// Определим ссылку на проблемный вид расчета
ВидРасчетаСсылка = ПланыВидовРасчета.Начисления.НайтиПоНаименованию("Компенсация дополнительного отпуска");

// Создадим объект для редактирования
ВидРасчетаОбъект = ВидРасчетаСсылка.ПолучитьОбъект();

// Установим системный реквизит в значение "Не использовать"
ВидРасчетаОбъект.ИспользованиеПериода = Перечисления.ВариантыИспользованияПериодаНачисления.НеИспользовать;

// Отключим проверки при записи, чтобы система не блокировала изменение служебного поля
ВидРасчетаОбъект.ОбменДанными.Загрузка = Истина;
ВидРасчетаОбъект.Записать();

После выполнения этого кода необходимо перепровести документы, которыми регистрировалась компенсация, чтобы движения по регистру ФактическиеОтпуска обновились корректно.

Решение 3: Смена назначения начисления (UI-метод)

Иногда помогает «пересброс» настроек через пользовательский интерфейс. Попробуем следующую последовательность действий:

  1. В карточке начисления временно изменим «Назначение начисления» на Прочие начисления и выплаты.
  2. Запишем объект (при этом система может очистить некоторые связанные настройки, будьте осторожны с формулой).
  3. Вернем назначение Компенсация отпуска.
  4. Снова запишем объект.

Проанализируем результат: при смене назначения программный код в модуле формы часто инициирует процедуру обновления служебных реквизитов, что может привести ИспользованиеПериода в соответствие с логикой компенсации.

Почему это критично для учета?

Важный момент: если оставить значение ПериодДействия для компенсации, это затронет не только остатки отпусков. Система будет считать, что в этот период сотрудник «отсутствовал», и при расчете НДФЛ или страховых взносов могут возникнуть коллизии, связанные с датой получения дохода и распределением сумм по месяцам. Также это может вызвать ошибки в отчетах ЕФС-1 (бывший СЗВ-СТАЖ), так как компенсация не должна выделяться как особый период стажа, в отличие от реального отпуска.

Таким образом, правильная настройка реквизита ИспользованиеПериода — это залог корректного взаимодействия подсистем расчета зарплаты, кадрового учета и регламентированной отчетности в 1С:ЗУП 3.1.

← На главную