Как в 1С:ЗУП 3.1 в выходные дни командировки вместо кода В поставить код К

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

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

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

Почему 1С:ЗУП 3.1 разделяет коды «К» и «В»

В версии ЗУП 3.1 реализована жесткая связь между начислением и видом времени в табеле. Логика разработчиков такова: если за день сотруднику выплачивается средний заработок, в табеле ставится «К». Если день является выходным по графику сотрудника и за него не производится оплата (не было приказа о работе в выходной), то этот день отмечается как «В». Это критически важно для корректного расчета среднего заработка в будущем.

Согласно Постановлению № 922, из расчетного периода исключаются дни, в которые за работником сохранялся средний заработок. Если мы принудительно проставим «К» в выходной день без оплаты, это может привести к тому, что программа ошибочно исключит этот день из знаменателя формулы среднего заработка при расчете последующих отпусков, что занизит выплаты сотруднику. Тем не менее, если требования кадровой службы непоколебимы, рассмотрим варианты реализации.

Вариант 1: Использование индивидуальных графиков

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

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

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

Вариант 2: Программное изменение через расширение конфигурации

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

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

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


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

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

Вариант 3: Подмена кода только для печатной формы Т-13

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

Рассмотрим шаги реализации:

  1. Найдем общий менеджер печати или процедуру формирования макета Т-13.
  2. В момент вывода области ячейки проверим: если за этот день в регистре ДанныеОВремениДляРасчетаСреднегоЗаработка стоит период командировки, но вид времени «В» — принудительно заменим текст в области макета на «К».

Вариант 4: Отражение через «Работу в выходные и праздники»

Если сотрудник действительно должен иметь код «К» в выходной, потому что он находился в пути или выполнял служебное задание, правильнее всего использовать документ Работа в выходные и праздники.

Проанализируем ситуацию:

Риски и последствия изменения кода «В» на «К»

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

Если вы измените логику программы и сделаете выходные дни «рабочими» (проставив «К»), это никак не должно повлиять на оплату больничного, так как он рассчитывается исходя из календарных дней. Однако, если вы измените график сотрудника на «пятидневку без выходных», это может исказить расчеты других начислений, зависящих от нормы времени. Поэтому рекомендуется использовать метод подмены кода только в визуальном слое (табеле), не затрагивая регистры учета времени, по которым строятся расчеты НачислениеЗарплатыИВзносов.

Резюме

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

  1. Используйте Индивидуальные графики для разовых правок.
  2. Примените Расширение конфигурации для модификации функции ВидыВремениСплошнойРегистрации, если нужно системное решение.
  3. Для сохранения точности расчетов лучше всего модифицировать только печатную форму Т-13.

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

← На главную