Автоматизация · 15 мин
Как подключить СКУД к 1С и настроить учёт рабочего времени
Пошаговая инструкция по подключению СКУД к 1С: способы интеграции, настройка обмена данными, учёт рабочего времени, типичные ошибки и проверка результата.
СКУД (система контроля и управления доступом) фиксирует факты прохода сотрудников через турникеты и двери, а 1С отвечает за кадровый учёт и расчёт зарплаты. Если эти системы работают изолированно, табельщик вынужден вручную переносить данные о приходах и уходах — это долго, а риск ошибок при расчёте повременной зарплаты высок. Интеграция убирает ручной ввод: события прохода автоматически превращаются в данные табеля учёта рабочего времени.
Подключить СКУД к 1С можно несколькими способами: через готовый модуль интеграции от производителя оборудования, через обмен файлами выгрузки, через прямое чтение базы данных СКУД или через разработку собственной обработки на встроенном языке 1С. Выбор зависит от модели контроллеров, используемой конфигурации 1С и требований к глубине интеграции — от простого импорта событий до автоматического формирования табеля.
Прежде чем начинать, важно понять ограничения: СКУД фиксирует проход через точку доступа, а не фактическую работу сотрудника. Проход в 8:00 не означает начало работы в 8:00 — человек мог прийти раньше или пройти по чужой карте. Поэтому интеграцию всегда строят с учётом правил округления, допусков и кадровой политики компании, а не как прямое копирование времени проходов в табель.
Что понадобится перед началом интеграции
Сначала зафиксируйте исходные данные: марку и модель контроллеров СКУД (Perco, ZKTeco, Parsec, RusGuard, Iron Logic и другие), версию программного обеспечения СКУД, конфигурацию и релиз 1С. От этого зависит доступный способ обмена: одни системы имеют готовые модули для 1С, другие умеют только выгружать отчёты в файлы.
Определите, какая задача решается интеграцией. Самая частая — автоматическое заполнение табеля учёта рабочего времени в 1С:ЗУП. Реже требуются: контроль доступа в 1С по пропускам, учёт посетителей, расчёт поденных оплат, контроль нахождения сотрудников на территории для производственной безопасности. От цели зависит, какие данные нужно передавать и как часто.
Назначьте ответственного за правила обработки данных. Кто-то должен решить: как округлять время (до 5, 10, 15 минут), что считать опозданием, как обрабатывать проходы без пары (вход без выхода), что делать с проходами в выходные. Без этих правил любая интеграция даст спорные результаты при расчёте зарплаты.
Есть ли у производителя готовый модуль интеграции с 1С
Есть ли штатные механизмы загрузки данных о времени
Какие события передавать: все проходы или только первый вход и последний выход
Есть ли учётные записи с правами чтения данных СКУД и записи в 1С
Способы подключения СКУД к 1С
Существует четыре практических подхода к интеграции, и они различаются стоимостью внедрения, надёжностью и требованиями к квалификации исполнителя.
Готовый модуль интеграции от производителя СКУД. Некоторые вендоры поставляют обработки или расширения для 1С, которые забирают события напрямую из системы контроля доступа. Это самый быстрый путь: модуль обычно содержит настройки расписания обмена, сопоставление сотрудников и типовые правила формирования табеля. Ограничение — поддерживаются только определённые конфигурации и релизы, а доработка под нестандартные правила может быть платной.
Обмен через файлы выгрузки. СКУД формирует отчёт о проходах в формате CSV, Excel или XML, а обработка в 1С загружает этот файл и создаёт документы. Способ универсален и работает почти с любой системой, но требует либо ручного запуска выгрузки, либо настройки автоматического формирования файла по расписанию средствами СКУД или планировщика Windows.
Прямое чтение базы данных СКУД. Большинство систем контроля доступа хранят события в MS SQL Server, Firebird или PostgreSQL. Обработка в 1С подключается к этой базе через COM-объект ADO или внешний источник данных и читает таблицу событий напрямую. Способ даёт обмен в режиме, близком к реальному времени, но требует знания структуры базы конкретной СКУД и осторожности: прямая запись в базу СКУД недопустима, только чтение.
Разработка через API. Современные СКУД предоставляют REST API или SDK. В 1С пишется обработка, которая обращается к API по HTTP, получает события в формате JSON и обрабатывает их. Это самый гибкий вариант, но и самый трудоёмкий — нужен разработчик, знакомый и с 1С, и с документацией API конкретной системы.
Сравнение способов интеграции
Быстрый старт и поддержка вендора, но зависимость от совместимости версий и ограниченная гибкость
Универсально и просто в отладке, но требует ручного контроля и уязвимо при сбоях выгрузки
Обмен почти в реальном времени, но нужен доступ к СУБД и знание структуры данных
Максимальная гибкость и двусторонний обмен, но требует разработки и сопровождения
Подготовка данных: сопоставление сотрудников и точек прохода
Ключевая проблема любой интеграции — связать карточку сотрудника в СКУД с физическим лицом в 1С. В СКУД сотрудник идентифицируется номером карты или внутренним ID, в 1С — ссылкой на справочник «Физические лица» или «Сотрудники». Нужна таблица соответствия, которую заполняют один раз и поддерживают при приёме и увольнении персонала.
Практичный подход — хранить номер карты СКУД в дополнительном реквизите или сведении физического лица в 1С. Тогда обработка загрузки находит сотрудника по номеру карты из события прохода. Альтернатива — сопоставление по табельному номеру, если он одинаков в обеих системах, но на практике номера часто расходятся.
Отдельно настройте соответствие точек прохода. В СКУД каждое событие привязано к считывателю: «Турникет центральный вход», «Дверь цеха №2» и так далее. Для табеля обычно нужны только проходы через основные входы, а внутренние двери игнорируются. Составьте список считывателей, которые участвуют в учёте рабочего времени, и настройте фильтрацию в обработке загрузки.
Настройка обмена: пошаговый порядок действий
Ниже — типовой порядок настройки на примере загрузки через файл или прямое чтение базы. Конкретные шаги зависят от выбранного способа, но логика одинакова.
Сначала добейтесь, чтобы СКУД выгружала события за тестовый период (2–3 дня) в том виде, в котором их будет получать 1С: файл выгрузки или доступ к таблице событий. Проверьте, что в данных есть номер карты, дата и время события, идентификатор считывателя и направление прохода (вход/выход). Если направление не определяется, придётся вычислять его по типу считывателя.
Затем напишите или настройте обработку загрузки в 1С. Минимальная логика: прочитать события за период, отфильтровать нужные считыватели, найти сотрудника по номеру карты, сгруппировать события по сотруднику и дате, определить первый вход и последний выход. Результат — либо документ «Данные для расчёта зарплаты», либо записи в регистр, который дальше используется для заполнения табеля.
После отладки настройте автоматический запуск. В файловом варианте это регламентное задание 1С, которое забирает файл из сетевой папки (выгрузку по расписанию настраивают в СКУД или планировщике Windows). При прямом чтении базы — регламентное задание с периодичностью от одного раза в день до нескольких раз в час. Обязательно ведите журнал загрузки: дата, количество обработанных событий, число ошибок сопоставления.
- 1Получите тестовую выгрузку событий из СКУД и проверьте состав полей
- 2Заполните соответствие номеров карт сотрудникам в 1С
- 3Настройте фильтр считывателей, участвующих в учёте времени
- 4Настройте обработку загрузки и отладьте её на тестовом периоде
- 5Сверьте результат с фактическим табелем за тестовый период
- 6Включите регламентное задание и настройте журналирование загрузок
Пример чтения событий из базы СКУД через ADO
Для прямого чтения базы MS SQL из 1С используется COM-объект ADODB.Connection. Ниже упрощённый фрагмент, показывающий принцип подключения. Имена таблиц и полей зависят от конкретной СКУД — их нужно взять из документации производителя или определить по структуре базы.
Подключение = Новый COMОбъект("ADODB.Connection");
СтрокаПодключения = "Provider=SQLOLEDB;Data Source=SERVER;Initial Catalog=SKUD;User ID=reader;Password=***";
Подключение.Open(СтрокаПодключения);
Запрос = "SELECT CardNumber, EventTime, ReaderID FROM Events WHERE EventTime >= &Period";
Результат = Подключение.Execute(Запрос);
Пока НЕ Результат.EOF Цикл
// обработка события
Результат.MoveNext();
КонецЦикла;Загрузка данных в 1С:ЗУП и формирование табеля
В 1С:ЗУП 3.1 для учёта фактического времени по данным СКУД обычно используют документ «Данные для расчёта зарплаты» с настроенным шаблоном или специализированные механизмы, которые появляются при установке модулей интеграции. События проходов преобразуются в часы явки по графику работы сотрудника: система сравнивает первый вход и последний выход с плановым графиком и определяет отработанное время.
Критически важно настроить правила интерпретации. Типовой набор правил: опоздание считается от входа позже начала смены с учётом допуска (например, 5 минут); время обеда либо вычитается автоматически по графику, либо определяется по проходам через точки общепита; недоработка до конца смены фиксируется по последнему выходу. Без этих правил табель будет отражать «голое» время между проходами, что редко совпадает с кадровой логикой компании.
Спорные ситуации обрабатываются отдельно: сотрудник забыл карту и прошёл с охранником (нет событий — время считается по графику или по заявлению), несколько входов-выходов в течение дня (суммируются интервалы или берутся крайние события — по регламенту компании), работа в выходной по пропуску (требует кадрового документа-основания, иначе СКУД-данные не должны автоматически создавать оплату за работу в выходной).
Проверка результата и контроль качества данных
После запуска интеграции первые 2–4 недели проводите параллельный учёт: табель формируется и по старой схеме, и по данным СКУД, расхождения разбираются вручную. Это единственный надёжный способ выявить ошибки сопоставления сотрудников, неверные правила округления и неучтённые сценарии.
Настройте контрольный отчёт: список сотрудников, для которых за день есть события прохода, но нет данных в табеле, и наоборот — есть табель, но нет ни одного прохода. Первый случай указывает на проблемы сопоставления карт, второй — на проходы без карты или на сотрудников, работающих удалённо.
Проверяйте полноту загрузки: количество событий в выгрузке СКУД должно совпадать с количеством обработанных событий в журнале загрузки 1С. Если цифры расходятся, ищите причину — чаще всего это события по картам без сопоставления, события вне учитываемых считывателей или сбой регламентного задания.
Как проверить результат
Каждое событие с номером карты находит сотрудника в 1С
В журнале загрузки есть записи «сотрудник не найден»
Число событий в выгрузке СКУД равно числу обработанных в 1С
Часть событий теряется без объяснения в журнале
Явки по СКУД совпадают с фактическим присутствием при выборочной проверке
Систематические сдвиги времени, лишние или пропущенные дни
Опоздания и недоработки совпадают с расчётом вручную на тестовой выборке
Правила округления дают результаты, отличающиеся от регламента компании
Ограничения, риски и когда нужен специалист
Самостоятельная настройка оправдана, если у производителя СКУД есть готовый модуль для вашей конфигурации 1С, а правила учёта времени простые — один график, один вход, стандартные допуски. В этом случае достаточно следовать инструкции вендора и провести тщательное тестирование.
Привлекайте специалиста по 1С, если: нужна разработка обмена через API или прямое чтение базы, действуют сложные правила учёта (сменные графики, суммированный учёт, несколько точек прохода с разной логикой), требуется двусторонний обмен (выгрузка сотрудников из 1С в СКУД) или база работает в клиент-серверном варианте с регламентными заданиями на сервере.
Учтите юридический аспект: данные о времени нахождения сотрудника на территории — это персональные данные. Доступ к выгрузкам СКУД и журналам загрузки должен быть ограничен, а обработка данных — соответствовать локальным нормативным актам компании. Также помните, что время прохода через турникет не является бесспорным доказательством выполнения работы — при трудовых спорах данные СКУД рассматриваются вместе с другими доказательствами.
Как выбрать путь внедрения
Чаще всего интеграция «ломается» не на этапе технической настройки, а на этапе эксплуатации: сотруднику выдали новую карту, а соответствие в 1С забыли обновить. Назначьте ответственного и добавьте шаг «проверить сопоставление карты в 1С» в процедуру выдачи пропусков — это устранит большинство ошибок загрузки.
Часто задаваемые вопросы
Можно ли подключить СКУД к 1С без программиста?
Да, если производитель СКУД предлагает готовый модуль интеграции для вашей конфигурации — его настройка обычно сводится к установке расширения, заполнению соответствий и включению расписания обмена. Для обмена через файлы, чтение базы или API без навыков разработки в 1С не обойтись.
Какие конфигурации 1С поддерживают работу со СКУД?
Чаще всего интеграцию настраивают с 1С:ЗУП, где данные о проходах превращаются в табель учёта рабочего времени. Также возможна интеграция с 1С:ERP, 1С:КА и самописными конфигурациями — там данные СКУД обычно пишутся в собственные регистры и используются для отчётов и контроля.
Что делать, если сотрудник прошёл по чужой карте?
Технически СКУД зафиксирует проход владельца карты. Для таких случаев нужен регламент: инцидент фиксируется охраной, время в табеле корректируется вручную на основании служебной записки. Автоматически распознать передачу карты система не может, если нет биометрической верификации.
Как часто должна происходить загрузка данных из СКУД?
Для табеля достаточно одной загрузки в день — обычно ночью, после завершения всех смен. Если данные нужны для оперативного контроля присутствия, настраивают загрузку каждые 15–60 минут. Слишком частый обмен не нужен: он повышает нагрузку, не давая практической пользы для расчёта.
Можно ли выгружать список сотрудников из 1С в СКУД автоматически?
Да, это стандартный сценарий двусторонней интеграции: при приёме сотрудника в 1С данные о нём передаются в СКУД для заведения пропуска, при увольнении — блокируются. Реализуется через API системы контроля доступа или штатный импорт СКУД из файла, который формирует обработка 1С. Прямая запись в базу СКУД для этой цели не используется.
Что делать при расхождении данных СКУД и табеля?
Сначала проверьте журнал загрузки: не потеряны ли события и все ли карты сопоставлены. Затем сверьте правила округления и допуски с регламентом компании. Если технически всё корректно, расхождение обычно вызвано кадровыми ситуациями — больничным, отгулом, проходом без карты — и решается документальным оформлением в 1С, а не правкой данных СКУД.
Что важно запомнить
Интеграция СКУД с 1С сводится к трём вещам: выбору способа обмена (модуль вендора, файлы, чтение базы или API), аккуратному сопоставлению карт сотрудников и формализации правил учёта времени. Первые недели ведите параллельный учёт и контролируйте журнал загрузки. Данные СКУД — основание для табеля, но кадровые документы в приоритете, а запись в базу СКУД из 1С недопустима.