Как в 1С:ЗУП настроить произвольные постоянные показатели для расчета зарплаты без привязки к начислениям?

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

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

Понимание архитектуры показателей в ЗУП

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

Способ №1: Использование шаблонов ввода данных

Если вам необходимо вводить данные для сотрудников, которые будут использоваться в формулах, можно воспользоваться штатным механизмом Данные для расчета зарплаты. Рассмотрим этот процесс по шагам:

  1. Перейдите в раздел Настройки и выберите пункт Показатели расчета зарплаты. Создайте новый показатель, установив переключатель «Используется» в положение «Для сотрудника».
  2. Для ввода значений этого показателя необходимо создать Шаблон ввода данных. Перейдите в раздел Настройка — Шаблоны. В шаблоне выберите созданный вами показатель.
  3. В процессе работы, когда возникнет необходимость внести значения, перейдите в раздел Зарплата — Данные для расчета зарплаты. Нажмите Создать и выберите ваш шаблон. Это позволит внести конкретные числовые значения для выбранных сотрудников.

Способ №2: Работа через кадровые документы

Если показатель должен быть по-настоящему постоянным, то есть действовать до момента его изменения, работа через разовые шаблоны может быть неудобной. В таком случае рекомендуем использовать кадровые документы.

Чтобы иметь возможность изменять показатель в документах типа Прием на работу или Кадровый перевод, выполните следующую настройку:

  1. Перейдите в раздел Настройка — Расчет зарплаты.
  2. Установите флаг Использовать несколько тарифных ставок для одного сотрудника.
  3. После этого в кадровых документах появится возможность управлять дополнительными показателями, которые будут закреплены за сотрудником как постоянные величины до следующего изменения.

Разбор типовых ошибок при расчете

Часто пользователи сталкиваются с тем, что при расчете показатель равен 0, даже если данные были введены. Основные причины:

Альтернативный подход для разработчиков

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

  1. Создание собственного Регистра сведений, где измерением будет выступать Сотрудник, а ресурсом — ЗначениеПоказателя.
  2. Этот регистр позволит хранить историю изменений показателя, не перегружая кадровый учет документами Изменение плановых начислений.
  3. При расчете в модуле менеджера или в формуле начисления (через общий модуль) вы сможете обращаться к этому регистру с помощью обычного Запроса.

Пример обращения к данным из кода:


// Пример получения значения показателя из доработанного регистра
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |    МойРегистрСведенийСрезПоследних.Значение КАК Значение
    |ИЗ
    |    РегистрСведений.МойРегистрСведений.СрезПоследних(&Период, Сотрудник = &Сотрудник) КАК МойРегистрСведенийСрезПоследних";
Запрос.УстановитьПараметр("Сотрудник", ВыбранныйСотрудник);
Запрос.УстановитьПараметр("Период", ТекущаяДата());
Результат = Запрос.Выполнить().Выбрать();

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

← На главную