Как настроить индивидуальный график рабочего времени более 24 часов в сутки в 1С:ЗУП 3.1?

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

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

Причина возникновения проблемы и анализ ситуации

Типовая логика 1С:ЗУП базируется на строгом соответствии астрономическому времени. Программа проверяет регистр ДанныеОРабочемВремениСотрудников и не позволяет записать в него значения, превышающие длительность суток. Это необходимо для корректного заполнения статистических отчетов (например, П-4) и расчета среднего заработка. Однако в случае с надбавками, которые зависят от времени пребывания (а не фактического труда), это ограничение становится препятствием. Проанализируем три основных подхода к решению этой проблемы.

Способ 1: Программное отключение проверки (изменение кода)

Если ваша организация не планирует регулярно обновлять конфигурацию или вы используете расширения, можно отключить блокирующую проверку. Это позволит проводить документы Индивидуальный график и Табель с любым количеством часов.

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

Для отключения проверки выполните следующие действия:

  1. Найдите в коде вызов проверки в документе ИндивидуальныйГрафик.
  2. Закомментируйте строку, инициирующую отказ в проведении.

Пример изменения кода (в обработке проведения или в общем модуле):


// В процедуре проверки часов закомментируйте вызов ошибки:
// УчетРабочегоВремениРасширенный.ПроверитьСоответствиеРегистрируемыхЧасовДлинеСуток(
//     МенеджерВТ, 
//     ОписанияОшибокВводаВремени, 
//     Отказ
// );

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

Способ 2: Использование механизма «Территории»

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

  1. Включите использование территорий в настройках состава предприятия.
  2. Создайте две «виртуальные» территории: например, «Берег (основная)» и «Море (надбавка)».
  3. Назначьте сотрудника на обе территории одновременно. Это можно сделать через документ Перемещение между территориями или зафиксировать в кадровых документах.
  4. В настройках начисления (надбавки за море) укажите, что оно выполняется только при нахождении на определенной территории.

В этом случае программа позволяет распределить часы. На территории «Берег» вы фиксируете 8 часов явки, а на территории «Море» — оставшиеся часы пребывания. Хотя суммарно это даст больше 24 часов, в разрезе каждой территории лимит может быть соблюден, либо система будет лояльнее относиться к расчету разных видов времени.

Способ 3: Метод фиктивного внутреннего совместительства

Если вам критически важно видеть все часы в стандартном табеле Т-13 без доработки печатных форм, используйте схему с параллельными сотрудниками. Выясним, как это работает:

  1. Примите матроса на основное место работы (8-часовой график, оклад).
  2. Примите этого же человека (то же физическое лицо) в качестве внутреннего совместителя (например, на 0.1 ставки или на спец. должность «Матрос (рейс)»).
  3. Для основного сотрудника в табеле проставляйте Я 8.
  4. Для совместителя создайте отдельный вид времени (например, «М» — Нахождение в море) и проставляйте там 24 часа.

При формировании отчета «Табель учета рабочего времени» выберите вариант формирования «По физическим лицам». Система объединит данные обоих «сотрудников» в одну печатную форму, и вы получите желаемые строки с суммарным временем более 24 часов.

Способ 4: Настройка через «Данные для расчета зарплаты» и дополнительные виды времени

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

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

Поскольку этот вид времени не является «Рабочим» с точки зрения ТК РФ (это время компенсации), программа перестает суммировать его с Явкой при проверке лимита 24 часа в некоторых версиях конфигурации. Однако для вывода этих данных в печатную форму Т-13 может потребоваться небольшое расширение, которое «подтянет» эти часы из регистра показателей.

Риски и последствия нарушения лимита 24 часов

Прежде чем приступать к реализации, проанализируем возможные побочные эффекты:

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

← На главную