HTTP сервер: внешняя компонента для 1С 7.7

Публикация № 1663863 27.05.22

Приемы и методы разработки - Разработка внешних компонент

Внешняя компонента 7.7 сервер HTTP веб web

Компонента позволяет создавать веб-сервисы в среде 1С 7.7 и даже, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя клиент HTTP для 1С 7.7 (публикация № 1152364) можно наладить обмен данными между удаленными информационными базами.

Компонента разработана по технологии создания внешних компонент COM. Тестировалась на платформе 1С релиза 7.70.027 под управлением Windows 10.

Компонента позволяет запускать HTTP или HTTPS сервер на любом порту.

Протокол HTTPS работает с библиотекой OpenSSL версии 1.0.2 и поддерживает TLS v1.2.

Каждый входящий HTTP-запрос обрабатывается в отдельном потоке. Все запросы регистрируются в общем массиве, размер которого можно устанавливать программно. Каждому запросу для обработки в 1С присваивается числовой идентификатор (ИД). По окончании обработки запрос удаляется из массива.

В зависимости от программных настроек сервера часть запросов может обрабатываться компонентой без участия 1С.

При регистрации запроса (обрабатываемого в 1С) в глобальном модуле 1С вызывается процедура «ОбработкаВнешнегоСобытия», в которую передается ИД нового запроса. Для обработки запросы можно выбирать по конкретному ИД или последовательно перебирая все.

Можно передавать обработку запросов другим экземплярам 1С, созданным как OLE-объекты. Для этого серверу передается имя файла, в который будет выгружен ответ, и время его ожидания. В OLE-экземпляр 1С передается также имя файла-результата и все необходимые параметры запроса. OLE- экземпляр формирует ответ и выгружает его в указанный файл. Как только файл ответа появляется, сервер передает его HTTP-клиенту и удаляет запрос из массива.

Функционал компоненты:

Методы объекта «AddIn.HTTPSrv7»:

Старт(<Порт>, <HTTPS> ) – запускает работу сервера

Стоп() – прекращает работу сервера.

Запрос (<ИД>) – устанавливает запрос с указанным ИД в качестве «текущего». Все команды работы с запросом, чтение и изменение его свойств, работа с ответом выполняются по отношению к «текущему» запросу.

ЗапросВФайл (<ИмяФайла>)  – сохраняет содержание (тело) запроса в файл.

УстановитьЗаголовок (<ИмяЗаголовка>,<Содержание>)  – устанавливает HTTP-заголовок ответа на текущий запрос.

Передать (<Ответ>, <Код>)  – передает ответ с установленными ранее заголовками.

ПередатьФайл (<ИмяФайла>, <Таймаут>)  – передает в качестве тела ответа  содержимое файла.

Utf8ToAnsi (<Стр>)  – конвертирует строку из кодировки Utf8 в ANSI.

AnsiToUtf8 (<Стр>)  – конвертирует строку из кодировки ANSI в Utf8.

Свойства объекта «AddIn.HTTPSrv7» (доступ: чтение+запись):

ДлинаОчереди – максимальное количество одновременно обрабатываемых запросов.

ФайлСерт – имя файла сертификата HTTPS-сервера.

ФайлКлюча – имя файла секретного ключа HTTPS-сервера

ФайлИндекс – имя файла, который будет передаваться компонентой (без обработки в 1С) в ответ на запрос без дополнительных атрибутов (URL = «\»).

КаталогОтправки – корневой каталог для передачи запрашиваемых файлов компонентой без обработки в 1С.

ФайлТипов – имя файла Mime – типов. Файл служит для автоматического формирования заголовков «Content-Type» при автоматической передаче файлов.

ЛогФайл – имя лог-файла..

ТелоОтвета  – содержание ответа на текущий запрос

Свойства объекта «AddIn.HTTPSrv7» (доступ: чтение):

Активен – число, 1 – сервер активен (запущен), 0 – сервер не активен

HTTPS – протокол сервера: 1 - HTTPS, 0 – HTTP

Порт – порт сервера

ИД   – ИД текущего запроса

HTTP – версия HTTP запроса

Метод   – метод запроса (GET, POST и т.п.)

Хост   – часть строки запроса формата «Адрес:Порт».

.URL   url запроса

Путь   – левая часть url, путь к запрашиваемому ресурсу

Параметры   – правая часть url, параметры и их значения

АдресКлиента   IP-адрес HTTP-клиента, от которого поступил запрос

ЗаголовкиЗапроса   – названия и содержания всех заголовков запроса

ДлинаЗапроса  – размер тела текущего запроса в байтах

ТелоЗапроса  – тело текущего запроса

Ошибка  – последняя ошибка

 

Демо-обработка

Вид демо-обработки после запуска HTTP-сервера кнопкой «Старт» - «HTTP порт 3000»:

 

 

Пример обработки запроса компонентой (без обработки в 1С):

