Почему табель учета рабочего времени в 1С:УПП задваивает «Явку» и как это исправить

Бухгалтер 1С v8.3 (Обычные формы) Бухгалтерский учет
← На главную

При ведении кадрового учета и расчета заработной платы в программе 1С:Управление производственным предприятием (УПП) ред. 1.3 (или в аналогичной по расчетному функционалу 1С:Зарплата и Управление Персоналом ред. 2.5) пользователи часто сталкиваются с неприятной ситуацией: при автоматическом заполнении документа Табель учета рабочего времени у некоторых сотрудников часы явки удваиваются, складываются или выводятся дублирующимися строками. На первый взгляд кадровые документы и графики работы заполнены абсолютно корректно, однако система упорно продолжает двоить отработанное время.

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

Техническая причина задвоения «Явки»

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

В системе 1С все начисления делятся на категории по отношению к рабочему времени. Ключевую роль играет настройка на вкладке «Время» в карточке вида расчета:

  1. Первичное начисление — это начисление, которое само по себе определяет и регистрирует период нахождения сотрудника на работе (например, «Оклад по дням» или «Оклад по часам»).
  2. Дополнительное начисление за уже оплаченное время — это начисление, которое производится за уже отработанное время, зарегистрированное другим (основным) документом, и само по себе не создает новых рабочих часов (например, надбавки, премии или доплаты).

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

Поскольку оба начисления претендуют на один и тот же день и имеют вид времени «Явка», алгоритм заполнения табеля складывает эти часы или дублирует строки в документе, выводя неверные показатели.

Для наглядности проанализируем упрощенную схему запроса, который выполняет платформа 1С при сборе данных для табеля:


ВЫБРАТЬ
    ОсновныеНачисления.Сотрудник,
    ОсновныеНачисления.ВидРасчета,
    ОсновныеНачисления.ПериодДействияНачало,
    ОсновныеНачисления.ПериодДействияКонец,
    ОсновныеНачисления.ВидВремени
ИЗ
    РегистрРасчета.ОсновныеНачисленияОрганизаций КАК ОсновныеНачисления
ГДЕ
    ОсновныеНачисления.ПериодДействия МЕЖДУ &НачалоПериода И &КонецПериода
    И ОсновныеНачисления.ВидВремени = ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.Явка)

Если в регистр попадают две параллельные записи с видом времени «Явка», запрос вернет обе строки, что неизбежно приведет к задвоению в результирующей таблице документа.

Шаг 1. Поиск проблемного начисления

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

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

Шаг 2. Корректировка настроек вида расчета

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

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

Важное замечание: Изменение настроек предопределенных или давно используемых видов расчета может потребовать перерасчета уже зарегистрированных документов за текущий период. Рекомендуется выполнять эти операции в монопольном режиме после создания резервной копии базы данных.

Шаг 3. Перезаполнение документа «Табель»

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

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

Загадка тестовой базы: почему там все работало?

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

Другие возможные причины дублирования времени

Если настройки видов расчета проверены, но «Явка» все равно отображается неверно, проанализируем другие возможные архитектурные коллизии в 1С:УПП:

Внутреннее совместительство

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

Пересечение кадровых документов

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

Ошибки механизма вытеснения видов расчета

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

← На главную