Модуль для работы 1С (платформа 8.2 и выше) с внешними SOAP Web-сервисами

15.02.16

Интеграция - WEB-интеграция

Модуль для работы 1С (платформа 8.2 и выше) с внешними Web-сервисами, реализованными по протоколу SOAP.

Скачать файлы

Наименование Файл Версия Размер
Модуль для работы с внешними веб-сервисами
.zip 50,70Kb
88
.zip 1.0 50,70Kb 88 Скачать

Здравствуйте, уважаемые программисты 1С! Представляю вашему вниманию, обсуждению и использованию Модуль для работы 1С с внешними веб-сервисами.


Кому это может пригодиться

 1. Вы опытный программист, и в данный момент времени перед Вами стоит задача интегрировать 1С с внешними программами посредством вызова внешних веб-сервисов, и эта задача возникает у Вас периодически, каждый раз при этом Вы дублируете код - этот модуль придёт Вам на помощь, вызывайте любые операции любых веб-сервисов из кода в две строчки.

 2. Вы только учитесь программировать или Вы опытный программист 1С, но у Вас абсолютно нет опыта работы с веб-сервисами и понятием XDTO в 1С - модуль поможет Вам в тестовом режиме использования понять на практике определенные нюансы работы с XDTO объектами в 1С, на примере с тестовыми внешними веб-сервисами (можете использовать в учебных целях общедоступный веб-сервис для работы с погодой GlobalWeather).

 Конечно же, практика в виде чтения чужого кода с отладчиком хороша и полезна, не заменит никакую документацию, но для начала, если Вы не знакомы с веб-сервисами, но хотите понять всю суть работы с внешними веб-сервисами из 1С и публикации веб-сервисов 1С для внешнего использования, для начала советую прочитать статью о веб-сервисах в целом на хабре или на wikipedia, реализации веб-сервисов в 1С на ИТС, затем серию публикаций автора Evil Beaver под названием XDTO - это просто.  По Вашему желанию можно поискать любую другую информацию на просторах интернета, всё зависит от Вашего настроя. Но давайте вернёмся к сути данной публикации.

Принцип работы данного модуля

 Когда у меня встала задача интеграции 1С с внешними источниками, я сразу понял, что код нужно разделить на несколько уровней абстракции.

 Общий модуль (1-ый уровень абстракции), который обслуживает определенный внешний веб-сервис, предоставляет такие функции как : получить структуру параметров определенной операции на данном веб-сервисе, выполнить определенную операцию на определенном веб-сервисе, который по мере необходимости обращается к 2-ому общему модулю (2-ой уровень абстракции), который уже на более низком уровне предоставляет все необходимые операции для работы с веб-сервисами.

 

Более подробно схематично:

 

 Модель

 

 От теории к практике

Как это работает в коде:


Платформа 8.3, управляемые формы.

 

Управляемые формы пример.

 


Платформа 8.2, обычные формы.

 

Пример обычные формы.

 


Под капотом при получении параметров:

Под капотом - получение параметров


Под капотом при выполнении метода:

При выполнении метода

 

Как видно по последнему скрину, имеется возможность указать имя реквизита, который идентифицирует успешное выполнение, также модуль имеет функционал для создания анонимных типов, причем на любом уровне вложенности. Есть возможность передавать реквизит булевого типа - "Отказ", в случае, если веб-сервис вызывается при записи объектной сущности.

Так как статья ориентирована на программистов, так или иначе умеющих читать код 1С и делать логические выводы, я не буду слишком сильно углубляться в обьяснение принципов работы данного модуля.

Файлы во вложении:

1. Тестовые конфигурации с интегрированными тестовыми внешними веб-сервисами:

   1.1. на платформе 8.2, с режимом запуска обычное приложение.

   1.2. на платформе 8.3, с режимом запуска управляемое приложение.

   1.3 Соответствующие обработки на обычных и управляемых формах, для вызова и тестирования интегрированных веб-сервисов.

 2. Текстовые файлы содержащие код технического общего модуля и шаблон обслуживающего веб-сервис общего модуля. 

 3. Текстовый файл, описывающий необходимые действия для интеграции данного модуля.

