Работа с WEB-сервисами

1. Ivan_Stepnov 14.10.19 16:16 Сейчас в теме
Доброго времени суток, уважаемые форумчане!

Я впервые столкнулся с необходимостью разработки веб-сервиса в базе 1С и решил попробовать
начать с самого простого - сделать веб-сервис, возвращающий длину переданной строки.
В качестве примера использовал статью
https://wiseadvice-it.ru/o-kompanii/blog/articles/web-servisy-1s-sozdanie-i-nastroika/

Создал веб-сервис, указал в нем операцию и аргумент, указал имя файла публикации (файл P1).
Потом попытался опубликовать. Окно с параметрами публикации в файле P2.

В результате публикации был изменен конфигурационный файл Apach - туда добавилось
описание базы 1С:

# 1c publication
Alias "/1cprogr_31052017" "F:/Contracts/WEB_SERVICE_1C/"
<Directory "F:/Contracts/WEB_SERVICE_1C/">
AllowOverride All
Options None
Order allow,deny
Allow from all
SetHandler 1c-application
ManagedApplicationDescriptor "F:/Contracts/WEB_SERVICE_1C/default.vrd"
</Directory>

А в каталоге F:/Contracts/WEB_SERVICE_1C/ создался не файл "waLengthString.1cws",
а "default.vrd". И этот файл содержит такой фрагмент:

<point name="wa_LengthString"
alias="wa_LengthString.1cws"
enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>

И теперь по интернет-адресу "\\<IP-адрес сервера>\<Имя базы 1С>" стала открываться сама база в веб-интерфейсе.

Подскажите, пожалуйста, что я сделал неправильно, и как мне теперь обратиться к веб-сервису из другой базы?

аранее благодарю.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
3. wertep 23 14.10.19 16:27 Сейчас в теме
(1)
И теперь по интернет-адресу "\IP-адрес сервера\Имя базы 1С\" стала открываться сама база в веб-интерфейсе.

Правильно все, потому что стоит галка "Публиковать тонкий и веб клиент".

К веб сервису обращаешься с именем вебсервиса \IP-адрес сервера\Имя базы 1С\ws\ИмяВебСервиса.
Имя указано в колонке "Адрес".
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. wertep 23 14.10.19 16:27 Сейчас в теме
(1)
И теперь по интернет-адресу "\IP-адрес сервера\Имя базы 1С\" стала открываться сама база в веб-интерфейсе.

Правильно все, потому что стоит галка "Публиковать тонкий и веб клиент".

К веб сервису обращаешься с именем вебсервиса \IP-адрес сервера\Имя базы 1С\ws\ИмяВебСервиса.
Имя указано в колонке "Адрес".
4. Ivan_Stepnov 14.10.19 16:48 Сейчас в теме
(3)wertep, спасибо!
В другой базе я указал:

WSDL = Новый WSОпределения("<IP-адрес сервера>/<Имя базы 1С>/ws/wa_LengthString.1cws?wsdl","<ИмяПользователя>","<ПарольПользователя>");
ВСПрокси = Новый WSПрокси(WSDL,"http://v8.1c.ru/wa_LengthString","wa_LengthString", "wa_LengthStringSoap");

ВСПрокси.Пользователь = "<ИмяПользователя>";

ВСПрокси.Пароль = "<ПарольПользователя>";

ОтветВС = ВСПрокси.CalcLengthString("тестовая строка");


В переменной ОтветВС вернулась длина строки.
У меня сомнения - правильно ли я указал параметр "wa_LengthStringSoap"? Я просто взял её из примера.
5. wertep 23 14.10.19 16:55 Сейчас в теме
(4)
wa_LengthString.1cws?wsdl

Поэтому адресу он возвращает описание вебсервиса. Можно этот адрес открыть прямо из браузера и увидеть что он вернул.
Обращайся без "?wsdl" на конце.

Да тамже ты создаешь определения. Должно быть правильно наверное. Смотря чем твой сервис занимается.

Для быстрой проверки кто что возвращает проще использовать Soup IU например.
7. Ivan_Stepnov 14.10.19 17:22 Сейчас в теме
(5) wertep, при обращении с ?wsdl на экране показывается текст веб-страницы.
Спасибо Вам огромное за помощь.
Если позволите, еще спрошу у Вас совета.
Если мне надо передать через веб-сервис в другую базу большой объем данных (например, перечень заказов за квартал),
то как это правильнее делать - один раз сформировать и передать большой XDTO-пакет с информацией по всем заказам,
или передавать каждый заказ в отдельном пакете?
9. wertep 23 14.10.19 17:28 Сейчас в теме
(7)Все зависит от объема передаваемой информации. По одному передавать весь квартал будет много затрат на служебные обращения. Лучше всего передавать пакетами, например по 10 заказов. Определить по размеру передаваемых данных.
11. Ivan_Stepnov 14.10.19 17:34 Сейчас в теме
(9)wertep, спасибо, Вы мне очень помогли!
6. wertep 23 14.10.19 17:14 Сейчас в теме
(4)
ВСПрокси = Новый WSПрокси(WSDL,"http://v8.1c.ru/wa_LengthString","wa_LengthString", "wa_LengthStringSoap")

Если откроешь в браузере ссылку "<IP-адрес сервера>/<Имя базы 1С>/ws/wa_LengthString.1cws?wsdl", то получишь XML в конце которого будут примерно такие строчки
<wsdl:service name="CardsManagerService">
<wsdl:port binding="tns:CardsManagerServiceSoapBinding" name="CardsManagerPort">

В первый параметр вставляешь CardsManagerService, а второй CardsManagerPort.
8. Ivan_Stepnov 14.10.19 17:27 Сейчас в теме
(6) wertep, в конце XML-текста строки такие:
<service name="wa_LengthString">
<port name="wa_LengthStringSoap" binding="tns:wa_LengthStringSoapBinding">
10. wertep 23 14.10.19 17:30 Сейчас в теме
(8)Да, тогда правильные параметры передаешь.
2. aezdakov 5 14.10.19 16:27 Сейчас в теме
опубликовать тонкий клиент, odata и "веб-сервисы по умолчанию" лишнее
Оставьте свое сообщение
Вакансии
Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день