Веб-сервер многопоточный с обработкой запросов в коде 1С (1C.Net:Предприятие)


Новая идея организации веб-сервера внутри 1С, предложенная в статье, опирается на проверенную временем богатую функциональность .Net Framework. Решение на основе идеи лишены недостатков COM и веб-сервисов 1С. По сравнению с COM http-сервер можно использовать вне локальной сети, поддерживается одновременная обработка нескольких запросов. По сравнению с веб-сервисами 1С решение на базе http-сервера обладает большей гибкостью, так как программист волен сам выбирать формат ответа сервера (в том числе HTML, JSON, графические изображения, RSS и т.д.), а также контролировать при ответе URL-адрес, идентификацию пользователей, коды ошибок, куки, кодировку, осуществлять кеширование. Настройка же http-сервера внутри 1С сводится к простому запуску внешней обработки.

В сентябрьском номере журнала MSDeveloper.ru была опубликована обзорная статья, посвященная технологии 1C.Net:Предприятие и использованию .Net Framework внутри 1С:Предприятие. Данная статья – продолжение, описывающее практическое применение технологии при решении разного рода задач. Метод изначально был разработан для подключения медицинского лабораторного оборудования к 1С:Предприятие 8.2, но может быть использован для подключения любого другого оборудования и организации обменов данными между базами 1С и другими системами. Статья сопровождается готовыми примерами, доступными для работы, расширения и экспериментов.

В процессе автоматизации деятельности предприятия при помощи 1С: Предприятие часто возникают задачи интеграции и обмена с оборудованием и другими сторонними информационными системами, например, банками, веб-сайтами, информационными системами партнеров. Традиционно 1С:Предприятие выступает в качестве потребителя услуг, и реже – в качестве поставщика. До этого момента у разработчиков популярными технологиями при получении информации от 1C были COM и веб-сервисы, которые появились только в версии 8.1.

У обеих технологий (COM и веб-сервисы) есть свои минусы. Главные недостатки заключаются в следующем. COM-технология позволяет в каждый момент времени выполнять только один запрос. Обращение возможно только внутри своей локальной сети. Обработка одновременных запросов для COM возможна, но требует затрат на организацию пула соединений и отладку многопоточного приложения. Веб-сервисы же сложны по настройке и негибкие для программирования: жестко привязаны к SOAP-стандартам. Подключение устройств, обменивающихся простыми пакетами, работающих по http-протоколу, невозможно.

Новая идея организации веб-сервера внутри 1С, предложенная в статье, опирается на проверенную временем богатую функциональность .Net Framework. Решение на основе идеи лишены недостатков COM и веб-сервисов 1С. По сравнению с COM http-сервер можно использовать вне локальной сети, поддерживается одновременная обработка нескольких запросов. По сравнению с веб-сервисами 1С решение на базе http-сервера обладает большей гибкостью, так как программист волен сам выбирать формат ответа сервера (в том числе HTML, JSON, графические изображения, RSS и т.д.), а также контролировать при ответе URL-адрес, идентификацию пользователей, коды ошибок, куки, кодировку, осуществлять кеширование. Настройка же http-сервера внутри 1С сводится к простому запуску внешней обработ

Файлы обработки:

-