Почему в 1С:ЗУП 3.1 у сотрудника в табеле Т-13 отражается 32 часа в сутки и как это исправить?

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

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

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

Выясняем причину аномалии: почему множатся часы?

Для начала разберем внутреннюю кухню программы. Когда мы формируем отчет Т-13 или заполняем документы начисления зарплаты, система не просто берет данные напрямую из документа Табель. Она обращается к сложной цепочке регистров сведений и накопления, где хранятся плановые и фактические данные рабочего времени. Если в этих регистрах по какому-то сотруднику образуются дублирующие строки, программа при формировании отчета суммирует показатели по этим дублям. В результате стандартные 8 часов явки могут умножиться на 4 записи в регистре, превратившись в абсурдные 32 часа в сутки.

Основными источниками подобных сбоев обычно становятся три регистра:

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

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

Метод 1. Правильное перепроведение кадровых документов (через распроведение)

Как показывает практика, простое нажатие кнопки «Провести» в документе ПриемНаРаботу или КадровыйПеревод часто не приносит желаемого результата. Программа оптимизирует запись движений и может проигнорировать перезапись уже существующих (пусть и ошибочных) записей в регистрах сведений.

Применим правильный алгоритм перепроведения документа:

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

Метод 2. Анализ и ручная очистка регистра «Данные для подбора сотрудников»

Если перепроведение кадрового документа не помогло, нам потребуется заглянуть «под капот» программы. Сделаем это через стандартные механизмы платформы 1С:Предприятие 8.3.

Выполним следующие шаги:

  1. В правом верхнем углу программы нажмите на кнопку главного меню (три горизонтальные полоски или шестеренка, в зависимости от версии платформы), выберите пункт «Сервис и настройки», а затем — «Перейти по ссылке...».
  2. В открывшемся окне вставьте ссылку на регистр: e1cib/list/РегистрСведений.ДанныеДляПодбораСотрудников и нажмите «Перейти».
  3. В открывшейся форме списка регистра настройте отбор по проблемному сотруднику. Для этого нажмите кнопку «Еще» -> «Настроить список», перейдите на вкладку «Отбор», добавьте поле Сотрудник и укажите его значение.
  4. Внимательно проанализируем полученные записи. В нормальном состоянии по сотруднику не должно быть дублирующихся строк с одинаковыми периодами и кадровыми данными. Если вы видите несколько идентичных строк, программа именно из-за них умножает время в табеле.
  5. Для исправления ситуации попробуйте нажать кнопку «Еще» и найти команду «Перезаполнить регистр» (доступна в некоторых релизах). Если ее нет, то для удаления дублей может потребоваться временно разрешить редактирование регистра (что чаще всего требует прав администратора системы) или воспользоваться специальной обработкой с портала информационно-технологического сопровождения (ИТС).

Метод 3. Проверка регистра «Графики работы по видам времени»

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

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


ВЫБРАТЬ
    ГрафикиРаботы.ПериодРегистрации КАК ПериодРегистрации,
    ГрафикиРаботы.ГрафикРаботы КАК ГрафикРаботы,
    ГрафикиРаботы.ВидУчетаВремени КАК ВидУчетаВремени,
    ГрафикиРаботы.Дата КАК Дата,
    ГрафикиРаботы.ОсновноеЗначение КАК ОсновноеЗначение
ИЗ
    РегистрСведений.ГрафикиРаботыПоВидамВремени КАК ГрафикиРаботы
ГДЕ
    ГрафикиРаботы.ГрафикРаботы ССЫЛКА Справочник.Сотрудники
    И ГрафикиРаботы.ГрафикРаботы = &ПроблемныйСотрудник

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

Метод 4. Устранение последствий прерванного обновления конфигурации

Довольно часто массовое появление 32 или 48 часов в табелях у сотрудников совпадает по времени с проведением очередного обновления программного продукта 1С:ЗУП. При обновлении конфигурации запускаются фоновые и отложенные регламентные процедуры обновления данных ИБ.

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

Проанализируем шаги для исправления этой ситуации:

  1. Перейдем в раздел «Администрирование» -> «Обслуживание».
  2. Развернем группу «Результаты обновления программы» и перейдем по ссылке «Результаты обновления и дополнительная обработка данных».
  3. Внимательно посмотрим на список процедур. Если там присутствуют незавершенные задания (особенно те, которые касаются заполнения регистров кадровой истории, планового времени или штатного расписания), это и есть первопричина сбоя.
  4. Попробуем запустить эти процедуры принудительно, нажав кнопку «Запустить еще раз» или выполнив их в многопоточном режиме во внерабочее время.

Метод 5. Проверка настроек видов начислений (исключение дублирования видов времени)

Иногда завышение часов в табеле является следствием некорректно настроенных формул или видов времени в самих начислениях. Это часто случается после переходов с предыдущих версий программы (например, с ЗУП 2.5) или при неаккуратном ручном создании новых начислений.

Выполним проверку настроек времени:

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

Подводя итоги нашего разбора, отметим: в подавляющем большинстве случаев проблема с "32 часами в сутки" успешно решается простым, но правильным циклом распроведения и последующего проведения кадрового документа ПриемНаРаботу. Этот нехитрый прием позволяет полностью переписать движения по служебным кадровым регистрам и избавиться от зависших дублей без привлечения программистов.

← На главную