Загрузка данных из программы ZikTeco реализована интерактивно, по запросу пользователя. Догружаются только новые транзакции. Последняя загруженная транзакция сохраняется в константе. В моем случае было 200 работников и они находили около 100 тысяч входов и выходов за несколько месяцев, один день загружается за минуту. Работники могут несколько раз выходить и заходить, отмечаясь в терминале. В отчет выводится минимальное и максимальное время в течении суток. Как быть с людьми, которые работают больше суток я не решал. В отчете их время работы посчитается неверно.
Обмен с ZikTeco осуществляется через HTTP запросы. Список всех функций доступен по ссылке. В этот раз я решил использовать библиотеку Коннектор. Размер кода очень уменьшился. Рекомендую, она бесплатная.
Для загрузки посещений в форме Отчета по посещениям в функции ПриСозданииНаСервере необходимо заполнить реальные значения:
- ИмяПользователя = "Имя";
- Пароль = "Пароль";
- IP = ""192.168.0.1:80";
Подсистему можно встроить в любую конфигурацию на управляемых формах где есть справочник Физические лица. У меня работает на конфигурации ERP 2.5.
Пример запросов, которые используются в подсистеме:
БОНД_Коннектор.PostJson("http://" + IP + "/jwt-api-token-auth/", Данные)
В структуре "Данные" передается имя пользователя и пароль к ZikTeco
2. Получение записи входа или выхода
БОНД_Коннектор.GetJson("http://" + IP + "/iclock/api/transactions/" + "?page=" + ПоследнийЗагруженныйIDСКУД, Данные,Новый Структура("Заголовки", Заголовки))
В структуре "Данные" передается имя пользователя и пароль к ZikTeco, в заголовке передается токен.
При загрузке данных я получаю кроме ФИО еще и должность и подбираю сотрудника в физических лицах в 1С. Также ZikTeco может передавать доп. информацию, такую, как температура. Наверное, актуально было во время пандемии.
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.5.21.95