Как получить базовые начисления регистра расчета в ЗУП 3.1 при помощи СКД?

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

Работа с регистрами расчета в 1С:Зарплата и управление персоналом 3.1 имеет ряд специфических особенностей, особенно когда речь заходит о получении базы для сложных начислений (например, процентных доплат или премий). В отличие от обычных регистров накопления, виртуальные таблицы регистров расчета требуют более тщательной настройки параметров сопоставления измерений. Рассмотрим подробно, как правильно настроить схему компоновки данных (СКД) для получения корректной базы начисления.

Разбор структуры запроса к виртуальной таблице

Для получения расчетной базы мы используем виртуальную таблицу РегистрРасчета.Начисления.БазаНачисления. Основная сложность заключается в том, что эта таблица ожидает на вход параметры, описывающие измерения, по которым будет происходить сопоставление записей. Проанализируем типовой запрос:


ВЫБРАТЬ
    НачисленияБазаНачисления.Сотрудник КАК Сотрудник,
    НачисленияБазаНачисления.РезультатБаза КАК СуммаБазы,
    НачисленияБазаНачисления.ВидРасчета КАК ВидРасчета
ИЗ
    РегистрРасчета.Начисления.БазаНачисления(&ИзмеренияОсновного, &ИзмеренияБазового, , ВидРасчета = &ВидРасчета) КАК НачисленияБазаНачисления

В этом запросе мы видим два ключевых параметра: &ИзмеренияОсновного и &ИзмеренияБазового. Они определяют «разрезы», в которых система будет искать базовые записи. Если мы хотим получить базу по сотруднику внутри организации, система должна «понимать», что нужно сложить все начисления именно этого сотрудника, а не всех сотрудников сразу.

Настройка параметров измерений в СКД

Одной из главных проблем, с которой сталкиваются разработчики, является передача списка измерений в параметры запроса СКД. Платформа ожидает массив строк, соответствующих именам измерений регистра в конфигураторе. Однако в интерфейсе настройки параметров СКД типа Массив не существует.

Решим эту задачу по шагам:

  1. Перейдем на закладку Параметры в схеме компоновки данных.
  2. Для параметров ИзмеренияОсновного и ИзмеренияБазового (имена могут отличаться в зависимости от вашего текста запроса) установим флаг Доступен список значений.
  3. В колонке Тип выберем значение Строка.
  4. В поле Значение добавим элементы списка. Для корректной работы в ЗУП 3.1 крайне важно указать как минимум два измерения: Сотрудник и ФизическоеЛицо. В некоторых случаях может потребоваться добавить Организация.

Важный нюанс: Значения должны быть написаны в точности так, как называются измерения в метаданных регистра расчета Начисления. Ошибка в одной букве приведет к тому, что система выдаст ошибку о неверном типе параметра или вернет пустой результат.

Выбор полей: Результат против РезультатБаза

Проанализируем разницу между доступными ресурсами в виртуальной таблице базы. Это критическая точка, на которой часто совершаются ошибки:

Если в вашем отчете поле РезультатБаза всегда равно нулю, проверьте настройки вида расчета в режиме «1С:Предприятие». На вкладке Расчет базы должны быть выбраны те начисления, суммы которых должны составлять базу.

Почему отчет может быть пустым: чек-лист для проверки

Если запрос настроен верно, параметры переданы, но данных в отчете нет, следует выполнить последовательную проверку следующих факторов:

  1. Базовый период: Проверьте, заполнены ли в записях регистра поля БазовыйПериодНачало и БазовыйПериодКонец. Если эти даты не заполнены (например, начисление было введено документом, который не поддерживает расчет базы), виртуальная таблица не найдет данные.
  2. Наличие записей в базовом периоде: Убедитесь, что за период, указанный в качестве базового для «Доплаты», у сотрудника действительно есть начисления (например, «Оклад»), и они проведены.
  3. Настройки Вида Расчета: Выясним, входят ли фактически начисленные виды расчета в базу рассчитываемого вида. Если мы считаем базу для «Премии», а в ее настройках не указан «Оклад», то при наличии начисленного оклада база останется пустой.
  4. График работы: Для корректного формирования виртуальных таблиц база часто требует наличия данных в графике (особенно если используется расчет «по факту»). Убедитесь, что графики сотрудников заполнены и актуальны.
  5. Период регистрации: Помните, что параметры виртуальной таблицы ограничивают записи по ПериодуРегистрации. Если вы ищете базу за январь, но запись о доплате была сделана в феврале (как исправление), нужно внимательно следить за тем, какой период указан в настройках отчета.

Оптимизация и расширенная аналитика

Рассмотрим ситуацию, когда нам нужно не просто получить общую сумму базы, но и понять, из чего она сложилась. Виртуальная таблица БазаНачисления сворачивает данные. Если требуется детализация по видам расчета, входящим в базу, стоит обратить внимание на таблицу РегистрРасчета.Начисления.БазаНачисления<ИмяРегистра> (где в конце добавляется имя того же регистра для получения разреза по базовым видам расчета).

Использование правильных измерений (Сотрудник, ФизическоеЛицо, Организация) гарантирует, что данные не «перемешаются» между разными трудовыми договорами одного и того же человека или между разными юридическими лицами в рамках одной базы. Это особенно актуально для крупных холдингов, ведущих учет в одной информационной базе ЗУП 3.1.

Таким образом, мы выяснили, что успешное получение базы начисления в СКД зависит от трех факторов: правильной передачи имен измерений в виде списка строк, выбора корректного ресурса РезультатБаза и проверки настроек самих начислений в системе.

← На главную