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

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

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

В этой статье мы разберем, почему стандартный подход через создание нового вида времени часто приводит к ошибкам, и рассмотрим наиболее эффективные способы реализации «параллельной» оплаты труда.

Анализ проблемы: почему стандартный вид времени не работает «из коробки»?

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

  1. Конфликт в Табеле: Если мы пытаемся ввести часы по виду времени «Ф» в день, который по основному графику является выходным («В»), система выдаст ошибку о недопустимости сочетания целосменных видов времени.
  2. Отображение в отчетах: Любой вид времени, указанный в табеле или графике, автоматически попадает в унифицированную форму Т-13. Если задача стоит «не светить» эти часы в официальной отчетности, использование вида времени становится проблемой.
  3. Отсутствие начисления: Если начисление настроено как плановое, но вид времени введен через документ Данные для расчета зарплаты без привязки к графику, документ Начисление зарплаты и взносов может проигнорировать эти данные, так как не увидит связи между временем и сотрудником.

Проанализируем два основных способа решения задачи: через использование показателей (рекомендуемый) и через техническую доработку проверок (путь автора темы).

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

Этот способ является наиболее «чистым» с точки зрения методологии 1С, так как он не ломает логику учета времени и не требует программирования. Вместо того чтобы регистрировать время как Вид времени, мы будем регистрировать его как числовой показатель.

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

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

Шаг 2. Настройка шаблона ввода данных

Чтобы иметь возможность вводить эти часы ежедневно (с разбивкой по дням), нам понадобится специальный шаблон. Перейдем в «Настройка» — «Шаблоны ввода данных»:

  1. Создадим новый шаблон.
  2. На вкладке «Показатели зарплаты» выберем наш показатель ДопЧасыУпр.
  3. На вкладке «Дополнительно» установим переключатель в положение «Ввод данных за произвольный период» и выберем «Данные вводятся по дням».

Теперь в разделе «Зарплата» — «Данные для расчета зарплаты» мы сможем создавать документы, где в табличной части для каждого сотрудника можно проставить часы в нужные календарные даты, независимо от того, выходной это или рабочий день по основному графику.

Шаг 3. Настройка начисления

Теперь создадим само начисление:

Решение №2: Использование вида времени и расширения (технический путь)

Если бизнес-заказчик настаивает на использовании именно Вида времени (например, чтобы видеть буквенные обозначения в каких-то внутренних отчетах), придется столкнуться с жесткими проверками ЗУП на пересечение периодов. Проанализируем, как это реализовал автор темы.

Для того чтобы система позволила ввести вид времени «Ф» (Факт) одновременно с выходным «В», необходимо внести изменения в логику проведения документов График работы или Табель. Это делается через механизм расширений.

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


&Вместо("ПроверитьПересечениеВидовВремени")
Процедура Расш1_ПроверитьПересечениеВидовВремени(ДанныеВремени, Отказ)
    // Стандартная логика проверки
    // ...
    // Наш кусок кода: если вид времени равен "Ф", игнорируем ошибку пересечения с "В"
    Если ДанныеВремени.ВидВремени = Справочники.ВидыИспользованияРабочегоВремени.НайтиПоНаименованию("Ф") Тогда
        Возврат; // Просто выходим из проверки для нашего вида времени
    КонецЕсли;
КонецПроцедуры

После такой доработки вы сможете указывать в графике или табеле комбинации вида Я 8 / Ф 4 или даже В / Ф 8. Однако помните, что это приведет к появлению буквы «Ф» в форме Т-13. Чтобы ее оттуда убрать, придется дополнительно корректировать макет или код формирования отчета Т-13.

Как скрыть «лишние» часы из расчетного листка?

Рассмотрим ситуацию: начисление рассчитано верно, но бухгалтер не хочет, чтобы в расчетном листке в колонке «Отработано (оплачено)» фигурировали часы по виду «Ф», так как они путают сотрудников. Выясним, как это настроить штатными средствами:

  1. В настройках начисления на закладке «Основное» проверьте поле «Вид начисления». Если установить его как «Прочие начисления и выплаты», программа менее строго относится к выводу временных показателей.
  2. Если в формуле используется только ваш показатель ДопЧасыУпр, а не предопределенные показатели типа ВремяВЧасах, то при правильной настройке вкладки «Учет времени» (выбор варианта «За уже оплаченное время») часы не будут попадать в общую сумму отработанного времени по сотруднику.
  3. Проверьте настройку самого показателя ДопЧасыУпр. Если в нем не стоит галочка «Является временем», то система будет воспринимать его просто как числовой коэффициент, что гарантирует его отсутствие в графах отработанных дней и часов в отчетах.

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

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

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

← На главную