Введение: зачем это нужно?
В предыдущей статье мы детально разобрали анатомию архитектурного бага в 1С:ЗУП 3.1, из-за которого «качели» графиков работы ломают геометрию временных таблиц и приводят к неверным плановым часам в Табеле.
Каждый специалист по расчету зарплаты хотя бы раз сталкивался с ситуацией, когда при расчете зарплаты плановые часы сотрудника внезапно задваиваются или подменяются неверным видом времени. Вручную проверять сотни сотрудников на соответствие правилам кадрового учета перед каждым закрытием месяца — задача нереальная.
Именно поэтому была разработана внешняя печатная форма «Диагностика графиков работы», которая за доли секунды анализирует табель и указывает на потенциально опасные места до того, как будут начислены ошибочные суммы.
Что именно проверяет обработка?
Алгоритм диагностики анализирует данные регистра сведений "График работы сотрудников" и регистра "Параметры зарегистрированных данных учета времени" для всех сотрудников, включенных в табель.
Обработка выявляет 4 типа нарушений:
- Качели графиков (Критично): Количество изменений графика работы у сотрудника в течение одного месяца превышает 2. Это прямой путь к некорректному сшиванию интервалов платформой в функции
УточнитьПериодыЗаполненияПоСотрудникам. - Пересечение интервалов (Критично): Обнаружены периоды действия разных графиков, которые пересекаются по датам и при этом были введены одним документом (задвоение записей в регистре).
- Короткие периоды (Внимание): Выявлены интервалы действия графика длительностью 1–2 дня внутри месяца. Часто это признак ошибочного ввода документа
"Кадровый перевод"или"Смена графика работы". - Ретроспективное изменение (Внимание): Дата начала действия нового графика попадает на день, по которому в регистре параметров уже стоят флаги заполнения (
УстановленДеньN). Это означает, что график меняли после того, как табель был заполнен, что требует обязательного перезаполнения табеля.
Технические особенности: почему это работает быстро
Главная боль при написании обработок для ЗУП — производительность. Если делать запросы в цикле по каждому сотруднику табеля, обработка на 500 человек будет работать минуты.
В данной реализации применен строгий пакетный подход:
- Функция
ПолучитьЗаписиГрафиковПакетнособирает всех сотрудников табеля во временную таблицуВТФильтрГрафикови использует стандартный механизм ядра ЗУП (ЗарплатаКадрыПериодическиеРегистры.СоздатьВТИмяРегистраПериоды) для получения всех интервалов графиков одним пакетным запросом. - Функция
ПолучитьЗаполненныеДниИзРегистраПакетноаналогичным образом выгружает флаги заполненных дней для всех сотрудников сразу, используя агрегациюМАКСИМУМпо 31 колонке дней месяца. - Наименования сотрудников также подтягиваются одним запросом по уникальному списку.
Благодаря этому обработка отрабатывает даже на табелях численностью 500+ человек за доли секунды, не создавая лишней нагрузки на сервер приложений.
Инструкция по установке и использованию
Шаг 1. Регистрация обработки в базе
- Скачайте прикрепленный к статье файл обработки (
.epf). - Откройте его в режиме 1С:Предприятие.
- Перейдите в раздел Администрирование -> Печатные формы, отчеты и обработки -> Дополнительные отчеты и обработки.
- Нажмите Создать, выберите тип Печатная форма, загрузите файл с диска и настройте доступность для роли "Полные права" (или роли расчетчиков).
Шаг 2. Запуск диагностики
- Откройте нужный документ Табель учета рабочего времени.
- Нажмите кнопку Печать (или «Еще» -> «Печать»).
- В списке доступных форм выберите пункт Диагностика графиков работы.
Рис. 1. Пункт «Диагностика графиков работы» в меню кнопки «Печать» после регистрации внешней печатной формы для документа «Табель учета рабочего времени».
Шаг 3. Анализ результата
Обработка сформирует табличный документ. Если нарушений нет, вы увидите соответствующее сообщение. Если нарушения выявлены, они будут выведены в виде таблицы.
Рис. 2. Сформированный отчет диагностики. Критичные нарушения выделены красным фоном и содержат рекомендации по исправлению, информационные предупреждения выводятся стандартным шрифтом.
Расшифровка колонок отчета:
- Сотрудник: ФИО сотрудника, у которого выявлена аномалия.
- Тип нарушения: Краткое наименование проблемы (например, "Качели графиков").
- Описание: Детализация (например, "Количество изменений графика за месяц: 4" или "Обнаружено пересечение графиков на дату 10.07.2026").
- Рекомендация: Конкретный совет для кадровика или расчетчика, как исправить ситуацию (например, "Отменить проведение табеля, проверить документ Кадровый перевод, заполнить табель заново").
- Уровень риска: Цветовая индикация. «Критично» подсвечивается бледно-красным цветом и требует обязательного вмешательства. «Внимание» носит информационный характер.
Заключение
Внедрение этой простой внешней печатной формы в регламент закрытия месяца позволяет перехватывать ошибки кадрового учета до того, как они превратятся в ошибки расчета зарплаты, перерасчеты и недовольство сотрудников.
Обработка полностью соответствует требованиям безопасного режима, не модифицирует типовую конфигурацию и легко обновляется.
Связанные публикации и материалы
Проверено на следующих конфигурациях и релизах:
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.38.69
Вступайте в нашу телеграмм-группу Инфостарт