Как сгруппировать начисления в отчете Анализ зарплаты по сотрудникам с помощью пользовательских полей в 1С ЗУП 3.1

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

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

Причина возникновения ошибки в типовых отчетах

Проанализируем ситуацию: отчет Анализ зарплаты построен на универсальной схеме компоновки данных (СКД) Анализ начислений и удержаний. В этой схеме реализована сложная логика программного формирования колонок. Когда мы создаем Пользовательское поле типа «Выбор» и пытаемся заменить им стандартную группировку Вид расчета, система выдает ошибку. Это происходит потому, что в метаданных отчета или в программном коде модуля объекта наложены ограничения на использование определенных полей в качестве родительских для группировок. СКД не может сопоставить динамическую структуру колонок с логикой вашего пользовательского поля, так как поле Вид расчета внутри этой схемы имеет особый статус.

Способ 1. Добавление пользовательского поля без удаления стандартных настроек

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

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

Способ 2. Использование механизма Групп с отборами

Разберем альтернативный подход, который часто используется в сложных схемах СКД ЗУП 3.1. Если прямое использование пользовательского поля в группировке блокируется, можно использовать встроенный механизм Групп в структуре отчета.

Выясним, как это настроить:

  1. В структуре отчета найдем место, где выводятся начисления.
  2. Вместо одной группировки Вид расчета создадим несколько элементов типа Группа (правой кнопкой мыши — Добавить — Новая группа).
  3. Для каждой группы на вкладке Отбор укажите условие по полю Вид расчета. Например, для группы «Премии» укажите отбор: Вид расчета В списке [Список премий].
  4. В Дополнительных настройках каждой такой группы установите параметр Заголовок (например, «Итого премий»).

Этот метод более надежен с точки зрения архитектуры СКД, так как мы не создаем новые сущности (поля), а используем стандартную фильтрацию внутри структуры вывода данных.

Способ 3. Классификация через Дополнительные реквизиты (рекомендуемый)

Проанализируем ситуацию с точки зрения долгосрочного использования. Использование конкретных видов расчета в настройках отчета (через УИД или ссылки) — это не всегда удобно, так как при добавлении нового начисления отчет придется перенастраивать. Рассмотрим более профессиональный метод — использование Дополнительных реквизитов.

  1. Перейдем в раздел Администрирование — Общие настройки — Дополнительные реквизиты и сведения.
  2. Найдем справочник Начисления и добавим новый реквизит, например, Группа начислений (для анализа) с типом значения «Дополнительное значение».
  3. В карточке каждого начисления (раздел Настройка — Начисления) заполним этот реквизит: для оклада укажем «Оклад», для всех видов премий — «Премии» и т.д.
  4. Вернемся в отчет Анализ зарплаты. В настройках теперь нам не нужно создавать сложные пользовательские поля. Мы можем просто вытащить поле через точку: Вид расчета.Группа начислений.

Преимущество этого метода: Группировка по реальному реквизиту объекта никогда не вызывает ошибку Поле не может быть использовано в группировке, так как это физическое поле в базе данных, а не вычисляемое выражение СКД.

Как вывести показатели начислений (проценты, тарифные ставки)

Часто в дополнение к суммам требуется вывести показатели, например, процент надбавки. Посмотрим на особенности реализации этого в ЗУП 3.1. В отчете Анализ зарплаты показатели по умолчанию скрыты или недоступны для простого вывода в колонки, так как отчет предназначен для суммового анализа.

Для решения этой задачи проанализируем следующие шаги:

Итоги и рекомендации

Подводя итог, отметим: если вы столкнулись с ошибкой группировки в ЗУП 3.1, первым делом попробуйте метод Дополнительных реквизитов. Это освободит вас от необходимости прописывать каждый Вид расчета в настройках СКД и сделает ваш отчет универсальным. Если же нужно быстрое решение «здесь и сейчас», используйте создание пользовательского поля-выбора, но добавляйте его как новую колонку, не пытаясь полностью перестроить стандартную иерархию группировок, заложенную разработчиками фирмы 1С.

← На главную