Привет, уважаемый читатель.
Цель: Заказчик поставил задачу - необходимо учитывать время пребывания сотрудника в определенной зоне, путем сканирования его магнитного пропуска при входе и выходе.
Первое решение было создано на 1С, и на мой взгляд имеет некоторые неудобства
- Форма 1с должно быть постоянно открыто на рабочем столе
- -1 лицензия
С недавнего времени я изучаю python поэтому и было решено избавиться от проблем с его помощью.
Архитектура следующая:
Консольное приложение слушает порт и регистрирует все события в базе SQLite, все настройки выведены в файл .ini (порт, таймаут, транспорт 1С и прочее.), далее по расписанию другой скрипт собирает пакет для отправки в 1С и в формате json отправляет в 1с по http сервису
В архиве все исходники:
- comPort_scaner (слушатель порта)
- comPort_request_1C (интеграция с 1С)
- Р_http_import.cfe (расширение)
Дополнительные модули:
- comPort_Sql.py (модуль работы с БД SQLite)
- comPort_utils.py (модуль доп. процедур)
- workFlow_test.py (песочница)
Тестирование:
- 1С:Предприятие 8.3 (8.3.16.1148)
- Бухгалтерия предприятия, редакция 3.0 (3.0.76.77)
Гит реп. проекта: https://github.com/legavaz/comPortPy.git
Спасибо за внимание и хорошего дня!