- Пример создания HTTP-сервисов на платформе «1С:Предприятие»
- HTTP-сервис «Товары»
- HTTP-сервис «ОписанияТоваров»
- Отладка кода HTTP-сервиса
- Разрешение отладки на веб-сервере
- Включение автоматического подключения
- Заключение
- Не работает отладка 1С
- 1. В списке предметов отладки не видны серверные сеансы
- 2. В списке предметов отладки не видны ни клиентские ни серверные сеансы.
- 3. В списке предметов отладки не видны клиентские сеансы.
- 4. Предмет отладки виден в конфигураторе и подключается, но точка останова все равно не срабатывает на строке кода.
- 5. Программный код выполняется в сеансе фонового задания.
- 6. Программный код выполняется в сеансе web-сервиса или http-сервиса.
- Подводим итоги
- Отладка http сервиса
- Специальные предложения
- См. также
- .Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо
- WEB/HTTP сервисы. Базовые отличия и применение на практике
- Интеграция 1С с ГИИС ДМДК
- Интеграция 1С с Битрикс24 через вебхуки
- Online телефонный справочник из 1С: Зарплата и управление персоналом Промо
- Обмен с HTTP сервисом файлами по формату multipart/form-data
- Разработка гибридного web-приложения на 1С, возможности и ограничения
- Работа с WEB-сервисами под HTTPS на примере прямого обмена между базами (1С – 1С)
- Кэширование COM-соединения. Три способа Промо
- Глава 2. Как я написал (собрал с инфостарта) свой парсер сайта 1С Releases
- Взаимодействие с api Честный знак (Молочная продукция)
- Умная маршрутизация: о сложностях интеграции с 1С (часть 2)
- Заготовка для загрузки файлов по ftp Промо
- Встраивание форм 1С на страницы сайта
- Гарри Поттер и подкапотное пространство веб-клиента
- Умная маршрутизация: кейс интеграции с 1С (часть 1)
- Примеры вызова в 1С методов API до реестров открытой части Электронного кабинета налогоплательщика (Украина)
- Телеграм-бот как инструмент
- Доработка в расширении Яндекс маркета (скачать все этикетки)
- Интеграция 1С 8 и HostCMS
- API ОФД-Я разбор документации с примерами
Пример создания HTTP-сервисов на платформе «1С:Предприятие»
В этой статье разбираются демонстрационные HTTP-сервисы, созданные в демонстрационной конфигурации «Управляемое приложение» для платформы «1С:Предприятие» версии 8.3.5 и старше.
Цель статьи – помочь разобраться с использованием технологии HTTP-сервисов и показать практическое применение некоторых неочевидных механизмов.
Демонстрационная база «Управляемое приложение» представляет собой простую конфигурацию, в которой создано большинство объектов, которые могут понадобиться при автоматизации деятельности небольшой торговой фирмы. В частности, в ней присутствует справочник «Товары». Элементами этого справочника мы будем управлять при помощи HTTP-сервиса. Такой сценарий может возникнуть, например, при интеграции с интернет-магазином или другой корпоративной ИС, в которую заносится первичная информация о товарах.
В конфигурации создано два HTTP сервиса – «Товары» и «ОписанияТоваров». Первый демонстрирует работу в REST-стиле, второй — в RPC стиле, напоминающем протокол SOAP.
Для удобства изучения описываемых 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.
Из чего состоит путь? Рассмотрим по частям:
- http://localhost:8090/Platform8Demo/ — путь публикации информационной базы
- hs – обязательный сегмент пути, сообщающий серверу, что будет происходить работа с http-сервисами
- Products – строка, идентифицирующая конкретный веб-сервис. Задается свойством «Корневой URL http-сервиса» объекта метаданных веб-сервиса
- 000000011/000000099/000000027 – путь внутри сервиса. Все допустимые пути для данного сервиса определяются совокупностью дочерних объектов метаданных «Шаблон URL».
В нашем случае у сервиса один дочерний объект шаблон URL. В свойстве «Шаблон» этого объекта записана строка “/*». Звездочка – это специальное значение, указывающее на то, что к данному шаблону подходят любые URL. В нашем случае необходимость использования такого шаблона (т.е. по сути отказа от ограничения URL) обусловлена произвольной глубиной иерархии товаров.
У нашего шаблона URL имеются два дочерних объекта, соответствующих HTTP-методам GET (получение) и DELETE (удаление). Именно в них указаны обработчики, которые будут вызываться при обращении к HTTP-сервису.
Для обработки запроса с использованием HTTP-метода GET (а именно такой будет создан, если вставить указанные выше URL в браузер) используется функция ПутьКТоваруGET. Рассмотрим эту функцию немного подробнее:
- Функция принимает единственный параметр «Запрос», это объект типа HTTPСервисЗапрос , содержащий всю нужную нам информацию о выполняемом вызове.
- Функция определяет путь к запрашиваемому ресурсу при помощи конструкции Запрос.ПараметрыURL[«*»] . По сути, она спрашивает: «Что в реальном URL присутствует на том месте, где в шаблоне была звездочка»?
- Дальнейший код функции ищет элемент справочника по цепочке «00000011/000000099/000000027», используя объекты «1С:Предприятия».
- Если в какой-то момент следующее звено цепочки не находится, то формируется ответ сервиса с кодом 404, знакомым каждому пользователю веб-браузера.
Копировать в буфер обмена
- Если цепочка пройдена успешно и конечный элемент найден, то для него формируется XML-представление при помощи встроенной XML-сериализации. Если элемент является группой, то в ответ включается XML-представление всех непосредственных потомков.
Сформированное XML-представление используется в ответе сервиса:
Обработка HTTP-метода DELETE происходит в функции ПутьКТоваруDELETE и мало чем отличается от обработки запроса с использованием HTTP-метода GET . Стоит обратить внимание на то, что в случае DELETE используется код ответа 204, а не 200. Код ответа 204 также свидетельствует об успешном выполнении операции на сервере, но сообщает клиенту, что сервер не посылал в ответ никаких данных в теле запроса.
HTTP-сервис «ОписанияТоваров»
HTTP-сервис «ОписанияТоваров» предназначен для получения и редактирования информации о товарах. Он написан в RPC (Remote Procedure Call) стиле, похожем на SOAP. В качестве дополнительного условия также предположим, что заказчик, для которого мы разрабатываем конфигурацию, потребовал предусмотреть наличие нескольких версий API где-то в будущем.
Обращение к сервису выполняется при помощи запросов с использование метода POST к URL следующего вида:
Рассмотрим, из чего состоит путь:
- http://localhost:8090/Platform8Demo/ — путь публикации информационной базы,
- hs – обязательный сегмент пути, сообщающий серверу, что будет происходить работа с http-сервисами,
- ProductDescriptions –корневой URL http-сервиса,
- v1 – идентификатор версии. В рассматриваемой реализации всегда v1,
- SetDescription — имя метода. В данном случае – установка описания товара. Для получения описания товара предусмотрен метод GetDescription,
- ?Article=Kol67 – строка с параметрами запроса. В общем виде выглядит как «?Параметр1=Значений1&Параметр2=Значение2& Параметр3=Значение3» и т.д. В нашем случае единственный параметр это артикул товара.
Испытаем наш сервис. К сожалению, это нельзя сделать из браузера (браузер, если не предпринять дополнительных усилий, отправляет запрос с использованием метода GET), поэтому мы воспользуемся бесплатной программой Fiddler (http://www.telerik.com/fiddler). Для создания запроса вручную достаточно перейти на вкладку Composer .
В результате выполнения запроса на вкладке Inspectors можно будет увидеть примерно следующее (в верхней части экрана – выполненный запрос, в нижней — ответ сервера):
Видно, что сервер передал описание товара в формате html.
Рассмотрим, как реализован сервис. Объект метаданных HTTP-сервиса имеет единственный дочерний шаблон URL, в котором прописан следующий шаблон:
Т.к. у нас пока нет разных версий сервиса, сегмент с номером версии фиксирован, а вот второй сегмент может принимать разные значения, соответствующие именам методов. В коде получение имени метода выглядит следующим образом:
Обращаем внимание, что коллекция «ПараметрыURL» запроса содержит единственное значение – согласно количеству сегментов, которые могут принимать разные значение.
Аналогично извлекается артикул, только используется свойство «ПараметрыЗапроса» , а не «ПараметрыURL» .
Для возврата описания товара мы устанавливаем тело запроса:
Аналогично, для установки описания товара мы получаем его из запроса:
При установке описания из тела запроса мы проводим минимальную проверку корректности того, что прислал нам клиент, в данном случае – только типа содержимого, изучая заголовок «Content-type».
Для того чтобы протестировать установку тела запроса достаточно заполнить его в Fiddler:
Отладка кода HTTP-сервиса
Отладка кода HTTP-сервиса аналогична отладке код SOAP веб-сервиса. Для включения отладки нужно:
- Разрешить отладку при публикации на веб-сервере,
- Включить автоматическое подключение к HTTP-сервисам,
- Установить точку останова в интересующем месте.
Разрешение отладки на веб-сервере
Для разрешения отладки на веб-сервере нужно перейти на вкладку «Прочие» диалога публикации на веб-сервере, установить флаг «разрешить отладку» и указать адрес отладчика. Для локальной отладки можно указать tcp://localhost
То же самое можно сделать вручную, исправив vrd-файл, см документацию.
Включение автоматического подключения
Для того чтобы платформа автоматически подключалась для отладки к вызываемым HTTP-сервисам нужно:
- Открыть окно настроек автоматического подключения с помощью команды главного меню «Отладка – Автоматическое подключение» .
- Установить флажок «HTTP-сервисы на сервере» .
Помните, что флажок следует устанавливать при каждом запуске конфигуратора, в котором требуется отладка HTTP-сервисов.
Заключение
В статье рассмотрены основные аспекты программирования HTTP-сервисов в «1С:Предприятии», в частности:
- Шаблоны URL и параметры URL,
- Параметры запроса,
- Работа с заголовками,
- Получение тела запроса,
- Формирование ответа.
Также показано, как можно их тестировать при помощи программы Fiddler. Более полные справочные материалы можно найти в ИТС по постоянному адресу.
Источник
Не работает отладка 1С
Разберем основные случаи когда и почему не работает отладка 1С.
1. В списке предметов отладки не видны серверные сеансы
Возможно сервер 1С запущен не в режиме отладки. Для того чтобы включить режим отладки, службу сервера 1С нужно запустить с ключом -debug. Пошаговый разбор как это сделать тут.
2. В списке предметов отладки не видны ни клиентские ни серверные сеансы.
Еще одной причиной отсутствия предметов отладки в списке является то, что предметы отладки находится не на том компьютере где запущен отладчик 1С. Актуально как для серверных так и для клиентских сеансов. Для решения проблемы обычно достаточно указать имя удаленного компьютера для поиска предметов отладки и обновить список.
Если и после этого список пустой, то нужно вбить вместо имени IP-адрес удалённого компьютера. В случае если это помогло, то рекомендуется прописать привязки имен и IP-адресов компьютеров в файле hosts. Если и это не помогло то необходимо проверить настройку фаервола, разрешены ли на сервере 1С (или удаленном клиенте) входящие соединения с компьютера где запущен отладчик на порты 1560-1591.
3. В списке предметов отладки не видны клиентские сеансы.
Причина как правил в том, что не разрешена отладка клиентского приложения. Для разрешения отладки клиентского сеанса достаточно в настройках программы в режиме 1С Предприятие указать в параметре «Отладка в текущем сеансе» — Разрешена TCP/IP.
4. Предмет отладки виден в конфигураторе и подключается, но точка останова все равно не срабатывает на строке кода.
Данная проблема актуальна при отладке по протоколу TCP. Причина в том что отладчик не может принимать входящие соединение из-за того что брандмауер или фаервол блокируют сетевое взаимодействие между отладчиком и предметом отладки. Тут нужно понимать, что отладчик не только устанавливает исходящее соединение с предметом отладки, но также должен иметь возможность принимать входящее соединение. Проблема решается отключением фаервола на компьютере где запущен отладчик либо открытием входящих соединений на портах 1560-1591 для исполняемого файла 1cv8.exe.
5. Программный код выполняется в сеансе фонового задания.
В типовых конфигурациях 1С широко использует запуск длительных процедур в фоновом режиме. Для этого на сервере запускается отдельный фоновый сеанс помимо основного серверного сеанса пользователя. Проблема решается включением автоматического подключения отладчика к фоновым сеансам. После этого как правило отладка начинает работать, если нет проблем с фаерволом описанных выше.
6. Программный код выполняется в сеансе web-сервиса или http-сервиса.
Как правило сеанс подключения к web-сервису http-сервису существует непродолжительное время и вручную подключиться к нему проблематично. Здесь так же достаточно включить автоматическое подключение к таким сеансам и отладчик сам будет находить и подключать предметы отладки, ваша задача только поставить точку останова в коде.
Подводим итоги
Как видим основные причины неработающей отладки 1С легко решаются. Пожалуй самой трудно-диагностируемой проблемой является работающий в сети фаервол, который может блокировать соединения между отладчиком и предметом отладки. В самом простом случае достаточно открыть порты для подключения как описано выше. В более сложном случае, когда отладчик и предмет отладки разделены NAT, может потребоваться проброс портов. Самый крайний случай когда из-за политик безопасности прямое сетевой взаимодействие по протоколу TCP между отладчиком и предметом отладки не возможно, следует рассмотреть вариант отладки по протоколу HTTP.
Напоследок стоит отметить, что как правило отладка производиться на тестовом сервере 1С, который запускается на портах отличных от типового диапазона 1560-1561. Поэтому, все изложенное выше в части номеров портов, следует рассматривать в контексте ваших реально используемых диапазонов портов.
Источник
Отладка http сервиса
Цель: Научиться отлаживать http сервис.
На двух предыдущих уроках //infostart.ru/1c/articles/1293341/ и //infostart.ru/1c/articles/1296740/ мы научились создавать http сервис и передавать параметры в них.
-Откроем общий модуль «ОбщегоНазначения»
-Перейдем в функцию «ПолучитьНоменклатуруПоШтрихкоду»
-СПЕЦИАЛЬНО СОЗДАДИМ ОШИБКУ, НАПРИМЕР, «Забудем» установить параметр «штрихкод» в запрос
-Сохраним конфигурацию базу данных
-Отроем браузер, соберем строку подключения, получаем ошибку.
-Как исправить ошибку?
ЗАПУСКАЕМ ПРИЛОЖЕНИЕ 1С:ПРЕДПРИЯТИЕ 8 ИЗ ПОД АДМИНИСТРАТОРА.
Открываем конфигуратор Меню – Отладка – Подключение
-Нажимаем кнопку «Настройка»
-В этом окне есть поле отладчик, выделим его и скопируем.
-Открываем Меню – Администрирование – Публикация на веб сервере…
-Переходим на страницу «Прочие», находим группу «Отладка»
-Выбираем пункт «Разрешена протокол TCP / IP »
-Вставляем в поле «Адрес отладчика» строку отладчика, скопированный выше.
-Нажимаем на кнопку «Опубликовать»
-Заходим в модуль http сервиса. Устанавливаем точку останова.
-Запускаем браузер прописываем строку и отправляем запрос.
-ОСТАНАВЛИВАЕМСЯ В МОДУЛЕ. ДАЛЬШЕ МОЖНО ОТЛАДИТЬ ПРОГРАММНЫЙ КОД.
Видео инструкция
Специальные предложения
Не указано что для отладки нужно сервер в -debug переводить.
Не всегда можно браузером зайти, вариант использовать postman
При разборе ошибки полезно
* смотреть журнал регистрации, при этом учитывать что ошибки в модуле HTTP сервиса не фиксируются.
* смотреть логи HTTP сервиса (apache, ISS), и нужно выделять логи сервиса от обращения тонкого клиента например, это в конфиг файл.
Если есть статьи, то ссылки на них, если нет, то будет повод написать.
По оформлению
* шрифт странный (нестандартный),
* ссылки на публикации некорректно оформились, в техподдержку напишу.
Сделал как описано в статье, и даже флажок как в посте 3) поставил, но остановка не происходит
Сервер IIS, коллеги, подскажите, что может быть не так?
2 Откройте для себя «отладку по протоколу HTTP»
-debug -http
Обновление 23.09.20 09:30
См. также
.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо
Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.
10.03.2016 58363 Serginio 33
WEB/HTTP сервисы. Базовые отличия и применение на практике
Рассказываем о WEB и HTTP сервисах, их практическом применении, о шишках, которые мы набили, и о выводах, которые сделали. Спойлер: тех, кто дочитает статью до конца, ждет бонус от автора.
04.10.2021 3790 Neti 14
Интеграция 1С с ГИИС ДМДК
ГИИС ДМДК — единая информационная платформа для взаимодействия участников рынка драгоценных металлов и драгоценных камней. с 01.09.21 стартовал обязательный обмен данными с Федеральной пробирной палатой (ФПП) исключительно через ГИИС. А постепенно — с 01.01.2022 и с 01.03.2022 — все данные о продаже драгоценных металлов и камней должны быть интегрированы с ГИИС. У многих пользователей возникает вопрос как автоматизировать обмен между программой 1С и ГИИС ДМДК. В настоящей статье ВЦ Раздолье поделится своим опытом о реализации такого обмена. Автор статьи — Мордовин Антон — архитектор систем на базе 1С Внедренческого центра «Раздолье».
30.09.2021 1749 1СERP 19
Интеграция 1С с Битрикс24 через вебхуки
Пример получения токена и http запрос к API битрикса.
15.09.2021 1235 TyurinArt 5
Online телефонный справочник из 1С: Зарплата и управление персоналом Промо
В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.
10.03.2017 27288 ruha 21
Обмен с HTTP сервисом файлами по формату multipart/form-data
Потребовалось отправить картинку в теле запроса в HTTP сервис методом POST, куча реализаций, но есть маленькие нюансы, если хотя бы кому-то поможет, то уже это было не напрасно.
07.09.2021 2129 ix5s 21
Разработка гибридного web-приложения на 1С, возможности и ограничения
Все чаще разработчики склоняются к использованию 1C в качестве бэкенда при разработке веб-приложений. Но благодаря встраиванию веб-клиента 1С в сайт можно получить еще больше готовой функциональности. О том, как реализовать гибридное приложение за счет связки 1С с другими веб-технологиями, рассказал разработчик компании Neti Эльдар Мингалиев.
06.09.2021 2405 Бэнни 11
Работа с WEB-сервисами под HTTPS на примере прямого обмена между базами (1С – 1С)
Использование веб-сервисов 1С при обмене 1С – 1С позволяет быстро передавать достаточно большие объемы данных из базы-источника в базу-приемник в объектах языка 1С. Данный метод обмена может применяться при бесшовной интеграции между двумя базами 1С, но требует определенной серверной инфраструктуры (установленного и настроенного WEB-сервера).
03.09.2021 5639 UltraUnion2005 8
Кэширование COM-соединения. Три способа Промо
Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.
11.04.2013 43035 YPermitin 42
Глава 2. Как я написал (собрал с инфостарта) свой парсер сайта 1С Releases
Путешествие начинающего программиста 1С. Глава вторая. Призываем экспертов в комментарии, оптимизируем код, ругаемся на кривые руки автора. Автор же, в свою очередь, делится своим опытом, читает умные комментарии, стремится дать те знания, за которыми он сидел ночами тем, кто их хочет найти.
31.08.2021 724 ldmonster 4
Взаимодействие с api Честный знак (Молочная продукция)
Обзор основных примеров взаимодействия с Честным знаком по api для нетиповых конфигураций.
30.08.2021 1422 user5300 39
Умная маршрутизация: о сложностях интеграции с 1С (часть 2)
В статье будет много примеров кода с комментариями работы расширения для обмена данными УТ11.4 с Яндекс.Маршрутизацией через выгрузку/загрузку EXCEL файла.
27.08.2021 1813 greencactus 6
Заготовка для загрузки файлов по ftp Промо
3 процедуры и 1 макет
03.06.2013 31256 anig99 6
Встраивание форм 1С на страницы сайта
В платформе 8.3.16 появилась возможность выводить на страницах сайта информацию из веб-клиента 1С так, что пользователь даже не заметит, что работает с платформой. Руководитель компании Айтон Михаил Пинягин на онлайн-митапе «Web-клиенты для 1С» рассказал о том, какие особенности нужно учесть при настройке встраиваемого веб-клиента, и какие возможности он дает.
27.08.2021 2343 mikepin 5
Гарри Поттер и подкапотное пространство веб-клиента
При разработке сайтов, интегрированных с 1С через HTTP-сервисы, приходится бороться с кодировками, искать производительные интерфейсные решения и задумываться над безопасностью. В ходе онлайн-митапа «Web-клиенты для 1С» Юрий Лазаренко показал на практике, как работает магия самодельного веб-клиента и как решать проблемы, возникающие при интеграции.
20.08.2021 2713 TitanLuchs 19
Умная маршрутизация: кейс интеграции с 1С (часть 1)
Как мы решали проблемы с доставкой в нашем интернет-магазине, внедрили новый бизнес-процесс за 3 месяца и научились меньшим количеством машин привозить больше заказов клиентам.
18.08.2021 4077 greencactus 36
Примеры вызова в 1С методов API до реестров открытой части Электронного кабинета налогоплательщика (Украина)
Примеры вызова в 1С методов API до реестров открытой части Электронного кабинета налогоплательщика, Украина. Тестирование проводил на 1С:Предприятие 8.3 (8.3.10.2561).
28.07.2021 722 Pervuy 4
Телеграм-бот как инструмент
Статья больше для начинающих программистов о том, как можно помочь самому себе при доработке 1С или при разработке собственных решений.
21.07.2021 3905 M_A_D 19
Доработка в расширении Яндекс маркета (скачать все этикетки)
Доработка кнопки «Скачать все этикетки» — выбрали каталог и сохранили все за один раз, а не 100500 раз нажимаем кнопку сохранить.
08.07.2021 983 rst_filippov 0
Интеграция 1С 8 и HostCMS
Интеграции 1С с сайтами очень сложно оценивать, ибо на сайте разработчика CMS, а может, и на странице конкретного модуля, зачастую можно найти инструкцию подключения обмена, но в ходе работы постоянно появляются подводные камни: то одно не выгружается, то другое, порой, кажется, все данные передаются, но документы или элементы справочников не заполняются. А перерабатывать типовой механизм зачастую бывает себе дороже. Причем бывают и ситуации, когда нужно вносить изменения и в 1С, и на сайте. Стоимость таких работ возрастает и встает вопрос о том, нужно ли это вообще. Сейчас я расскажу о том, как мы подключали HostCMS, а в конце статьи приведу результаты обмена.
04.07.2021 807 Koder_Line 0
API ОФД-Я разбор документации с примерами
Примеры запросов 1С для получения данных с ОФД-Ярус через API.
Источник