Как вывести процент северной надбавки в печатную форму приказа о приеме Т-1 в 1С:ЗУП 3.1

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

При работе в программе 1С:Зарплата и управление персоналом 3.1 бухгалтеры и кадровики часто сталкиваются с тем, что стандартная печатная форма приказа о приеме на работу (Т-1) не содержит числового значения процента северной надбавки. В то время как районный коэффициент отображается корректно (например, 1.5), для северной надбавки выводится лишь текстовое упоминание «Северн. надб.». В этой статье мы подробно разберем, почему так происходит, и проанализируем способы решения этой задачи с помощью инструментов программирования и настройки системы.

Выясним причину: почему процент не выводится автоматически?

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

В типовом коде формирования печатной формы Т-1 программа обращается к плановым начислениям. Поскольку северная надбавка — это расчетная величина, система по умолчанию выводит только название вида расчета. Для того чтобы вывести конкретную цифру (например, 30%), необходимо заставить программу вычислить это значение на конкретную дату — дату приема сотрудника на работу.

Способ 1: Использование внешней печатной формы (ВПФ)

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

Разберем по шагам, как получить процент надбавки программно. В типовой конфигурации существует специализированный программный интерфейс. Нам потребуется функция из общего модуля КадровыйУчетРасширенный.ПроцентСевернойНадбавки.

Эта функция требует передачи двух ключевых параметров:

  1. Ссылка на объект Сотрудник.
  2. Дата, на которую нужно получить процент (в нашем случае — дата документа или дата приема).

Пример программного вызова может выглядеть следующим образом:


// Получаем актуальный процент северной надбавки
ДатаСведений = Объект.ДатаПриема; // или ДатаДокумента
ПроцентСН = КадровыйУчетРасширенный.ПроцентСевернойНадбавки(Выборка.Сотрудник, ДатаСведений);

Если ПроцентСН <> 0 Тогда
    СтрокаНадбавки = "Северная надбавка (" + ПроцентСН + "%)";
КонецЕсли;

Этот код позволяет сконструировать строку, которая будет выведена в ячейку надбавок в макете Т-1.

Способ 2: Работа с регистрами сведений напрямую

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

Однако стоит учитывать, что в этом регистре хранится не сам процент, а «шкала» и «стаж». Чтобы получить именно число процентов, придется задействовать механизмы модуля ОплатаТрудаСоставЗапросов. Рассмотрим подробнее, как работает механизм сбора показателей. При формировании печатной формы программа собирает таблицу ВТДанныеГрафика и ВТПлановыеНачисления. Нам необходимо присоединить к этим данным значения из периодических показателей.

Проанализируем ситуацию: в ЗУП 3.1 процент северной надбавки хранится как значение показателя ПроцентСевернойНадбавки. Его можно извлечь через запрос к виртуальной таблице РегистрСведений.ЗначенияПериодическихПоказателейРасчета.СрезПоследних, установив фильтр по сотруднику и виду показателя.

Способ 3: Расширение конфигурации и изменение макета

Если вы не хотите создавать отдельный файл ВПФ, можно воспользоваться механизмом расширений. Рассмотрим, как это реализовать:

  1. Создаем новое расширение и заимствуем в него документ ПриказОПриеме и его макет Т1.
  2. Находим процедуру, отвечающую за печать (обычно это ПечатьПриказаОПриеме в менеджере документа).
  3. Используем аннотацию &Вместо или &После, чтобы перехватить формирование структуры данных для печати.
  4. В макете находим область, где выводится параметр Надбавка. Нам нужно изменить алгоритм заполнения этого параметра. Вместо простого перечисления названий надбавок из табличной части «Оплата труда», мы будем программно дописывать процент в скобках.

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

Альтернативный вариант: Редактирование макета (без программирования)

Существует способ «быстрого исправления» через пользовательский режим, однако он имеет существенный недостаток. Рассмотрим его для полноты картины. В разделе Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм можно найти макет «Приказ о приеме (Т-1)».

Вы можете отредактировать его, вписав текст «(30%)» прямо в ячейку. Но помните: это значение будет отображаться для всех сотрудников без исключения. Это допустимо только в том случае, если в вашей организации у всех сотрудников абсолютно одинаковый процент северной надбавки, что на практике встречается крайне редко.

Рекомендации по реализации

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

Для реализации качественного решения используйте связку функции КадровыйУчетРасширенный.ПроцентСевернойНадбавки и модифицированного запроса к данным документа. Это гарантирует, что в приказе Т-1 всегда будут актуальные и юридически значимые данные.

← На главную