При доработке отчетов, обработок и механизмов выгрузки данных при переходе с конфигурации «Зарплата и управление персоналом», редакция 2.5 на редакцию 3.1 разработчики часто сталкиваются с изменением архитектуры регистров. В ЗУП 2.5 сведения о размерах ставок по разрядам хранились в регистре сведений РазмерТарифныхСтавок. В ЗУП 3.1 структура хранения тарифных сеток и ставок сотрудников была полностью переработана.
Рассмотрим подробнее, какими объектами метаданных заменен этот регистр в ЗУП 3.1 и как правильно получать данные о тарифных ставках в запросах.
В ЗУП 3.1 механизмы расчета заработной платы по тарифным сеткам разнесены по нескольким объектам метаданных в зависимости от назначения данных:
ТарифныеСетки — содержит список используемых на предприятии тарифных сеток и разрядов (категорий).ЗначенияТарифов — хранит конкретные размеры тарифных ставок в разрезе измерений ТарифнаяСетка и РазрядКатегория. Изменение значений регистрируется документом УтверждениеТарифнойСетки.ЗначениеБазовыхТарифов — используется в случаях, когда тарифная сетка рассчитывается через коэффициенты от базовой ставки.Если в ЗУП 2.5 сведения о разрядах и плановых начислениях сотрудника считывались напрямую из регистра плановых начислений с полями завершения (например, ТарифныйРазряд1Завершения), то в ЗУП 3.1 применяется иная логика:
КадроваяИсторияСотрудников (поле РазрядКатегория), а также может наследоваться из позиции штатного расписания (справочник ШтатноеРасписание).ЗначенияПоказателейРасчетаЗарплатыСотрудников.ПлановыйФОТИтоги.Проанализируем фрагмент запроса, используемый ранее в ЗУП 2.5 для получения тарифных разрядов и размеров ставок:
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ...
| ЕСТЬNULL(ВЫБОР
| КОГДА ПлановыеНачисленияРаботниковОрганизацииСрезПоследних.ДействуетДо < &КонецПериода
| И ПлановыеНачисленияРаботниковОрганизацииСрезПоследних.ДействуетДо <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА ПлановыеНачисленияРаботниковОрганизацииСрезПоследних.ТарифныйРазряд1Завершения.Наименование
| ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацииСрезПоследних.ТарифныйРазряд1.Наименование
| КОНЕЦ, "") КАК ТарифныйРазряд,
| РазмерТарифныхСтавокСрезПоследних.ТекущаяТарифнаяСтавка
|ИЗ
| ...
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РазмерТарифныхСтавок.СрезПоследних(&КонецПериода, ) КАК РазмерТарифныхСтавокСрезПоследних
| ПО (...)
При переписывании такого запроса под ЗУП 3.1 необходимо учитывать следующие изменения:
...Завершения и ДействуетДо в регистрах плановых начислений ЗУП 3.1 больше нет.ПлановыеНачисленияИнтервальный и КадроваяИсторияСотрудниковИнтервальный), где записи содержат чётко определенные границы ДатаНачала и ДатаОкончания.ЗначенияТарифов по действующему разряду сотрудника и его тарифной сетке.В ЗУП 3.1 для задач выгрузки данных и построения сложных отчетов рекомендуется по возможности отказываться от прямого обращения к таблицам регистров сведений, заменив их использованием программных функций типовых модулей конфигурации (таких как модули кадрового учета и расчета зарплаты).
Типовые процедуры формируют и заполняют временные таблицы кадровых данных и показателей плановых начислений с учетом всех действующих разрезов, назначений, индивидуальных тарифов и пересчетов на заданную дату, что исключает ошибки при сложных кадровых перемещениях сотрудников.