Как организовать сопоставление данных СКУД с графиками работы в 1С:ЗУП 3.1 КОРП

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

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

Анализируем исходные данные и возможности типового функционала

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

Типовой функционал позволяет строить отчеты «Анализ данных СКУД» и «Сравнение данных СКУД и табеля». Однако для полноценного автоматического заполнения табеля нам необходимо реализовать логику сопоставления ФИО, ТабельныйНомер, ТипСобытия (вход/выход) и ВремяСобытия с конкретными сменами.

Разрабатываем интервальный подход к сопоставлению данных

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

  1. Формируем таблицу плановых интервалов: Из графиков работы сотрудника получаем временные отрезки. Если смена длится с 08:00 до 17:00 с обедом с 12:00 до 13:00, мы создаем два интервала: (08:00–12:00) и (13:00–17:00).
  2. Формируем таблицу фактических интервалов: На основе данных СКУД собираем пары «Вход – Выход». Если между двумя входами отсутствует событие выхода, такое событие помечается как подозрительное (ошибка логики).
  3. Выполняем наложение интервалов: Сравниваем факт с планом. Это позволяет точно определить время опоздания, раннего ухода или переработки.

Проанализируем пример структуры алгоритма на языке 1С для подготовки данных:


// Пример формирования структуры интервала
ИнтервалПлановый = Новый Структура;
ИнтервалПлановый.Вставить("Начало", Смена.ДатаНачала);
ИнтервалПлановый.Вставить("Окончание", Смена.ДатаОкончания);

// Пример поиска пересечения интервалов
Функция ПолучитьПересечение(ПланНачало, ПланКонец, ФактНачало, ФактКонец)
    НачалоПересечения = Макс(ПланНачало, ФактНачало);
    КонецПересечения = Мин(ПланКонец, ФактКонец);
    
    Если НачалоПересечения < КонецПересечения Тогда
        Возврат КонецПересечения - НачалоПересечения; // Длительность в секундах
    КонецЕсли;
    Возврат 0;
КонецФункции

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

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

Для каждой смены задается временной коридор (например, +/- 4 часа от начала и конца). Если смена начинается в 22:00, мы ищем события входа в диапазоне с 18:00 до 02:00. Все события, попавшие в это окно, привязываются к одной смене, независимо от календарной даты. Это позволяет корректно учитывать «первое событие дня — выход» для сотрудников, уходящих с ночного дежурства.

Фильтрация ошибок и «грязных» данных СКУД

Системы контроля доступа часто генерируют избыточные данные. Проанализируем основные проблемы и способы их решения:

Методика учета обедов и перерывов

Важно учитывать специфику территории предприятия. Если столовая и зоны отдыха находятся внутри периметра СКУД, то выходы на обед не будут зафиксированы. В этом случае мы просто вычитаем фиксированное время обеда из общей продолжительности присутствия.

Если же турникеты стоят на каждом выходе из здания, и сотрудники «пикают» картой, уходя на перекур, мы можем столкнуться с огромным количеством мелких интервалов. Здесь стоит применить правило порога: если время отсутствия составило менее 15 минут, мы считаем это рабочим временем. Все, что свыше — вычитаем из фактической отработки.

Внедрение «Третьего потока данных» — подтверждение руководителя

Как показывает практика, прямое использование данных СКУД для расчета зарплаты юридически рискованно без промежуточного звена. Рассмотрим модель «Тройного подтверждения»:

  1. План: Берется из графика в ЗУП.
  2. Факт СКУД: Получается в результате работы нашего алгоритма сопоставления.
  3. Факт Руководителя: Непосредственный начальник в конце смены подтверждает отработанное время в специальном документе (например, «Подтверждение данных СКУД»).

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

Юридическое закрепление системы

Посмотрим на ситуацию со стороны методологии. Чтобы данные СКУД стали основанием для дисциплинарных взысканий или начислений, необходимо закрепить это в Локальных нормативных актах (ЛНА). В положении об оплате труда должно быть четко прописано, что время работы фиксируется автоматизированной системой. Без этого любая интерпретация данных в пользу уменьшения оплаты труда может быть оспорена сотрудником в суде.

Подводя итог, отметим, что наиболее здравым решением является построение гибкой системы интервалов с настраиваемыми «окнами актуальности» и обязательным этапом верификации данных ответственными лицами. Это превращает СКУД из карательного инструмента в эффективный механизм объективного учета рабочего времени.

← На главную