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