Можно ли использовать дополнительные реквизиты (сведения) для создания начислений в 1С:ЗУП 3.1 и 1С:ЗКГУ 3.1

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

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

В этой статье мы подробно разберем, почему типовой формульный движок не видит дополнительные реквизиты БСП (Библиотеки стандартных подсистем), и рассмотрим четыре практических сценария, как решить эту задачу без изменения конфигурации или с минимальным программированием.

Почему прямое использование дополнительных реквизитов в формулах невозможно?

Давайте проанализируем внутреннее устройство подсистемы расчета зарплаты. Формульный калькулятор в 1С:ЗУП 3.1 / ЗКГУ 3.1 изолирован от общих механизмов хранения дополнительных свойств БСП. В формулах начислений можно использовать только строго определенные сущности:

  1. Предопределенные системные поля (например, КалендарныеДни, ВремяВЧасах, ОтработанноеВремяДней).
  2. Реквизиты объектов, которые заложены в программный код разработчиками фирмы «1С».
  3. Элементы справочника Показатели расчета зарплаты.

Поскольку механизм дополнительных реквизитов записывает данные в подчиненные табличные части или регистры сведений (вне жесткой структуры основных справочников), формульный движок просто не умеет к ним обращаться. Конструкция вида [Сотрудник.ДополнительныйРеквизит] в формуле работать не будет. Тем не менее, решить задачу автоматизации расчетов и учета можно другими методами.

Решение 1. Классический обходной путь через показатели расчета зарплаты

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

Рассмотрим по шагам, как настроить такую схему:

Шаг 1. Создание показателя расчета

Перейдем в раздел Настройка — Показатели расчета зарплаты и создадим новый показатель:

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

Шаг 2. Описание формулы начисления

В разделе Настройка — Начисления создадим новое начисление (или отредактируем существующее). В поле «Результат рассчитывается» укажем формулу, содержащую наш новый показатель. Например:

Оклад * ПерсональныйКоэффициент

Шаг 3. Создание шаблона ввода данных

Чтобы расчетчикам было удобно массово вводить значения этого показателя, перейдем в раздел Настройка — Шаблоны ввода исходных данных и создадим новый шаблон. На вкладке «Показатели» отметим галочкой наш ПерсональныйКоэффициент. На вкладке «Разметка диска» настроим удобный табличный вид.

Шаг 4. Ввод данных и расчет

Теперь ежемесячно (или при изменении условий) пользователи будут заполнять документ Данные для расчета зарплаты (раздел Зарплата), выбирая созданный шаблон. При расчете зарплаты в документе Начисление зарплаты и взносов программа автоматически подтянет введенное значение показателя и рассчитает результат.

Решение 2. Учет по сметам и ЦФО через аналитику отражения в бухучете (без программирования)

Часто вопрос об использовании дополнительных реквизитов возникает у бухгалтеров госучреждений (ЗКГУ) или крупных холдингов, где требуется вести детальный учет расходов по сметам, статьям финансирования или Центрам финансовой ответственности (ЦФО), причем эта аналитика должна идти «внутри» основных источников финансирования.

Здесь дополнительные реквизиты использовать можно, но не на этапе расчета суммы начисления, а на этапе **отражения результатов в бухгалтерском учете**.

Выясним, как настроить этот процесс без программирования:

Шаг 1. Включение дополнительных реквизитов

Перейдем в раздел Администрирование — Общие настройки — Свойства и установим флаг Дополнительные реквизиты и сведения.

Шаг 2. Привязка реквизита к способам отражения

  1. В окне настроек свойств найдем справочник «Способы отражения зарплаты в бухгалтерском учете».
  2. Добавим для него новый дополнительный реквизит, назовем его, например, Смета (тип значения — Дополнительное значение).
  3. Введем список доступных смет (например, "Смета №1", "Смета №2").
  4. Теперь зайдем в каждый способ отражения (раздел Настройка — Способы отражения в бухучете) и заполним созданное поле конкретным значением сметы.

Шаг 3. Распределение затрат (при необходимости)

Если заработную плату конкретного сотрудника нужно делить между разными сметами в пропорции, мы можем использовать стандартный документ Распределение основного заработка (раздел Зарплата). В нем укажем доли распределения сотрудника по разным способам отражения.

Шаг 4. Анализ в отчетах

После проведения документа Отражение зарплаты в бухучете мы можем получить детальный аналитический отчет:

  1. Откроем отчет Сведения для отражения зарплаты в бухучете (раздел Выплаты — Отчеты по выплатам).
  2. Нажмем кнопку Настройки, переключимся в режим Расширенный.
  3. На вкладке «Структура» добавим в группировку новое поле: Способ отражения.Смета.

В результате мы получим полноценную ведомость по затратам на оплату труда и страховым взносам в разрезе смет/ЦФО без изменения кода конфигурации.

Решение 3. Полуавтоматическая связь через «Групповое изменение реквизитов»

Если вам все же критически важно вести учет некоторых свойств именно в карточке сотрудника (через доп. реквизиты), но при этом нужно использовать их в расчете начислений, можно применить схему полуавтоматической синхронизации.

Проанализируем этот алгоритм:

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

Этот способ позволяет избежать программирования, хотя и требует от пользователей выполнения регулярной регламентной операции.

Решение 4. Автоматизация процесса с помощью расширения конфигурации

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

Разберем по шагам логику работы такого расширения:

В расширении создается программный обработчик (например, перед расчетом документа Начисление зарплаты и взносов или при проведении кадровых документов), который выполняет следующие действия:

  1. Считывает значение дополнительного реквизита из табличной части ДополнительныеРеквизиты справочника Сотрудники.
  2. Записывает это значение в соответствующий показатель расчета зарплаты для данного сотрудника в регистр сведений ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.

Посмотрим на пример программного кода, который считывает значение дополнительного реквизита сотрудника:


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

Полученное значение затем автоматически транслируется кодом расширения в значение показателя расчета. Расчетная подсистема отрабатывает штатно, используя актуальные данные из карточки сотрудника.

Резюме

Мы выяснили, что напрямую использовать дополнительные реквизиты и сведения в формулах расчета 1С:ЗУП 3.1 / ЗКГУ 3.1 нельзя из-за особенностей архитектуры формульного движка. Тем не менее, задача полностью решаема:

← На главную