Автоматизация крупного контрольно-пропускного пункта (КПП) на 100 000 человек — это сложная инженерная задача, выходящая за рамки обычного программирования в 1С. Основная сложность заключается не в количестве записей в базе данных, а в обеспечении бесперебойной работы оборудования в условиях экстремальных температур (до -45°C), мгновенном выводе фотографий для визуального контроля и интеграции мобильных устройств в общую экосистему безопасности. Разберем пошагово, как выстроить архитектуру такой системы, выбрав правильное оборудование и программные методы.
Проанализируем ситуацию: стоит ли делать систему полностью на 1С или использовать готовые решения? Несмотря на гибкость платформы 1С, для управления исполнительными устройствами (турникетами, шлагбаумами) и хранения ключей в реальном времени лучше использовать промышленные системы контроля и управления доступом (СКУД), такие как Sigur, Perco или BioSmart.
Оптимальная схема работы выглядит так:
Если же стоит задача максимальной кастомизации, как в нашем случае, можно реализовать логику на 1С, но с обязательным кэшированием данных на местах (периферийных устройствах).
Стандартные промышленные терминалы сбора данных (ТСД) обычно рассчитаны на эксплуатацию до -20°C. Для работы при -45°C в течение часа обычное устройство выйдет из строя: замерзнет ЖК-матрица, а аккумулятор мгновенно потеряет емкость. Рассмотрим варианты решения:
MIG или Aquarius), которые проектируются под нужды оборонного комплекса и добывающей промышленности.Выясним, справится ли 1С с таким объемом. Для современной СУБД 100 000 строк — это небольшой объем, если правильно настроены индексы по полям КодПропуска или НомерКарты. Однако передача 100 000 фотографий на мобильное устройство по Wi-Fi может парализовать сеть.
Проанализируем методы оптимизации хранения фото:
WebP или JPEG с качеством 70%. Это позволит уложить базу фото в 5–7 Гб.SQLite мобильного приложения).RFID или штрихкоду должен занимать миллисекунды.Рассмотрим пример кода для мобильного приложения, которое считывает штрихкод и выводит данные сотрудника из локального кэша:
&НаКлиенте
Процедура ПриСканированииШтрихкода(ДанныеШтрихкода)
// Ищем сотрудника в локальном кэше ТСД
ПараметрыПоиска = Новый Структура("Штрихкод", ДанныеШтрихкода);
НайденнаяЗапись = КэшСотрудников.НайтиСтроки(ПараметрыПоиска);
Если НайденнаяЗапись.Количество() > 0 Тогда
ТекущийСотрудник = НайденнаяЗапись[0];
ФИО = ТекущийСотрудник.ФИО;
Статус = ТекущийСотрудник.СтатусДоступа;
Фото = ТекущийСотрудник.ДанныеФото; // Двоичные данные из локального хранилища
Если Статус = "Разрешен" Тогда
Сообщить("Доступ разрешен: " + ФИО);
Иначе
Сообщить("ДОСТУП ЗАПРЕЩЕН!");
КонецЕсли;
Иначе
Сообщить("Пропуск не найден в базе!");
КонецЕсли;
КонецПроцедуры
Разберем достоинства и недостатки каждого метода в контексте большой проходной:
Liveness Detection (проверка, что перед камерой живой человек, а не фото).Проанализируем ситуацию: что произойдет, если на проходной отключится Wi-Fi или центральный сервер 1С уйдет на техническое обслуживание? Для объекта на 100 000 человек простой недопустим.
Решение — распределенная архитектура:
РИБ (распределенные информационные базы) или Web-сервисы.Поскольку система оперирует фотографиями (биометрическими персональными данными) 100 000 человек, необходимо соблюдать требования 152-ФЗ "О персональных данных":
VipNet или CryptoPro).Спроектированная таким образом система обеспечит время реакции менее 1 секунды и позволит охранникам эффективно выполнять свои обязанности даже в суровых климатических условиях.