При ведении кадрового учета и расчета заработной платы в программе 1С:Управление производственным предприятием (УПП) ред. 1.3 (или в аналогичной по расчетному функционалу 1С:Зарплата и Управление Персоналом ред. 2.5) пользователи часто сталкиваются с неприятной ситуацией: при автоматическом заполнении документа Табель учета рабочего времени у некоторых сотрудников часы явки удваиваются, складываются или выводятся дублирующимися строками. На первый взгляд кадровые документы и графики работы заполнены абсолютно корректно, однако система упорно продолжает двоить отработанное время.
В этой статье мы подробно разберем технические механизмы платформы 1С, которые приводят к возникновению этой ошибки, пошагово настроим систему для её устранения, выясним, почему поведение программы может отличаться в рабочей и тестовой базах, а также рассмотрим альтернативные сценарии, способные вызывать подобные сбои.
Для того чтобы понять природу ошибки, проанализируем, как именно документ Табель учета рабочего времени собирает данные при нажатии кнопки «Заполнить». Алгоритм заполнения обращается к записям регистра расчета Основные начисления за выбранный месяц. Программа анализирует зарегистрированные виды расчета (начисления) сотрудников и их настройки времени.
В системе 1С все начисления делятся на категории по отношению к рабочему времени. Ключевую роль играет настройка на вкладке «Время» в карточке вида расчета:
Если для какого-то вспомогательного начисления (например, Доплата за совмещение или Доплата за руководство бригадой) ошибочно установлена категория «Первичное», а в поле «Вид времени по классификатору» указана «Явка», программа воспринимает это начисление как отдельный, самостоятельный период работы. В результате система видит два пересекающихся первичных начисления на один и тот же день:
Поскольку оба начисления претендуют на один и тот же день и имеют вид времени «Явка», алгоритм заполнения табеля складывает эти часы или дублирует строки в документе, выводя неверные показатели.
Для наглядности проанализируем упрощенную схему запроса, который выполняет платформа 1С при сборе данных для табеля:
ВЫБРАТЬ
ОсновныеНачисления.Сотрудник,
ОсновныеНачисления.ВидРасчета,
ОсновныеНачисления.ПериодДействияНачало,
ОсновныеНачисления.ПериодДействияКонец,
ОсновныеНачисления.ВидВремени
ИЗ
РегистрРасчета.ОсновныеНачисленияОрганизаций КАК ОсновныеНачисления
ГДЕ
ОсновныеНачисления.ПериодДействия МЕЖДУ &НачалоПериода И &КонецПериода
И ОсновныеНачисления.ВидВремени = ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.Явка)
Если в регистр попадают две параллельные записи с видом времени «Явка», запрос вернет обе строки, что неизбежно приведет к задвоению в результирующей таблице документа.
Прежде чем вносить изменения, нам необходимо точно определить, какой именно вид расчета вызывает сбой. Для этого проанализируем данные сотрудника с помощью стандартных отчетов.
Доплата за совмещение, Доплата за временное заместительство или специализированные надбавки.Выяснив, какой вид расчета приводит к ошибке (для примера возьмем Доплата за совмещение), выполним его правильную настройку. Проанализируем последовательность действий:
Доплата за совмещение) и откроем его карточку двойным щелчком мыши.Важное замечание: Изменение настроек предопределенных или давно используемых видов расчета может потребовать перерасчета уже зарегистрированных документов за текущий период. Рекомендуется выполнять эти операции в монопольном режиме после создания резервной копии базы данных.
После того как настройки времени в плане видов расчета исправлены, нам необходимо обновить данные в самом документе:
Табель учета рабочего времени.Часто авторы вопросов на форумах сталкиваются с тем, что в копии базы (тестовой базе) табель заполняется корректно, а в рабочей — задваивает часы, несмотря на абсолютно идентичные настройки видов расчета. Разберем причины этого феномена:
Табель, а только потом введена и проведена Доплата за совмещение, то в табеле останутся корректные данные (до момента его перезаполнения). В рабочей базе документы создавались последовательно, поэтому доплата сразу повлияла на автозаполнение табеля.Ввод сведений о плановых начислениях или разовый расчетный документ). Если самого факта начисления в тестовой базе нет, то и регистр расчета пуст — соответственно, задваивать нечего.Если настройки видов расчета проверены, но «Явка» все равно отображается неверно, проанализируем другие возможные архитектурные коллизии в 1С:УПП:
Если сотрудник работает в организации как основной работник и одновременно как внутренний совместитель, в системе для него должны быть созданы два разных элемента в справочнике Сотрудники (но привязанные к одному контрагенту/физическому лицу в справочнике Физические лица). В документе Табель для такого человека должны присутствовать две отдельные строки. Если при приеме на работу по совместительству были допущены ошибки (например, не создали нового сотрудника, а попытались использовать старую карточку), система начнет некорректно суммировать время по обеим должностям в одну строку.
Проанализируем регистры сведений, отвечающие за кадровую историю сотрудников. Задвоение может возникать, если по сотруднику были проведены дублирующие документы приема или кадрового перемещения на одну и ту же дату. Программа считает, что сотрудник занимает полторы или две ставки на разных рабочих местах одновременно, из-за чего кадровый метод заполнения табеля дублирует строки.
Если сотруднику за отчетный период был проведен документ отклонения (например, Больничный лист или Начисление отпуска), но при автоматическом заполнении табеля часы неявки накладываются на рабочие часы (отображается одновременно и больничный, и явка), проблема кроется в настройках вытеснения. Нам необходимо открыть основное начисление (например, Оклад по дням), перейти на вкладку «Прочее» и убедиться, что в табличную часть «Вытесняющие виды расчета» добавлены соответствующие начисления неявок (больничные, отпуска, отпуска за свой счет). Если вытеснение не настроено, программа будет считать эти периоды рабочими, что приведет к коллизии временных интервалов.