Проблема с отправкой данных в 1С
При длительных операциях или фоновых заданиях в 1С иногда возникает проблема с корректной отправкой информации с сервера. Это может приводить к задержкам и некорректной работе бизнес‑логики.
Существующие решения
В 1С есть два основных способа обойти эту проблему:
- Использовать временное хранилище – «костыли», которые не всегда удобны.
- Внедрить сервер взаимодействия 1С – решение, которое не всегда доступно всем клиентам.
Оба подхода имеют свои ограничения, поэтому я решил реализовать более гибкое и бесплатное решение.
Микросервис на Python с WebSocket
Небольшой микросервис, написанный на Python, принимает сообщения через HTTP‑протокол и пересылает их пользователю 1С через WebSocket. Такой подход обеспечивает:
- Низкую задержку передачи данных.
- Отсутствие необходимости в сложной настройке 1С.
- Бесплатность и простоту развертывания.
Как это работает
1. Клиент (сервер 1С) отправляет запрос на микросервис по HTTP.
2. Микросервис принимает запрос, обрабатывает данные и сохраняет их в очередь.
3. Через WebSocket микросервис уведомляет пользователя 1С о готовности данных.
4. Пользователь получает сообщение и может выполнить дальнейшие действия.
Код и настройка
Исходный код микросервиса доступен для покупателей курса 1С Zadarma. В репозитории содержатся:
- Python‑скрипт, реализующий HTTP‑обработчик и WebSocket‑сервер.
- Конфигурационные файлы для запуска в Docker.
- Инструкции по интеграции с 1С.
Вывод
Микросервис на Python с WebSocket предоставляет простое, бесплатное и надёжное решение для отправки данных из 1С при длительных операциях и фоновых заданиях. Это особенно полезно для тех, кто не имеет доступа к серверу взаимодействия 1С или хочет избежать «костылей» временного хранилища.