В медицинских и других бюджетных учреждениях часто возникает задача включить в расчетную базу для оплаты ночных часов не только чистый оклад (тарифную ставку), но и различные ежемесячные надбавки, такие как надбавка за вредность, надбавка за непрерывный стаж, квалификационную категорию и другие плановые начисления. В редакциях программ 1С:Зарплата и кадры бюджетного учреждения 1.0 (ЗКБУ) и 1С:Зарплата и управление персоналом 2.5 (ЗУП) стандартный показатель ТарифнаяСтавкаЧасовая жестко рассчитывается только на основе основного оклада сотрудника.
В этой статье мы подробно разберем, почему возникает предупреждение системы при попытке настроить такое начисление стандартными методами, и рассмотрим два рабочих решения: гибкую настройку в пользовательском режиме без изменения конфигурации и доработку расчетных механизмов в конфигураторе.
При попытке создать новое начисление для доплаты за ночные часы с указанием ведущих и базовых начислений на вкладке «Прочее» программа выдает следующее предупреждение:
«Рекомендуется установить категорию начислений "Первичное", т.к. для вида расчета не заданы базовые начисления или для базовых начислений не заданы категории начисления! Записать вид расчета?»
Давайте выясним причину этого поведения платформы. Логика расчетного механизма 1С построена на строгом соответствии формулы расчета и настроек зависимости начисления:
РасчетнаяБаза.ТарифнаяСтавкаЧасовая и не использует переменную РасчетнаяБаза, программа определяет эту настройку как некорректную. Она «видит», что база задана, но в математическом выражении формулы никак не участвует. Отсюда и возникает рекомендация вернуть категорию «Первичное».Более того, сам показатель ТарифнаяСтавкаЧасовая (или пересчитанный оклад в часовую ставку) в программном коде ЗКБУ 1.0 собирает данные исключительно из регистра сведений ПлановыеНачисленияРаботниковОрганизаций только по основному виду расчета (окладу), игнорируя любые другие плановые надбавки, закрепленные за сотрудником.
---
Если вам запрещено вносить изменения в конфигурацию (программа находится на поддержке) или вы хотите решить задачу оперативно, мы можем использовать механизм произвольных формул с применением расчетной базы. Нам потребуется создать новое основное начисление, которое будет динамически рассчитывать стоимость часа на основе суммы оклада и всех необходимых надбавок.
Рассмотрим по шагам процесс создания и настройки такого начисления:
Результат = (РасчетнаяБаза / НормаВремениВЧасах) * (ПроцентДоплаты / 100) * ВремяВЧасах
Разберем подробнее, как работает эта формула:
РасчетнаяБаза — это сумма всех начислений сотрудника, которые мы укажем в качестве базовых (оклад + надбавки).НормаВремениВЧасах — норма рабочего времени сотрудника за текущий месяц по его графику работы. Разделив общую базу на норму часов, мы получаем актуальную совокупную стоимость одного часа работы.ПроцентДоплаты — процент доплаты за работу в ночное время (например, 20% или 40%).ВремяВЧасах — фактически отработанное сотрудником время в ночные часы за расчетный период (вводится табелем или графиком).Продолжим настройку начисления на других вкладках:
Оклад по дням, Оклад по часам, Надбавка за вредность, Надбавка за непрерывный стаж и любые другие ежемесячные доплаты.РасчетнаяБаза фигурирует в формуле.Важное методологическое замечание: Поскольку расчетная база собирается за текущий месяц, данный способ отлично подходит, если оклады и надбавки сотрудников стабильны в течение месяца. Если у сотрудника происходили кадровые перемещения в середине месяца с изменением оклада, система корректно распределит базу по периодам действия, однако бухгалтеру следует внимательно контролировать расчеты в переходных периодах.
---
Для крупных учреждений, где требуется строгое соответствие типовому ведению учета без создания дублирующих видов расчета, оптимальным решением является доработка кода конфигурации. Нам нужно изменить алгоритм получения часовой ставки, чтобы программа собирала не только тарифную ставку, но и плановые надбавки сотрудника.
Проанализируем ситуацию в конфигураторе:
ПроведениеРасчетов (а также в специализированных процедурах модулей документов начисления зарплаты).ПересчитатьМесячныйТарифВЧасовой или аналогичная в зависимости от релиза вашей программы).ПлановыеНачисленияРаботниковОрганизаций.Чтобы доработать этот механизм, программисту необходимо решить задачу суммирования показателей:
// Пример модификации запроса получения базовых начислений для стоимости часа
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПлановыеНачисления.Показатель1 КАК Тариф,
| ПлановыеНачисления.ВидРасчета КАК ВидРасчета
|ИЗ
| РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций.СрезПоследних(&Период, Сотрудник = &Сотрудник) КАК ПлановыеНачисления
|ГДЕ
| ПлановыеНачисления.ВидРасчета В (&СписокВидовРасчета)";
СписокВидов = Новый СписокЗначений;
СписокВидов.Добавить(ПланыВидовРасчета.ОсновныеНачисления.ОкладПоДням);
СписокВидов.Добавить(ПланыВидовРасчета.ОсновныеНачисления.НадбавкаЗаВредность); // Добавляем вредность
СписокВидов.Добавить(ПланыВидовРасчета.ОсновныеНачисления.НадбавкаЗаСтаж); // Добавляем стаж
Запрос.УстановитьПараметр("Период", Регистратор.ПериодРегистрации);
Запрос.УстановитьПараметр("Сотрудник", ТекущийСотрудник);
Запрос.УстановитьПараметр("СписокВидовРасчета", СписокВидов);
ТаблицаТарифов = Запрос.Выполнить().Выгрузить();
СовокупныйТариф = ТаблицаТарифов.Итог("Тариф");
Полученный СовокупныйТариф затем передается в стандартную формулу деления на норму времени по графику сотрудника для получения точной стоимости часа. При таком подходе бухгалтеру не придется менять привычные формулы в пользовательском режиме — расчет доплаты за ночные часы по умолчанию начнет учитывать все необходимые надбавки.
Предупреждение: Изменение общего модуля ПроведениеРасчетов влияет на всю систему в целом. Помните, что пересчет стоимости часа по аналогичной схеме может использоваться также при расчете оплаты сверхурочных часов и праздничных дней. Убедитесь, что включение надбавок в стоимость часа для этих видов расчета согласуется с локальными нормативными актами вашего учреждения и требованиями ТК РФ.
---
Если ваше учреждение планирует переход на современные программные продукты платформы «1С:Предприятие 8.3», вам будет полезно узнать, что в редакциях 3.1 эта проблема решена полностью на уровне типового функционала без необходимости программирования.
В ЗУП 3.1 и ЗКГУ 3.1 реализован механизм под названием «Совокупная тарифная ставка». Работает он следующим образом:
Использование современных редакций позволяет гибко управлять расчетом зарплаты в учреждениях здравоохранения и госсектора без привлечения программистов и риска некорректного обновления доработанных конфигураций.