Как интегрировать электронную проходную (СКУД) с 1С:ЗУП для автоматизации учета рабочего времени

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

Вопрос автоматизации учета рабочего времени встает перед каждой растущей компанией. Руководство часто ставит задачу: «Хочу, чтобы сотрудник приложил карту к турникету, и в 1С:ЗУП автоматически заполнился табель». В данной статье мы подробно разберем, как реализовать такую связку, какое оборудование выбрать и с какими техническими сложностями придется столкнуться.

Анализ рынка оборудования и выбор СКУД

Прежде чем приступать к кодингу, проанализируем доступное оборудование. На рынке СНГ выделяются несколько ключевых игроков, которые уже имеют готовые наработки для интеграции с 1С:

  1. Sigur: Одно из самых популярных решений среди программистов 1С. Система имеет развитый функционал и готовый модуль для синхронизации с 1С:ЗУП. Как отмечают эксперты, Sigur позволяет выгружать данные напрямую в документы учета времени.
  2. PERCo: Крупный российский производитель. Предлагает специализированные программные модули (например, «PERCo-WM05»), которые позволяют не только забирать события прохода, но и передавать данные о новых сотрудниках из 1С в базу проходной.
  3. Bolid (Орион): Часто встречается на объектах, где уже установлена пожарно-охранная сигнализация того же бренда. Интеграция с ним считается более трудоемкой из-за специфического интерфейса и структуры БД, но вполне реализуема через прямое чтение таблиц MS SQL.
  4. Биометрические терминалы (ZKTeco, BioSmart): Распознавание по лицам или отпечаткам пальцев решает проблему «передачи карточки коллеге». Однако при выборе биометрии стоит учитывать юридические аспекты хранения персональных данных.

Методы технической интеграции

Рассмотрим подробнее способы получения данных из системы контроля и управления доступом (СКУД) в 1С:ЗУП.

1. Прямое подключение к базе данных СКУД (ADO/SQL)

Большинство систем хранят логи проходов в базах MS SQL Server или PostgreSQL. Мы можем настроить регламентное задание в 1С, которое будет раз в час или раз в сутки подключаться к этой базе и забирать новые записи. Проанализируем примерный код для такого подключения:


// Пример подключения к внешней БД SQL через ADO
Connection = Новый COMОбъект("ADODB.Connection");
ConnectionString = "Driver={SQL Server};Server=SERVER_NAME;Database=SCS_BASE;Uid=user;Pwd=password;";
Попытка
    Connection.Open(ConnectionString);
    Command = Новый COMОбъект("ADODB.Command");
    Command.ActiveConnection = Connection;
    Command.CommandText = "SELECT TOP 100 EmployeeID, EventTime, Direction FROM Events WHERE Processed = 0";
    RecordSet = Command.Execute();
    // Обработка полученных строк...
Исключение
    Сообщить("Ошибка подключения: " + ОписаниеОшибки());
КонецПопытки;

2. Использование HTTP-сервисов (API)

Более современный метод, когда СКУД сама отправляет данные в 1С или предоставляет REST API. Разберем ситуацию: в момент прикладывания карты контроллер обращается к HTTP-сервису 1С, передавая номер карты. 1С проверяет права сотрудника и возвращает ответ «Разрешить» или «Запретить», попутно фиксируя время входа в регистре сведений.

3. Файловый обмен

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

Архитектура хранения данных в 1С:ЗУП

Не рекомендуется записывать данные сразу в типовой документ Табель. Проанализируем правильную архитектуру:

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

Сложные ситуации и пути их решения

При внедрении системы мы обязательно столкнемся с человеческим фактором. Разберем, как программно обрабатывать ошибки:

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

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

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

Выводы и рекомендации

Подводя итог, можно сказать, что типового «волшебного» решения «из коробки», которое сразу идеально заполнит табель, не существует. Однако, используя оборудование с открытым API (например, Sigur) и возможности 1С по созданию HTTP-сервисов, можно построить эффективную систему.

Основные этапы внедрения:

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

← На главную