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

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

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

Анализируем причину проблемы: приоритеты видов времени

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

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

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

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

Рассмотрим первый способ, который часто предлагают консультанты — включение функционала внутрисменных командировок. Чтобы проверить этот вариант, выполним следующие действия:

  1. Перейдем в раздел Настройка — Расчет зарплаты — Настройка состава начислений и удержаний.
  2. На вкладке Прочие отсутствия установим флажок В том числе внутрисменные для командировок.
  3. В документе Командировка установим галочку Командировка на часть дня (внутрисменная).

Разберем, к чему это приведет. В этом случае в табеле за этот день будет отражена Явка. Если мы введем документ Работа сверхурочно, то часы кода «С» благополучно появятся в табеле, так как они будут идти «в связке» с явкой. Однако у этого метода есть существенный минус: код «К» (Командировка) в табеле за этот день отображаться не будет, либо будет отображаться некорректно в зависимости от версии релиза. Если для вашей кадровой службы критично наличие кода «К» в Т-13, этот метод вам не подойдет.

Вариант 2: Ручная корректировка документа «Табель»

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

  1. Проводим документ Командировка (для расчета среднего заработка).
  2. Проводим документ Работа сверхурочно (для начисления оплаты в 1.5 и 2-кратном размере).
  3. Создаем документ Табель за соответствующий месяц.
  4. Находим нужного сотрудника и нужный день. В ячейке дня мы увидим только К 8.
  5. Вручную редактируем строку, добавляя через пробел или дробь второй код: К 8 С 1.

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

Вариант 3: Использование документа «Работа в выходные и праздничные дни»

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

В отличие от «сверхурочки», вид времени «РВ» (Работа в выходные) в системе имеет особый статус и может сочетаться с командировкой (код «К/РВ») в типовой конфигурации без дополнительных доработок.
С точки зрения денег: оплата будет произведена в двойном размере (или в одинарном с предоставлением отгула), что часто соответствует требованиям ТК РФ при работе сверх нормы в командировке. В табеле Т-13 автоматически проставится К/РВ, что визуально подтверждает работу сверх нормы в период отсутствия.

Вариант 4: Создание пользовательского вида времени и начисления (Путь программиста/аналитика)

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

Разберем по шагам:

  1. Зайдем в справочник Виды использования рабочего времени и создадим новый элемент «Сверхурочные в командировке» с основным кодом «С» (или своим уникальным).
  2. Создадим новое начисление в разделе Настройка — Начисления. Укажем, что оно выполняется только если введен вид времени «СК».
  3. Пропишем формулу, аналогичную стандартной оплате сверхурочных:
    
    ?(ВремяВЧасах > 2, 2 * СтоимостьЧаса * 2 + (ВремяВЧасах - 2) * СтоимостьЧаса * 2, ВремяВЧасах * СтоимостьЧаса * 1.5)
    
    (Примечание: формула приведена для примера, её нужно адаптировать под ваши учетные политики).

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

Техническое резюме для специалистов

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

Посмотрим на фрагмент логики, которую система использует при определении видов времени (упрощенно):


// Внутренняя логика ЗУП при определении основного вида времени
Если Состояние = Справочники.СостоянияСотрудников.Командировка Тогда
    ВидВремени = Справочники.ВидыИспользованияРабочегоВремени.Командировка;
    // Типовой код здесь не предусматривает добавление 'С', 
    // если только это не РВ или не специфические настройки внутрисменки
КонецЕсли;

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

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

← На главную