Открываем базу источник
В дереве конфигурации находим объект Web-сервисы, добавляем новый веб-сервис WebFIZObmen и заполняем свойства как показано на рисунках
Далее опишем процедуру SubmitQuery, которая будет возвращать значения справочника и две дополнительные процедуры Сериалиации и Десериализации
сохраняем базу и открываем конфигуратор от имени администратора для публикации базы
В меню Администрирование выбираем Публикация на веб-сервере
указываем имя базы и нажимаем Опубликовать
После успешной публикации проверяем работоспособность web-ссылки
открываем браузер и вводим адрес http://localhost/ist/, где ist — имя опубликованной базы
база должна открыться:
далее необходимо проверить работу wsdl ссылки http://localhost/ist/ws/WebFIZObmen?wsdl, она должна открыться через браузер примерно вот так:
Переходим к базе приемника, открываем ее конфигуратором
Переходим к объекту конфигурации WS-ссылки, создаем новую WSСсылку,
в качестве URL источника указываем http://localhost/ist/ws/WebFIZObmen?wsdl. если система просит логин и пароль, то указываем логин и пароль базы источника, под ним база приемник будет получать данные.
Далее создаем обработку получения ФИО, код загрузки:
Запускаем базу приемник, запускаем обработку получения ФИО
как мы видим фамилии вывелись в окне сообщений, полученные из базы приемника
зачем здесь делать публикацию базы? достаточно опубликовать веб-сервиса
зачем WS ссылку в конфу добавлять если она в тексте прописывается?
(2)если не путаю когда ws ссылка в коде то будет два обращения к серверу. Будет с начало получено wsdl описание а потом уже вызов сервиса. Если добавить ссылку в конфигураторе то можно подгрузить wsdl схему и тогда будет один вызов сервера.
(3) всё правильно, для этого в БСП сделан служебный РС, чтобы не зашивать адрес в конфигураторе
не очень понял зачем вообще параметр метода, который ни на что не влияет
Имя юзера для подключения к WS лучше указывать на латинице. Как-то очень долго не могли проблему при подключении из-за кирилического имени.
(5) как называется данный регистр, не подскажете?
(7) а все, уже разобрался… КэшПрограммныхИнтерфейсов
я так понимаю, можно передать только данные примитивных типов, либо объекты идентичных (имеющихся в обеих конфигурациях)ссылочных типов?
(9) с помощью XDTO-пакетов можно ссылочные типы
(10) это и логично было отразить в примере, на мой взгляд… а то получилось, что пример идентичен по смыслу и наполнению ролику «Обмен данными с мобильным приложением через веб-сервисы» урок-2 (ролик старый, просто недавно смотрел)
(8) верно
(11) передавать-то можно почти все. Главное, чтобы в конечном итоге «это» можно было сериализовать/десериализовать. Описывать все варианты — можно сильно устать 🙂
А вообще — обмены с использованием web-сервисов или http-сервисов — очень удобная штука. Работают быстро, связать таким образом можно различные системы, главное чтобы они все поддерживали данные сервисы.
Но насколько я понимаю механику процесса: для добавления нового вэб-сервиса надо снимать с поддержки конфигурацию базы данных. А нельзя ли этот механизм добавлять с помощью расширений или внешних обработок?
Никто не вдавался в такие эксперименты?
Я у себя на работе уже наловчился с помощью внешних обработок запускать регламентные задания по обмену данными по ФТП. Может и не так быстро, но все на внешних ресурсах, без кромсания типовой конфы. Было бы интересно что нибудь подобное на вэб-сервисах залабать.
(14) Публиковала веб-сервис из расширения, все прекрасно работает) Также не хотелось из-за него самого снимать конфигурацию с поддержки. Вначале смутило, что он не появился в списке публикации и не появился в файле default.vrd, но оказалось что это нормальная ситуация, главное поставить галочку «Публиковать веб-сервисы расширений по умолчанию». При желании или для себя, чтобы не путаться, можно вписать руками в файл default.vrd.
(14) А чем плохо включать возможность редактирования конфигурации и добавлять новые объекты не изменяя существующих?
(14) вовсю пользуемся расширениями для добавления сервисов (правда мы отказались от веб-сервиса в пользу HTTP-сервиса, как более простого и быстрого в разработке). У нас несколько веб-проектов, а также 1С баз так взаимодействуют друг с другом и обмениваются данными. Пример, веб-приложение «Личный кабинет студента» — показывает данные из 1С:Университет, получая их через HTTP-сервис, добавленный в конфигурацию через расширение.
Web сервисы неудобны и сложны, надо все описывать и настраивать. Куда проще и лучше в использовании http сервисы. Делаешь простой get запрос. Получаешь любые данные, даже произвольные массивы и таблицы значений.
https://youtu.be/tCZjGLtUdE8
Вот 15 минутный видеоурок, по которому можно самому разобраться.
(18) У каждой технологии есть свои плюсы и минусы.
Зато у Веб сервиса сразу появляется возможность раздавать схему. Это возможность из коробки получить АПИ, готовую спецификацию.
ХТТП сервисы просты и легковесны, но тема АПИ в них теряется. Вот это все таки минус.
Делая очередной веб-сервис, помните о сильной связности систем. И о том, что в один прекрасный момент упавший по одной из десятков не зависящих от вас причин веб-сервис может остановить работу критичной части приложения.
Прям как телепорт на 5 лет назад. Спасибо вспомнил молодость былую…
Почему не OData или HTTP сервис?
(21) А причем здесь ОДата.. вот любят все ее упоминать не к месту.
Как только нужно сделать чтото сложное, сложные запросы, сложные условия, то Одата идет лесом.
А в ХТТП вы не получите ХДТО функциональность.
(22)
Как только нужно сделать чтото сложное, сложные запросы, сложные условия, то Одата идет лесом.
Я правильно понимаю, что Вы считаете свой пример сложным для ОДата?
Я лишь к тому, что обычно демонстрируют примеры под которые годится ОДата и выглядит это как стрельба из базуки по мухам…
В чем трагедия?
(23) Пример примеру рознь.
Я просто плюсов от ОДаты не видел ни разу. Зачитывать вашу базу этими запросами никто не будет, обычно требуются какие то сложные выборки. Здесь плюсы ОДаты и заканчиваются.
Считывать порции тоже не получается.. Как организовать сценарий прочитать только изменившееся..
По поводу трагедии ХДТО.. имеюю ввиду, что пропадает возможность получить схеме ХМЛ. А дальше кому как это трагедия. Не ну сам то я тоже ХТТП сервисы люблю. Но всеже.
(24)
Для розничных сетей много задач закрывается по ОДата, при обмене с интернет магазином. Номенклатура, цены и т.д.
А для сложных вещей HTTP-сервис + JSON(ну или xml)
Честно говоря не пробовал работать с планами обмена по OData, но по идее такая возможность есть.
Планы обмена и OData
https://infostart.ru/public/893304/
А порции по OData в принципе можно организовать.
1. Согласен насчёт ХТТП-обмена и не понимаю, что мешает прочитать xsd-схему и перекинуть хмл-файлом средствами отдельного метода того же рестового обмена.
2. Помните, что до недавних релизов, ранее, кэширование сеансов веб-сервисов очень своеобразно себя вело и SOAP жрало неподобающе много ресурса, а также что их публикация в общем случае не совсем тривиальная задача.
3. Описаны простейшие действия — а популярности у публикации, будто сакральные секреты открылись.
(14)
Вот вам прям статья с примером http-сервиса в расширенииHTTP Сервисы: Путь к своему сервису. Часть 1 от 15.07.2018
Я так понимаю Вы не используете типовые механизмы (БСП:Дополнительные отчеты и обработки) позволяющие это сделать?
БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному
Вот статья и по этим типовым механизмам
П.С. Все есть, надо просто читать ;))
(16) Например увеличением времени на обновление, так как при включенном редактировании при обновлении происходит, если не ошибаюсь, сравнение
1) старой основной конфигурации со старой конфигурацией поставщика
2) старой конфигурации поставщика с новой конфигурацией поставщика
3) старой основной конфигурации с новой конфигурацией поставщика
Например, для файловой Бухни 3.0 время на обновление увеличивается в разы, а по сути дважды измененных объектов у нас и не будет. А уж если некоторый «профессионал» сразу всем объектам поставит режим поддержки «Редактируется с сохранением поддержки»…)))
Спасибо, что описали все доступно и наглядно продемонстрировали.