Как исправить ошибку «Не указано начисление для компенсации за отпуск!» при увольнении госслужащего в 1С:ЗБУ

Программист 1С v8.3 (Обычные формы)
← На главную

При работе в программе «1С:Зарплата и кадры бюджетного учреждения 8» (редакция 1.0) расчетчики и бухгалтеры государственных учреждений часто сталкиваются со специфической ошибкой при оформлении увольнения сотрудников. При проведении документа «Расчет при увольнении госслужащего» программа автоматически определяет количество дней неиспользованного отпуска, но при попытке рассчитать сумму начисления выдает критическую ошибку: «Не указано начисление для компенсации за отпуск!». Данная проблема делает невозможным проведение автоматического расчета и существенно тормозит работу кадровой и финансовой служб.

В этой статье мы подробно разберем, почему возникает эта ошибка, почему стандартное ручное создание видов расчета в пользовательском режиме не приносит желаемого результата и какими способами можно навсегда решить эту техническую проблему.

Выясняем техническую причину возникновения ошибки

Для корректной работы механизмов расчета денежного содержания государственных гражданских служащих в конфигурации предусмотрена жесткая привязка к системным (предопределенным) видам расчета. В плане видов расчета Основные начисления организаций и Удержания организаций при определенных обновлениях системы должны автоматически инициализироваться следующие элементы:

  1. «Компенсация отпуска (сохраняемое денежное содержание)» (план видов расчета Основные начисления организаций).
  2. «Удержание за неотработанные дни отпуска (сохраняемое денежное содержание)» (план видов расчета Удержания организаций).
  3. «Выходное пособие (сохраняемое денежное содержание)» (план видов расчета Основные начисления организаций).

Проанализируем механизм обновления конфигурации. Начиная с релиза 1.0.36, в системе присутствует обработчик, который генерирует данные элементы. Однако создание этих элементов происходит только при условии, что в настройках параметров учета на момент обновления базы данных был установлен флаг ведения учета государственной службы. Если база данных была перенесена из версии «1С:Зарплата и Кадры 7.7», либо если флаг госслужбы был включен пользователями уже после проведения обновления конфигурации, процедура создания видов расчета игнорируется. В результате документы увольнения не находят нужных видов расчета в базе данных.

Почему ручное создание начислений в интерфейсе не помогает?

Многие пользователи пытаются обойти проблему самым очевидным путем — зайти в справочник начислений и создать элемент с названием «Компенсация отпуска (сохраняемое денежное содержание)» вручную. Однако при попытке повторного расчета ошибка никуда не исчезает.

Дело в том, что внутренние алгоритмы программных модулей документов 1С ищут виды расчета не по их текстовому наименованию (синониму), а по уникальным системным идентификаторам — GUID предопределенных элементов. В кодовой базе это жесткие ссылки вида ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.КомпенсацияОтпускаСохраняемоеДенежноеСодержание.

Когда вы создаете запись вручную через интерфейс программы, система генерирует для нее новый случайный GUID и помечает элемент как пользовательский. Для алгоритма проведения документа «Расчет при увольнении госслужащего» этот элемент остается абсолютно невидимым, из-за чего программа продолжает сообщать о его отсутствии.

Способ 1. Программное восстановление предопределенных данных (для администраторов и разработчиков)

Рассмотрим наиболее быстрый и надежный способ решения проблемы без поиска и скачивания сторонних внешних обработок. Нам потребуется принудительно заставить платформу восстановить отсутствующие предопределенные элементы в информационной базе.

Для выполнения этой операции выполните следующие шаги:

  1. Запустите программу в режиме 1С:Предприятие с правами Администратора.
  2. Откройте консоль встроенного языка или любую обработку, позволяющую выполнять произвольный код на сервере (например, стандартную обработку «Групповое изменение реквизитов» или внешнюю обработку «Групповая обработка справочников и документов» с возможностью выполнения кода).
  3. Выполните следующий фрагмент кода для принудительного заполнения предопределенных данных планов видов расчета:

// Восстановление предопределенных записей для основных начислений и удержаний
ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ЗаполнитьПредопределенныеДанные();
ПланыВидовРасчета.УдержанияОрганизаций.ЗаполнитьПредопределенныеДанные();

Если ваша конфигурация работает на старой версии платформы, где данный метод недоступен, мы можем вызвать напрямую экспортную процедуру обновления из общего модуля конфигурации, которая отвечает за генерацию расчетов госслужащих. Код вызова выглядит следующим образом:


// Принудительный вызов процедуры обновления для госслужащих
ПроцедурыОбновленияИнформационнойБазы.СоздатьНачисленияГосслужащих();

После выполнения этого кода система создаст элементы с корректными GUID-идентификаторами, и документ «Расчет при увольнении госслужащего» начнет рассчитываться без ошибок.

Способ 2. Штатное восстановление через параметры учета и перезапуск обновления

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

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

Что делать, если список видов отпусков для госслужащих пуст?

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

В данном случае проблема кроется в установленных системных отборах формы. Чтобы созданные вами начисления отображались в этом поле, они должны строго соответствовать регламентированному способу расчета. Выполните следующие действия для настройки:

  1. Перейдите в план видов расчета Основные начисления организаций.
  2. Создайте новое начисление (например, «Основной ежегодный отпуск госслужащего» или «Дополнительный отпуск за ненормированный рабочий день»).
  3. На вкладке Расчеты установите переключатель (способ расчета) в значение: «Сохраняемое денежное содержание на период отпуска».

Установка именно этого регламентированного способа расчета является ключевым критерием для прохождения системного фильтра формы выбора. После сохранения нового начисления оно сразу станет доступным для выбора в документах отпуска государственных служащих.

← На главную