Пример создания HTTP-сервисов на платформе «1С:Предприятие»
В этой статье разбираются демонстрационные HTTP-сервисы, созданные в демонстрационной конфигурации «Управляемое приложение» для платформы «1С:Предприятие» версии 8.3.5 и старше.
Цель статьи – помочь разобраться с использованием технологии HTTP-сервисов и показать практическое применение некоторых неочевидных механизмов.
Демонстрационная база «Управляемое приложение» представляет собой простую конфигурацию, в которой создано большинство объектов, которые могут понадобиться при автоматизации деятельности небольшой торговой фирмы. В частности, в ней присутствует справочник «Товары». Элементами этого справочника мы будем управлять при помощи HTTP-сервиса. Такой сценарий может возникнуть, например, при интеграции с интернет-магазином или другой корпоративной ИС, в которую заносится первичная информация о товарах.
Для удобства изучения описываемых HTTP-сервисов рекомендуется включить авторизацию ОС при публикации на веб-сервере и настроить пользователю с ролью «Администратор» использование windows-аутентификации от имени пользователя ОС, под которым будет проходить изучение.
HTTP-сервис «Товары»
HTTP-сервис «Товары» написан в REST-стиле. Он позволяет получать и удалять элементы и группы в справочнике товаров. Доступ к элементу осуществляется с помощью его пути в иерархии.
Например, для того чтобы получить информацию о товаре «Ряженка» с кодом 000000027, входящем в группу «Молочные» с кодом 000000099, которая входит, в свою очередь в группу «Продукты» с кодом 000000011, в браузере надо будет набрать http:// /hs/Products/000000011/000000099/000000027. Если база опубликована по пути http://localhost:8090/Platform8Demo/, то путь будет:
http://localhost:8090/Platform8Demo/ hs /Products/000000011/000000099/000000027.
Из чего состоит путь? Рассмотрим по частям:
В нашем случае у сервиса один дочерний объект шаблон URL. В свойстве «Шаблон» этого объекта записана строка “/*». Звездочка – это специальное значение, указывающее на то, что к данному шаблону подходят любые URL. В нашем случае необходимость использования такого шаблона (т.е. по сути отказа от ограничения URL) обусловлена произвольной глубиной иерархии товаров.
У нашего шаблона URL имеются два дочерних объекта, соответствующих HTTP-методам GET (получение) и DELETE (удаление). Именно в них указаны обработчики, которые будут вызываться при обращении к HTTP-сервису.
Для обработки запроса с использованием HTTP-метода GET (а именно такой будет создан, если вставить указанные выше URL в браузер) используется функция ПутьКТоваруGET. Рассмотрим эту функцию немного подробнее:
Сформированное XML-представление используется в ответе сервиса:
HTTP-сервис «ОписанияТоваров»
HTTP-сервис «ОписанияТоваров» предназначен для получения и редактирования информации о товарах. Он написан в RPC (Remote Procedure Call) стиле, похожем на SOAP. В качестве дополнительного условия также предположим, что заказчик, для которого мы разрабатываем конфигурацию, потребовал предусмотреть наличие нескольких версий API где-то в будущем.
Обращение к сервису выполняется при помощи запросов с использование метода POST к URL следующего вида:
Рассмотрим, из чего состоит путь:
Видно, что сервер передал описание товара в формате html.
Рассмотрим, как реализован сервис. Объект метаданных HTTP-сервиса имеет единственный дочерний шаблон URL, в котором прописан следующий шаблон:
Т.к. у нас пока нет разных версий сервиса, сегмент с номером версии фиксирован, а вот второй сегмент может принимать разные значения, соответствующие именам методов. В коде получение имени метода выглядит следующим образом:
Обращаем внимание, что коллекция «ПараметрыURL» запроса содержит единственное значение – согласно количеству сегментов, которые могут принимать разные значение.
Для возврата описания товара мы устанавливаем тело запроса:
Аналогично, для установки описания товара мы получаем его из запроса:
При установке описания из тела запроса мы проводим минимальную проверку корректности того, что прислал нам клиент, в данном случае – только типа содержимого, изучая заголовок «Content-type».
Для того чтобы протестировать установку тела запроса достаточно заполнить его в Fiddler:
Отладка кода HTTP-сервиса
Отладка кода HTTP-сервиса аналогична отладке код SOAP веб-сервиса. Для включения отладки нужно:
Разрешение отладки на веб-сервере
Для разрешения отладки на веб-сервере нужно перейти на вкладку «Прочие» диалога публикации на веб-сервере, установить флаг «разрешить отладку» и указать адрес отладчика. Для локальной отладки можно указать tcp://localhost
То же самое можно сделать вручную, исправив vrd-файл, см документацию.
Включение автоматического подключения
Для того чтобы платформа автоматически подключалась для отладки к вызываемым HTTP-сервисам нужно:
Помните, что флажок следует устанавливать при каждом запуске конфигуратора, в котором требуется отладка HTTP-сервисов.
Заключение
В статье рассмотрены основные аспекты программирования HTTP-сервисов в «1С:Предприятии», в частности:
Также показано, как можно их тестировать при помощи программы Fiddler. Более полные справочные материалы можно найти в ИТС по постоянному адресу.
Как найти объявление на авито по имени продавца
Добавлена новая функция извлечения номера телефона из удаленных и закрытых объявлений с auto.ru, avito.ru, drom.ru, bibika.ru и других сайтов объявлений. Если объявление было удалено или закрыто, но сохранилась ссылка на объявление, используя команду Главное меню\Сервис\Телефон по http-адресу объявления… можно быстро восстановить контактные данные, которые были указаны продавцом. Для сайтов auto.ru, avito.ru, drom.ru, bibika.ru, am.ru, mail.ru, irr.ru, dmir.ru, cars.ru, autonavigator.ru, avtomarket.ru и carsguru.net телефон извлекается либо из локальной базы данных, либо (при отсутствии в локальной базе) с сервера edrom (данные на котором хранятся на протяжении 3-6 месяцев после удаления объявлений). Для всех остальных сайтов (auto24.ru, ufa1.ru, autochel.ru, 66.ru, e1.ru и т. д.) телефон извлекается только из локальной базы данных. Для центральных регионов и крупных городов (Москва и обл, Санкт-Петербург и обл, Екатеринбург и обл, и т.
Обман на Авито: Как разводят мошенники? Проверяем продавца на вшивость.
д.) в базу на сервере edrom попадают практически все объявления, которые публиковались на сайтах. Восстановление телефонов поддерживается для следующих категорий объявлений: автотранспорт и недвижимость (сдам в аренду квартиры, комнаты продам квартиры, комнаты). Для корректного восстановления телефона из удаленных объявлений программа должна работать в соответствующем режиме (автоверсия или версия для недвижимости). Важным моментом является необходимость задавать http-адрес объявления в том виде, как он представлен в результатах поиска на соответствующем сайте. К примеру, ссылки на объявления в старой версии сайта auto.ru имеют формат: http://cars.auto.ru/cars/used/sale/61853357-6db320.html Ссылки на объявления в новой версии сайта auto.ru имеют уже несколько другой формат (с обратным слешем в конце строки), т. е.: http://auto.ru/cars/used/sale/38307320-6db320/
Мда. В личку, в PM не судьба ему было написать? Номерок и узнал бы. Пиши давай.
печальный опыт покупки на АВИТО. внимание — мошенники!!
Расширенный поиск на Авито
Плюс-минус словаЦена в любой категории
Не все знают, что на Авито можно искать эффективнее, за счет использования минус-слов, а также, задавать цену в тех категориях, где ее как-будто задать нельзя.
Минус слова в поиске на Авито
Если в фильтре на Авито задать два или несколько слов через пробел, то Авито выдаст все объявления, в названии или описании которых, содержится одно из этих слов (при поставленной галочке «искать только в названиях» естественно только в названиях).
Например, если задать «5s 16gb» в категории «Телефоны/iPhone» с поиском только по названиям, Авито выведет все объявления в названии которых присутствуют оба этих слова (слов может быть несколько).
Если Вы ищете не часто, то скорее всего этих возможностей будет достаточно. Сохранить поисковые запросы, добавлять логическое ИЛИ, а также оперативно получать уведомления можно с помощью нашего сервиса (бесплатно раз при проверке раз в час).
Как на Авито посмотреть другие объявления продавца?
Цена в любой категории Авито
В веб-версии Авито (www.avito.ru) во многих разделах нет возможности задать фильтр по цене, а как хотелось бы. На самом деле задать его можно.
Для этого нужно перейти на мобильную версию. Для этого в адресной строке браузера нужно вместо «www.avito.ru» задать «m.avito.ru», т.е. заменить «www» на «m». Затем нажать «Уточнить» и появится место для задания диапазона цен.
Как это было на Авито ранее
До 15.03.2016 на Авито было доступно больше специальных символов.
1. «||» — логическое «ИЛИ». Пример: https://www.avito.ru/moskva/telefony/iphone?q=5s+||+5c — в текстовом поле задали «5s || 5c», в результате получаем объявления категории «Телефоны/iPhone», содержащие слова «5s» или «5c».
3. «&&» — логическое «И». В принципе если ввести слова через пробел, то сайт воспринимает это как логическое «И».
Как на Авито Посмотреть Номер Телефона Вакансии
Как на Авито Посмотреть Номер Телефона Вакансии
▪ Откройте резюме, которое вас интересует, и нажмите «Купить контакт» «Продолжить».
2. Выберите способ оплаты и нажмите «Оплатить».
▪ Резюме с доступными контактами появится в разделе «Избранное» «Объявления».
В полной версии Авито
▪ Откройте резюме и нажмите «Показать телефон» или «Написать соискателю» «оплатите доступ к контактам».
2. Выберите один контакт резюме или пакет просмотров и нажмите «Купить контакт».
▪ Оплатите его удобным способом.
4. Резюме с доступными контактами появится в разделе «Избранное» «Объявления».
В мобильной версии Авито
▪ Откройте резюме, которое вас интересует, и нажмите «Купить контакт» «Продолжить».
2. Выберите один контакт резюме или пакет просмотров и нажмите «Продолжить».
▪ Выберите способ оплаты и нажмите «Оплатить».
4. Резюме с доступными контактами появится в разделе «Избранное» «Объявления».
Сколько стоит просмотр контактов резюме?
Стоимость одного просмотра вы увидите перед оплатой.
Стоимость пакета можно посмотреть в разделе «Кошелек» «Контакты резюме».
В мобильной версии Авито
Сколько стоит просмотр контактов резюме?
🗣 Для сайтов auto.ru, avito.ru, drom.ru, bibika.ru, am.ru, mail.ru, irr.ru, dmir.ru, cars.ru, autonavigator.ru, avtomarket.ru и carsguru.net телефон извлекается либо из локальной базы данных, либо (при отсутствии в локальной базе) с сервера edrom (данные на котором хранятся на протяжении 3-6 месяцев после удаления объявлений).
Добавлена новая функция извлечения номера телефона из удаленных и закрытых объявлений с auto.ru, avito.ru, drom.ru, bibika.ru и других сайтов объявлений. Если объявление было удалено или закрыто, но сохранилась ссылка на объявление, используя команду Главное меню\Сервис\Телефон по http-адресу объявления. можно быстро восстановить контактные данные, которые были указаны продавцом.
Как узнать номер телефона продавца авито закрытого объявления
Для сайтов auto.ru, avito.ru, drom.ru, bibika.ru, am.ru, mail.ru, irr.ru, dmir.ru, cars.ru, autonavigator.ru, avtomarket.ru и carsguru.net телефон извлекается либо из локальной базы данных, либо (при отсутствии в локальной базе) с сервера edrom (данные на котором хранятся на протяжении 3-6 месяцев после удаления объявлений).
телефон извлекается только из локальной базы данных.
Как посмотреть контакты в резюме на авито бесплатно
Как узнать номер телефона продавца на Авито, если срок объявления истек
Данный раздел будет полезен тем кому нужен номер телефона или информация из объявления которое уже не доступно (удалено, снято, истекло) на авито. Если номер телефона указанный в объявлении на avito был защищен, то предоставлен будет номер указанный в объявлении.
Запрос номера телефона из объявления Avito по Url или ID — номеру
ПОСЛЕДНИЕ НОВОСТИ
Доступ к базе объявлений по API. Самый быстрый парсер. ПОДПИШИСЬ НА НОВОСТИ
Примеры когда может быть полезен сервис.
Способов узнать номер телефона продавца, если объявления уже нет на Авито — два — вы можете связаться со службой поддержки Авито или провести небольшое собственное расследование.
Как узнать номер продавца на Авито, если объявление закрыто? Какие есть способы
Какие есть способы.
Второй путь: если у вас нет номера объявления:
Если у вас есть, сохранился текст его объявления, то пробуем найти его в Яндексе или в другом поисковике в Яндексе выделяем текст и нажимаем кнопку найти в Яндексе, в Яндексе тоже есть маленький зеленый треугольничек, нажав на который, выбираем позицию Сохраненная копия.
Пример HTTP-сервиса в 1С 8.3
Создание HTTP-сервиса
Разработаем простой HTTP-сервис в 1С.
В ветке метаданных Общие — HTTP-сервисы создадим новый HTTP-сервис. Укажем имя HTTP-сервис1, корневой URL httpservice:
Перейдем на закладку Шаблоны URL и добавим новый шаблон URL:
Укажем имя Hello, шаблон /hello:
Для шаблона URL добавим новый метод:
HTTP-метод оставим GET и укажем такое же имя:
В поле Обработчик нажмем на кнопку с лупой и попадем в модуль HTTP-сервиса, где автоматически будет добавлена процедура HelloGET:
Добавим еще пару строк кода:
На этом все. Сохраняем конфигурацию базы данных.
Установка веб-сервера
Теперь нужно установить веб-сервер.
Веб-сервер — это программа, запущенная в фоновом режиме, которая может принимать и обрабатывать запросы по HTTP протоколу.
1С поддерживает два веб-сервера:
Apache
Apache является бесплатным кроссплатформенным веб-сервером. Для его установки переходим по ссылке и в верхней части скачиваем Apache нужной разрядности. Разрядность определяется по разрядности платформы 1С. Я скачаю 32-х разрядную:
Распакуем скачанный архив и скопируем папку Apache24 на диск C, так как по умолчанию в конфигурационном файле прописан именно такой путь.
Теперь перейдем в каталог C:\Apache24\bin и запустим httpd.exe. Веб-сервер будет запущен, окно с запущенным веб-сервером должно остаться открытым:
По умолчанию веб-сервер запускается на 80 порту. Для проверки введем в адресной строке браузера localhost. Если веб-сервер был запущен, то должно выйти сообщение «It works!»:
Если 80 порт уже занят, то есть возможность изменить его. Для этого нужно открыть файл C:\Apache24\conf\httpd.conf любым текстовым редактором, найти в нем строку Listen 80 и изменить 80 на нужный порт, например 8080:
Так как теперь используется не стандартный порт, то для проверки в браузере нужно ввести localhost:8080.
Если нужно перенести каталог с Apache в другое место, например на диск G, то нужно в файле Apache24\conf\httpd.conf изменить путь к переменной SRVROOT:
Если каталог с Apache был скопирован в Program Files, то нужно дать права на каталог с Apache для роли Пользователи:
Теперь нужно установить Apache как службу. Для этого закроем окно с веб-сервером и запустим командную строку от имени администратора. В командной строке введем cd C:\Apache24\bin, чтобы перейти в каталог с apache:
Для запуска службы в каталоге C:\Apache24\bin запустим ApacheMonitor.exe. В трее появится значок для управления службой Apache:
Щелкнем по нему левой кнопкой мыши и выберем команду Start:
IIS (Internet Information Services)
IIS — это проприетарный веб-сервер от Microsoft. Работает только под Windows.
Для установки нужно в панели управления выбрать Программы и компоненты — Включение или отключение компонентов Windows:
В открывшемся окне в группе Службы IIS нужно отметить следующие компоненты:
И дождаться окончания их установки.
Для запуска нужно в панели управления выбрать пункт Администрирование — Диспетчер служб IIS:
В открывшемся окне в правой части нажать на кнопку Запустить:
По умолчанию IIS запускается на 80 порту. Для проверки нужно в браузере в адресной строки ввести localhost, должна загрузиться страница с IIS:
Чтобы изменить порт нужно в диспетчере IIS в левой части в разделе Сайты выделить Default Web Site:
И в правой части нажать на кнопку Привязки:
В открывшемся окне нужно выделить строку с типом http и нажать на кнопку Изменить:
В поле Порт указать нужный порт, например 8080 и нажать ОК:
Чтобы 64-х разрядный IIS мог работать с 32-х разрядной платформой 1С нужно в диспетчере IIS в левой части выделить пункт Пулы приложений, в списке пулов выделить DefaultAppPool и нажать на кнопку Дополнительные параметры:
В открывшемся окне нужно для свойства Разрешены 32-разрядные приложения установить True и нажать ОК:
Модули расширения веб-сервера
Теперь нужно установить модули расширения веб-сервера 1С (если они еще не установлены). Для этого в Windows перейдем в Приложения и возможности, найдем нужную версию платформы 1С и нажмем Изменить:
В открывшемся окне выберем Изменить и нажмем Далее:
Здесь нужно отметить пункт Модули расширения веб-сервера и продолжить установку:
Публикация HTTP-сервиса
Я буду выполнять публикацию на веб-сервере Apache, для IIS процесс ничем не отличается.
Перед публикацией создадим в каталоге C:\Apache24\htdocs папку testbase. В эту папку будет опубликован HTTP-сервис.
Для публикации HTTP-сервиса нужно запустить 1С от имени администратора и зайти в конфигуратор. В верхнем меню выбираем Администрирование — Публикация на веб-сервере:
В открывшемся окне нужно ввести произвольное имя (на латинице), выбрать веб-сервер Apache 2.4, в свойстве каталог выбрать созданную нами папку C:\Apache24\htdocs\testbase\. Затем нужно снять все флажки, в том числе на закладке Web-сервисы:
А на закладке HTTP сервисы оставить флажок только для созданного нами HTTP-сервиса:
Нажимаем Опубликовать:
1С предложит перезапустить веб-сервер, откажемся и сделаем это вручную через ApacheMonitor командой Restart:
Тестирование HTTP-сервиса
Для обращения к HTTP-сервису нужно ввести в строке браузера строку по следующему шаблону:
HOWTO: создание и отладка HTTP-сервиса в 1С:Предприятие
Начнем с конца: что в итоге должно получиться.
Создание HTTP-сервиса.
Предположим, что нам нужен HTTP-сервис, который по запросу вернет список пользователей.
Возвращать должен строку JSON (массив объектов JSON со свойствами: имя пользователя, id пользователя):
Чтобы это реализовать, создадим в конфигурации (или в расширении) объект HTTP-сервис. Как он будет называться – неважно, для простоты назовем его «Инфо». Корневой URL должен быть равен «info».
Далее добавим к нему шаблон URL, для простоты назовем его «Основной». Значение шаблона должно быть равно «/*».
К шаблону мы добавим метод GET: имя = «GET», HTTP-метод = «GET».
Создадим обработчик HTTP-метода GET.
По умолчанию процедура обработчика метода заполнена кодом, возвращающим стандартный успешный HTTP ответ (код 200).
Скорректируем его так, чтобы он возвращал нам список пользователей.
Отладка HTTP-сервиса.
Настройка подключения отладчика.
Для отладки HTTP-сервиса нужно включить (или убедиться в том, что включено) следующие флажки.
Проверим, как это все работает.
Поставим точку останова в начале функции метода GET:
Обновляем страничку с вызовом нашего сервиса.
Убеждаемся, что наш отладчик успешно подключился к сеансу HTTP-сервиса:
Заключение.
В этой статье рассмотрен простейший пример для быстрого создания HTTP-сервиса с целью освоения механизмов работы с ним.
В заключении хотелось бы упомянуть про возможность создания HTTP-сервисов с параметрами URL, например:
Эта возможность настраивается в ШаблонеURL HTTP-сервиса.
Для вышеуказанного примера шаблон мог бы выглядеть так: «/users/
В функции обработчика метода этого шаблона параметры URL можно получить через свойство Запрос.ПараметрыURL, например так:
Обратите внимание на последовательность обработки шаблонов HTTP-сервиса.
В нашем примере использованы 2 шаблона:
При вызове метода http://10.211.55.3/base/hs/info/users/0b3dcecf-104e-11e6-9bdd-001c42ecfab6?action=disable сработает шаблон 1, т.к. параметры URL ему также соответствуют, а обрабатывается он первым. Чтобы этого не происходило, первый шаблон рекомендуется изменить на «/i/*» для однозначного соответствия URL шаблону.
Вызывать первый метод соответственно также придется с новым URL: