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