Веб-Сервисы Web-Сервисы интеграция интеграция с внешними системами вебсервисы

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме. Без существенных изменений типовой конфигурации. Проверено с брендами: Интеграция 1С и GEELY Интеграция 1С и HAVAL Интеграция 1С и KIA Интеграция 1С и FORD Интеграция 1С и LADA ГАРАНТИЯ 100% ВНЕДРЕНИЯ!

36000 руб.

03.08.2020    15655    9    17    

9

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    12809    30    8    

10

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17421    6    15    

13

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25686    9    0    

7

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16253    41    49    

22
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. lunjio 66 04.02.16 15:37 Сейчас в теме
Буду рад и благодарен любым предложениям и замечаниям.
2. pbazeliuk 1954 16.02.16 12:40 Сейчас в теме
(1) минус реализации в том что идет жесткая привязка к SOAP-сервису. Систему можно сделать более динамической и независимой от программиста.
3. lunjio 66 16.02.16 18:56 Сейчас в теме
(2) pbazeliuk,
Не понимаю, что вы имеете ввиду под словом более динамической и независимой от программиста ? Модуль наоборот, именно программистам и адресован, более динамическим его уже делать некуда, всё что нужно сделать это добавить шаблоны модулей, в шаблоне обслуживающего модуля прописать имя сервиса, адрес всдл и функции получения параметров и выполнения методов. По поводу жесткой привязки к SOAP - есть конечно и REST, про него никто не забыл, но как вы знаете 1С для вызова REST веб-сервисов рекомендует пользоваться стандартными объектами - HTTPСоединение и т.д, можно конечно расширить мой модуль до такой функциональности, но это наоборот увеличит число манипуляций для внедрения определеноого внешнего REST сервиса, если люди выявят, конечно сделаю/продумаю настолько, чтобы было максимально все просто и понятно для программиста при внедрении и использовании.
15. Магомедсалам 15.04.18 18:51 Сейчас в теме
(1) Спасибо большое за данную публикацию. Очень помогла.
4. abion 17.02.16 07:39 Сейчас в теме
Интересно. Но это уже сделано.
Интересует возможность отправки фалов по протоколу MTOM.
Эта задача кажется невыполнимой на данном этапе.
7. lunjio 66 17.02.16 10:19 Сейчас в теме
(4) abion,
Нет невыполнимых задач, если не подходящие по определенным критериям - время выполнения, архитектура, вопросы безопасности и т.п.
Да 1С не может вложения распозновать, я вижу следующие возможные варианты( перечислены сверху вниз по актуальности)):