Набираем в браузере http://localhost:3000/, компонента передает в браузер файл demo.html

 

 

Пример обработки запроса в 1С:

Кликаем в браузере по кнопке «Подтверждение», обработка формирует ответ из элементов запроса и передает его в браузер:

 

 

Пример обработки запроса в OLE- экземпляре 1С:

Подключаем OLE-экземпляр текущей конфигурации. Нажимаем кнопку «Подключить» - «Демо»

 

 

Нажимаем в браузере «Обновить»

 

 

Пример «ручной» обработки запроса в 1С:

Нажимаем кнопку «Отключить» - отключаем OLE-экземпляр 1С.

Устанавливаем в обработке флажок «Ручная обработка запросов».

Нажимаем в браузере «Обновить».

В обработке кликаем по ИД запроса, появившегося в списке «Запросы в очереди».

В окне «Ввод значения» набираем «Привет!»:

 

 

Нажимаем «ОК».

Видим в браузере результат:

 

Гарантия возврата денег

ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом в течение 14-ти дней со дня поступления денег на наш счет.

Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.

Для возврата оплаты просто свяжитесь с нами.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 3069 27.05.22 20:03 Сейчас в теме
2. JetBrain 73 27.05.22 21:50 Сейчас в теме
платная dll зачем и кому? open-source gRPC node.JS сервер разворачивается за 5 минут!
4. ЗС1 03.06.22 17:30 Сейчас в теме
(2)
Можно подробнее, как потом gRPC взаимодействует с 7.7?
5. JetBrain 73 03.06.22 19:34 Сейчас в теме
(4) взаимодействие 1с 7.7 с gRPC будет аналогичным по примерам реализации из 8ки, и оно может быть и с серверной и с клиентской частью ( Осваиваем протокол gRPC по HTTP/2 в 1С ). если точнее 7-ке нужно генерировать JS скрипты, т.к этот язык доступен протоколу.
8. Техподдержка 06.06.22 13:02
(5) Система 1с 7.7 с node.JS получается очень замороченная, т.к. напрямую обмен JS с 1с 7.7 наладить невозможно.
9. JetBrain 73 06.06.22 13:16 Сейчас в теме
(8) есть вариант не нагружать 1С этими задачами совсем, а чтение/запись с БД производить на стороне сервера gRPC фоново (программный язык для написания службы тогда не привязан к JS). можно еще посмотреть в сторону проекта metadata.js.
6. JetBrain 73 04.06.22 19:11 Сейчас в теме
(4) а если не критично использование HTTP/1.1 то можете попробовать работу gRPC-web из браузера.
Прикрепленные файлы:
7. ЗС1 04.06.22 22:54 Сейчас в теме
Спасибо, интересно. буду смотреть
3. user707242_Gold_karas 9 02.06.22 10:19 Сейчас в теме
Оставьте свое сообщение

См. также

Плати QR (от Сбербанка) для 1С 8.3 и 1С 7.7 Промо

Кассовые операции Розничная торговля WEB Рабочее место Адаптация типовых решений v7.7 v8 1С7:ТиС Розница БП3.0 УТ11 Россия Платные (руб)

Расширение конфигурации (или набор обработок, если 1С 7.7) для реализации системы Плати QR в системе 1С.

6000 руб.

05.04.2022    2755    4    13    

Выбор из большого списка (для 1С 7.7)

Разработка внешних компонент v7.7 Платные (руб)

Компонента для выбора значения из больших списков значений.

1200 руб.

02.12.2021    2138    0    19    

Форма для ввода количества товаров

Разработка внешних компонент Оптовая торговля v7.7 1cv7.md УУ Платные (руб)

Расширяем уровень взаимодействия c пользователем с помощью новых возможностей - форма для ввода количества для перемещений и форма ввода количества с упаковками и штуками.

1200 руб.

08.09.2021    2825    0    2    

Компонента для 1С, принимающая вес с железнодорожных, автомобильных, крановых весов

Разработка внешних компонент v7.7 v8 Транспорт, автопарки, такси Россия Платные (руб)

Программа "Компонента приёма веса для 1С, версия 3.0" позволяет принимать и заносить вес с весов непосредственно в программу "1С" - то есть, прием веса осуществляется целиком и полностью из программы "1С".

26400 руб.

09.04.2019    11265    2    8    

Выгрузка данных из 1С (7.7) в Интернет-магазин через CSV файл (обработка) Промо

WEB Оптовая торговля Розничная торговля Склад и ТМЦ v7.7 1С7:Бух 1С7:Комплекс 1С7:ТиС 1С7:ПУБ Платные (руб)

Универсальная обработка "Выгрузка данных в Интернет-магазин" и Универсальная обработка "Выгрузка справочной информации в Интернет-магазин" для программ 1С:Предприятие 7.7 предназначены для формирования файла в формате CSV по шаблону из табличного файла.

16.07.2012    38657    9    reshenie    13