8.х WEB Прослушать внешний веб сервер

Тема в разделе ""1C:Web-Сервер"", создана пользователем Serjio77, 14 июл 2017.

  1. TopicStarter Overlay
    Serjio77
    Offline

    Serjio77

    Регистрация:
    28 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Добрый день уважаемые специалисты 1С!
    Много всего было сказано про Web-сервер и размещение баз данных на внешнем веб сервере наподобии Apatche или IIS. Но у меня вопрос другого плана. Передо мной стоит задача. Имеется некое программное обеспечение (в частности IPVideoRecordServer) которое умеет отсылать на внешний веб сервер. В этом GET запросе содержится необходимая информация (распознанный номер автомобиля, который IPVideoRecord получает с видеокамеры) . И вот если эту строку дальше получить в 1С 8.2 то дальше будет очень много радости и восторга. Но для того чтобы это случилось, нужно как то получить эту самую строку, которая приходит на внешний веб сервер, который настроен на Apatche. А как сделать так чтобы 1С слушала постоянно веб сервер я не знаю. Подскажите что нужно для начала сделать? Чтобы не упасть лицом в грязь.
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.475
    Симпатии:
    861
    Баллы:
    204
    Это не задача 1С вообще.
    Варианты решения проблемы:
    1. посмотреть на разные строки от ПО к внешнему серверу и использовать их(модифицируя при необходимости) в 1С для получения данных с внешнего вебсервиса.
    2. прочитать документацию по стороннему вебсервису и использовать полученные знания в запросах к этому вебсервису из 1С.
  3. TopicStarter Overlay
    Serjio77
    Offline

    Serjio77

    Регистрация:
    28 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    В самом программном обеспечении встроена возможность отправки HTTP GET запроса на указанный "Адрес внешнего сервера". Внешний сервер в моем случае это Apatche. При этом внешнему серверу передается строка http://localhost/127.0.0.1:9860/platecheck?plate=H877ТА18. Вот эту строку мне и нужно поймать, после того как она придет на мой апачный веб сервер
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.475
    Симпатии:
    861
    Баллы:
    204
    1. Для чего "ловить" строку, если она известна?
    2. Что с этой строкой вы собираетесь делать в 1С?
  5. TopicStarter Overlay
    Serjio77
    Offline

    Serjio77

    Регистрация:
    28 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    В том то и оно, эта строка мне не известна. Это я написал как для примера. После того как я получу себе эту строку дальше у меня уже проблем не будет. Необходимый мне номер из этой строки я уже вытащу. В том то вся и проблема. эту строку с автомобильным номером получить, после того как она приедет на сервер.
    Вот документация разработчика и способы интеграции со сторонними программами.: https://docs.google.com/document/d/1vkXiJ5cgT3eghKZ58fVTi13irW3psW9MVOFihUDrHf0/edit
    Я знаю что может вопрос сам по себе и не о чем, но я пока выхода не вижу. Не отпускайте тему? Дайте совет, по какому пути мне лучше пойти
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.475
    Симпатии:
    861
    Баллы:
    204
    нет доступа с работы.

    Цитатами сюда хотя б основные положения можно, думаю.
  7. TopicStarter Overlay
    Serjio77
    Offline

    Serjio77

    Регистрация:
    28 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Если необходимо просто получить номер то можно воспользоваться функцией “Проверка доступа на внешнем сервере”, дополнительные поля можно получить воспользовавшись надстройкой разработанной для Вебмойки. Еще можно воспользоваться запуском скрипта с передачей необходимых параметров распознанного номера. Если же необходим полный контроль, то используйте API для управления сервером.


    1) Проверка доступа на внешнем сервере

    В разделе настроек “Распознавние номеров” навкладке "Списки доступа" можно настроить отправку номера на внешний сервер.

    При установленном флаге "Проверять доступ на внешнем сервере", при распознавании номера выполняется HTTP GET запрос на указанный в поле "Адрес внешнего сервера" адрес, для определения его типа доступа. Распознанный номер будет передан в параметре "plate" HTTP запроса.

    Пример запроса отправляемого на внешний сервер

    http://127.0.0.1:9860/platecheck?plate=H877TA18


    На запрос, внешний сервер должен вернуть ответ, содержащий в теле текст состоящий из 1 или 2 строк разделенных символом перевода строки (\n). Ответ записывается в виде ключ=значение, в каждой строке отдельно. Ключ listtype указывает тип списка доступа (0 - Не в списке, 1 - Белый, 2 - VIP, 3 - Черный), Ключ isallowaccess указывает принудительное разрешение/запрет проезда (0 - запрещен, 1- разрешен).

    Пример ответа:

    listtype=2

    isallowaccess=1


    Если listtype не указать, то тип списка доступа возьмется из собственной базы, если isallowaccess не указать, то решение о разрешении/запрете будет получено в соответствии с настройками ПО.


    2) Просто отправка номера но с дополнительными полями (интеграция с Вебмойкой)

    В файле конфигурации C:\ProgramData\SarSys\IPVideoRecord\Server\webmoika_options.xml установить поле

    server_url - адрес внешнего сервера

    Внимание! Этот параметр в конфигурации нужно обязательно поменять, иначе все номера будут уходить на сайт Вебмойки по умолчанию.

    По заданному URL будет отправлен POST (multipart) запрос c полями:

    clientid - идентификатор клиента задается в настройках

    number - распознанный номер (с русскими буквами)

    time - дата и время когда был распознан

    direction - направление

    camid - идентификатор камеры

    camname - имя камеры (заданное в настройках)

    img - изображение с распознанным номером



    Параметр clientid можно задать в настройках во вкладке Распознавание номеров, на нужном сервере выбрать вкладку Вебмойка. ClientID задается полем "Идентификатор клиента". Чтобы включить отправку достаточно установить галочку "Интеграция с Вебмойкой"


    3) Запуск скрипта

    В разделе настроек “Распознавние номеров” навкладке “Действия на события” можно по условию распознавания номера, добавить действие “Запуск приложения” в котором указать скрипт (например bat файл) и с помощью шаблонов передать ему необходимые данные о распознанном номере.


    4) Полный доступ ко всем функциям сервера

    Для управления сервером мы используем кросс языковый RPC фреймворкApache Thrift описание и поддерживаемые команды можно увидеть вот по этой ссылке.
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.475
    Симпатии:
    861
    Баллы:
    204
    ЭЭЭ....а нет команд для выдачи номера машины?

    можно в конфигурации 1С сделать HTTP сервис и пусть оно в нее направляет запрос(интеграция с вебмойкой)
  9. TopicStarter Overlay
    Serjio77
    Offline

    Serjio77

    Регистрация:
    28 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    есть, но это задается в пункте 3 - запуск скрипта. Там можно передать номер машины. А если мы делаем в 1С HTTP сервис то разве он сможет напрямую к себе получить запрос POST?
    --- Объединение сообщений, 14 июл 2017 ---
    А в качестве корневого URL тогда что задать?
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.475
    Симпатии:
    861
    Баллы:
    204
    Функция HTTP-сервиса настраивается в плане запроса, который она обрабатывает: GET или POST.
    Пример: http://infostart.ru/public/516810/
  11. TopicStarter Overlay
    Serjio77
    Offline

    Serjio77

    Регистрация:
    28 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Хорошая вещь получилась. Повесил HTTP сервис опубликовал базу. Послал из браузера строку запроса. Произошел возврат значения. Но в браузере. А в 1С совсем тихо. Даже никакой реакции. Как же увидеть в самой 1С результат обращения к веб серверу из вне?
  12. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.475
    Симпатии:
    861
    Баллы:
    204
    Что значит в 1С совсем тихо? Результат какой сервис-то возвращает?
  13. TopicStarter Overlay
    Serjio77
    Offline

    Serjio77

    Регистрация:
    28 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    в самом браузере видно результат работы 1с. она возвращает ответ. но мне нужно чтобы в приложении 1С вывелось какое нибудь сообщение. Типа в браузере нажали ссылку а в приложении 1С выскочило сообщение .. из браузера послали сообщение... ну вообщем что угодно.
    --- Объединение сообщений, 25 июл 2017 ---
    HTTPОтвет = Новый HTTPСервисОтвет(200);
    HTTPОтвет.УстановитьТелоИзСтроки(тОтвет);
    ОтветСервера = HTTPОтвет.ПолучитьТелоКакСтроку();
    HTTPОтвет.Заголовки["Content-Type"] = "text/html; charset=utf-8"; //сообщаем что это html
    Если ЗначениеЗаполнено(ОтветСервера) Тогда
    Сообщить("Поступил запрос из вне");
    КонецЕсли;
    Возврат HTTPОтвет;
    Не работает. В браузере данные видим. В самом приложении никаких сообщений не выводится
    --- Объединение сообщений, 25 июл 2017 ---
    Пишем так. Вместо заполненных значений проверяем код состояния. И эффект абсолютно похожий.
    HTTPОтвет = Новый HTTPСервисОтвет(200);
    HTTPОтвет.УстановитьТелоИзСтроки(тОтвет);
    HTTPОтвет.Заголовки["Content-Type"] = "text/html; charset=utf-8"; //сообщаем что это html
    Если HTTPОтвет.КодСостояния = 200 Тогда
    Сообщить("Поступил запрос из вне");
    КонецЕсли;
    Возврат HTTPОтвет;
    Последнее редактирование: 25 июл 2017
  14. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.475
    Симпатии:
    861
    Баллы:
    204
    Не выведется оно просто так, т.к. работает все в контексте сервера.
  15. TopicStarter Overlay
    Serjio77
    Offline

    Serjio77

    Регистрация:
    28 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Значит наверное придется все вставлять в некий регистр сведений наверное
  16. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.475
    Симпатии:
    861
    Баллы:
    204
    Так храните распознанные номера в базе, в РС и из него получайте, при необходимости.
  17. TopicStarter Overlay
    Serjio77
    Offline

    Serjio77

    Регистрация:
    28 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Все получилось... Спасибо вам за действительно ценные советы.

Поделиться этой страницей