1. Написать веб-сервис(на джаве или си шарпе) который будет у вас в сети, будет вложение сохранять и уже передавать в 1С в качестве доп параметра путь к файлу.(самый на мой взгляд оптимальный и пока, существующий). Писать на джаве и сишарпе не так сложно, в интернете куча примеров.
2 Попробовать через base64 файл как данные передавать , авось и не будет большая потеря во взаимодействии из-за большего размера чем по необходимой Вам технологии, конечно тут все относительно и надо смотреть на критерии - частота обмена, объем файлов и т.п.
3. Ждать от 1С, пока "родит" такую возможность.
8. Serginio 938 17.02.16 10:45 Сейчас в теме
5. premierex 204 17.02.16 09:14 Сейчас в теме
(0), а зачем интегрировать внешние web-сервисы в конфигурацию? В платформе 1С:Предприятие версий 8.x реализован механизм динамического вызова web-сервисов. Пример можно посмотреть, перейдя по этой ссылке.
6. lunjio 66 17.02.16 09:57 Сейчас в теме
(5) premier, Вопрос конечно не совсем ясен, учитывая тот факт, что Вы сами разработчик). Не буду объяснять подробно, приведу примеры - интеграция с сайтом, мобильными приложениями, другими ИС на базе 1С, и т.п продолжать нет смысла, это именно МОДУЛЬ облегчающий вызовы внешних веб-сервисов из 1С, его даже можно переделать чтобы он автоматически формировал XDTO объект в качестве ответа внутреннего веб-сервиса предоставляемого 1С, на досуге займусь, судя по Вашей ссылке у Вас обработка просто для тестирования и просмотра определенных веб-сервисов.
У меня к Вам встречный вопрос, если Вы не видите смысла интегрировать, зачем тогда вообще их тестировать ???
9. premierex 204 17.02.16 15:00 Сейчас в теме
(6) обработка названа SoapКлиент, и она предназначена не только для тестирования. Методы веб-сервисов, вызываемых динамически, можно использовать и в "рабочем" режиме. Кому-то удобней модуль встроить, кому-то обработку запустить и заполнив параметры получить от веб-сервиса необходимые данные. Оба подхода имеют право на жизнь. Чтобы Вы не принимали меня за критикана, поставлю Вам +. Больше подходов хороших и разных!
10. lunjio 66 17.02.16 15:21 Сейчас в теме
(9) premier,
Не принимаю за критикана, опять повторюсь, не совсем понятен Ваш вопрос, то ли Вы просто написали с целью сослаться на свою обработку, связанную с веб-сервисами. Вы как программист должны знать, зачем и для чего нужно интегрировать 1С с внешними веб-сервисами. Наши работы предназначены для разных целей работы с одной областью, хотя и имеют право на совместное использованию(ваша на этапе тестирования, моя работа на этапе внедрении), внедрение моего модуля, наверное проше куда некуда - указать имя сервиса местоположение WSDL и имена операций, в Вашем случае надо указать начинаю от пространства имен и т.п и т.д + не совсем представляю её как модуль для внедрения/интеграции 1С с внешними программами посредством веб-сервисов. Могли бы просто без вопроса сослаться на свою работу в сообщении.
11. premierex 204 17.02.16 16:26 Сейчас в теме
(10) будем считать, что мы друг друга не поняли. Фраза "интегрировать 1С с внешними программами посредством вызова внешних веб-сервисов" ассоциировалась у меня со встраиванием веб-сервисов (точнее, WS-ссылок) в конфигурацию, а не о динамическом их вызове, отсюда и вопрос. Просто не увидел на скринах, где можно задать URL WSDL web-сервиса. А в общем и целом принципы работы достаточно похожи, судя по коду, в Вашей разработке и в моей. Вопрос снят.
P.S. Программный код на скриншоте читается тяжело, код лучше текстом оформлять. Чуть глаза не сломал, пока читал ))
И по поводу: "Могли бы просто без вопроса сослаться на свою работу в сообщении.". Обработка писалась лет 8 назад, я давно её не продвигаю, соответственно в её рекламе не вижу себя практического смысла. Выложил ссылку для примера (разработки - из одной и той же предметной области, Ваша - логически завершеннее).
12. lunjio 66 17.02.16 19:58 Сейчас в теме
(11) Согласен, с ноута особенно читается плохо, не знаю как делать код текстом пока)
Вебсервисы вызывать можно у меня в двух режимах, в динамическом - формируется Вс определения при каждом вызове, либо через WSСсылка, так же у меня сериализация идет для передачи с клиента на сервер в клиент-серверном варианте, создание анонимных типов + возможность указать реквизиты идентификаторы успешного вызова, как вы уже поняли прочитав код. Единственное что вижу, можно сюда привязать вызов rest сервисов, через рекомендуемые 1С объекты httpзапрос и т.п. Для интеграции, просто добавить объекта WSСсылка не достаточно ) нужно и логику вшить.
А вы кстати может знаете обработки которые на уровне запросов SQL позволяют базу чистить с отборами по реквизитам ?
13. premierex 204 20.02.16 10:30 Сейчас в теме
(12) по поводу привязки rest сервисов: идея неплохая, имхо, повысит универсальность работы с веб-сервисами.
Обработки, которые работают напрямую с SQL сервером через запросы где-то видел на инфостарте, но, вроде бы, данное
действие нарушает лиц. соглашение с 1С, так что, возможно этих публикаций уже и нет.
Оставьте свое сообщение