KoderLine
Обслуживание
и внедрение
Наш Facebook Наш Instagram Наш YouTube
+7 (495) 374 55 29 Обратный звонок
Веб-сервисы и 1С: «Здравствуй, Name», время –...

Веб-сервисы и 1С: «Здравствуй, Name», время – деньги и «Жизнь»

0
4483
15.12.2016 Альберт Хайров
 

«Вся наша жизнь — игра...» (У. Шекспир)

  «Что наша жизнь? Игра...» (А. Пушкин)

 
 
 

Содержание

  1. Архитектура SOA
  2. Здравствуй, Name! Пример создания web-сервиса.

2.2. Как установить web-сервер

2.3. Как создать в каталоге веб-документов каталог для публикации наших сервисов

2.4. Как установить web-расширение «1С:Предприятие»

2.5. Как создать и опубликовать веб-сервис в 1С

2.6. Как протестировать веб-службу 
 
     
 

Часть вводная. Архитектура SOA 

 
 

При разработке приложений с глобальным взаимодействием уже давно известна  архитектура SOA (Service Oriented Architecture).

Такая архитектура подразумевает, что приложения на разных платформах, в разных средах взаимодействуют между собой, при этом разработчик может не беспокоиться о том, что находится внутри приложений на той стороне (т.е. об их реализации), а также о том, что находится снаружи (т.е. об их среде окружения).

Существует достаточно большое количество реализации этой архитектуры.  Одним из видов такой реализации является технология, основанная на связке специфицированных консорциумом w3c таких технологий, как веб-сервисы и протокол SOAP, которые в свою очередь основаны на XML.  Уже достаточно длительное время эта технология интегрирована в платформу «1С:Предприятие». Благодаря этому «1С:Предприятие»  может служить:

  • «сервером приложений»
  • поставщиком сервисов
  • можно организовать взаимодействие между 1С и приложениями, написанными на других платформах
  • можно организовать взаимодействие между различными системами на базе 1С и так далее.

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

 
     
 

Часть 1. Здравствуй, Name! Пример создания web-сервиса

 
 

Есть достаточное количество противников WS+SOAP и сторонников других технологий, как и тех, кто недолюбливает 1С. Однако существующая технология разработки на платформе 1С позволяет приступить к разработке и получить готовый результат довольно быстро при весьма поверхностном знакомстве с подробностями спецификаций SOAP, WSDL и веб-сервисов, по сравнению со многими другими известными продуктами как от гигантов софтверной индустрии, так и с бесплатными open-source решениями, что само по себе не является ни плюсом ни минусом, но заставляет задуматься.

Чтобы окончательно в этом убедиться, я твердо решил в качестве опыта реализовать  при помощи web-сервисов хрестоматийный пример, на котором большинство студентов, изучавших вычислительную технику и программирование, практиковались ещё во время учебы в ВУЗ-ах, а именно игру «Жизнь» - клеточный автомат, придуманный  английским математиком Джоном Конвеем в 1970 г.

Для начала, чтобы просто понять, как это работает, создадим простой веб-сервис, который будет уметь выполнять одну операцию с одним параметром строкового типа и будет возвращать тоже строку.   
 
     
 

Как установить веб-сервер

 
 

Для начала надо установить веб-сервер, который будет обрабатывать запросы. Это может быть Apache или IIS. Я предпочитаю Apache. Поскольку The Apache HTTP Server Project

предоставляет только исходники своего продукта, воспользуемся скомпилированной версией

от Apache House. (это обязательно должна быть 32-разрядная версия, веб-расширение 1С не работает с 64-разрядной).

Загрузив архив, распакуем его куда-нибудь, например, в корневой каталог. Далее установим веб-сервер в качестве  сервиса, запустив сервер из командной строки  с параметром -k install, вот так:

c:\Apache24\bin\httpd.exe -k install

Теперь нам нужно:

- создать в каталоге веб-документов каталог для публикации наших сервисов;

- установить web-расширение «1С:Предприятие»;

- создать и опубликовать первый веб-сервис  
 
     
 

Как создать в каталоге веб-документов каталог для публикации наших сервисов

 
 

Каталог для публикации должен быть расположен в каталоге c:\Apache24\htdocs.

Назовем его WebServices 
 
     
 

Как установить web-расширение «1С:Предприятие»

 
 

Теперь откроем панель управления: Панель управления\Программы\Программы и компоненты, выберем нужную версию программы «1С:Предприятие», нужно будет нажать правую кнопку и выбрать пункт «Изменить», затем «Изменить-Далее» и выбрать в списке

«Модули расширения Веб-сервера» (Web server extention modules) – рисунок 1.
Screenshot_2.png

Рис.1

 
 

Теперь создадим пустую файловую базу 1С, в ней роль «Полная» с полными правами на все группы объектов и пользователя Admin, назначив ему эту единственную роль.

На вопрос, будет ли это работать в файловом варианте, ответ положительный (во всяком случае этот простой пример работает как файловая база).

Теперь приступим к реализации. 
 
     
 

Как создать и опубликовать веб-сервис в 1С 

 
 

В группе web-сервисы создадим новый объект с простым именем WebServiceTest, операцией с именем GetHelloString, которую будет обрабатывать функция Привет(Name). Тип значения параметра Name - string (берется из пространства имен

 http://www.w3.org/2001/XMLSchema)

URI пространства имен для сервиса указываем равный каталогу нашей публикации на веб-сервере - http://localhost/WebServices/

имя файла публикации может быть любым, но желательно латинским шрифтом и обязательно с расширением 1cws. Все вместе это выглядит как на рисунке 2: 
 
  Screenshot_3.png

Рис. 2

 
 

Тело функции Привет() модуля сервиса будет содержать только одну строку:   
 
  Screenshot_4.png

Рис. 3

 
 

Осталось только опубликовать сервис.

Заходим в меню администрирование -> публикация на web-сервере. Откроется форма, в которую мы введем параметры публикации.  Имя публикации должно совпадать с именем каталога на web-сервере.

В поле «Каталог» вводим путь к нашему каталогу на web-сервере, который мы создали ранее, то есть C:\Apache24\htdocs\WebServices\

Остальные параметры вы можете рассмотреть на рисунке 4.   
 
  Screenshot_5.png

Рис. 4

 
  Перезапустим web-сервер, используя   Apache monitor (оснастку служб Windows, закладку «службы» диспетчера задач, командную строку, bash, монитор процессов - что у вас есть под рукой), чтобы данные публикации были считаны Апачем заново. Обновление публикации и перезапуск веб-сервера нужно делать после каждого сохранения конфигурации, связанного с изменениями веб-сервиса.   
     
 

Как протестировать веб-службу

 
 

Осталось только протестировать нашу веб-службу.  Для этого наберем в строке браузера http://localhost/WebServices/ws/1c_wstest.1cws?wsdl

или

https://localhost/WebServices/ws/1c_wstest.1cws?wsdl

Результат должен выглядеть как на рисунке 5. 
 
  Screenshot_6.png

Рис. 5

 
 

Клиентская часть будет содержать чуть больше кода. Можно обращаться к сторонним сервисам двумя способами:

 - использовать ws-ссылку (объект метаданных)

 - создать ws-определение программно

Первый способ означает, что нам нужна ещё одна конфигурация, поэтому сейчас используем второй способ. Разница лишь в том, что мы создадим объект программно.

Создадим новую обработку с реквизитом Name, разместим его на форме, добавим форме команду Тест с двумя процедурами, на клиенте и на сервере. (Рис. 6) 
 
  Screenshot_7.png

Рис. 6

 
 

Параметры конструктора объекта WSПрокси ИмяСервиса и ИмяТочкиПодключения можно найти в XML-тексте, который возвращает наш сервис по URI https://localhost/WebServices/ws/1c_wstest.1cws?wsdl

А именно в элементе <service name="ИмяНашегоСервиса">

где ИмяСервиса — это атрибут Name этого элемента, то есть <service name="WebServiceTest"> 

ИмяТочкиПодключения — это атрибуты Name вложенных элементов

<port><port/>

Обычно мы имеем две точки для разных версий SOAP, в нашем случае они называются

WebServiceTestSoap и WebServiceTestSoap12 — можно использовать любой из них.

Сохраняем изменения в обработке, открываем её в любой базе и тестируем. Результат — вывод сообщения возвращенной операцией нашего удаленного сервиса строки. (Рис. 7) 
 
  Screenshot_8.png
Screenshot_9.png   
 
     
  Продолжение следует   
 

Альберт Хайров,

разработчик компании ООО «Кодерлайн» 

 
     
     

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Теги
#1С: CRM #1С: ERP #1С: ERP Управление строительной организацией #1С: ERP. Управление буровой компанией #1С: WMS Управление складом #1С: Аренда и управление недвижимостью #1С: БУХ #1С: Договорчики #1С: Документооборот #1С: ЗУП #1С: Интеграция #1С: КА #1С: Колледж #1С: Конвертация данных #1С: Платформа #1С: Розница #1С: Сценарное тестирование #1С: ТОИР #1С: УАТ #1С: УКФ #1С: Университет #1С: УНФ #1С: УПП #1С: Управление строительной организацией #1С: УТ #1С: УХ #ADO #APACHE #API #com-объекты #Excel #GoogleDrive #HTTP #ITIL #Koderline: Управление медиа-холдингом #Koderline: Управление проектами строительства скважин #LINUX #MS SQL Server #WEB #WEB-сервисы 1С #Word #XML #Администрирование 1С #Безопасность сервера #Бесшовная интеграция #БИТ.Финанc #Битрикс24 #Блокировки в 1С #БСП #БУ #Бурение скважин #Бюджетирование #Внедрение #Внедрение ERP #Закрытие месяца #Запросы 1С #Интеграция 1С #Как сделать в 1С #Конвертация данных #Корпоративное сопровождение #Лизинг #Лицензии 1С #Моделирование #МСФО #Налоги #Обмен между базами #Обновления #Оптимизация #Отпуск #Отчетность #Отчеты в 1С #Оценка задач #Перенос данных #Планирование #Полезные обработки #Правила обмена #Проводки 1С #Программирование в 1С #Программные права #Продажи #Производство #Расширение конфигурации #РСБУ #СКД #Сравнение конфигураций #Тестирование 1С #Техническое задание #Торговое оборудование #Транспортная логистика #Управление проектами #Финансовый учет #Ценообразование #Экзамен 1С #Яндекс.Касса Email или телефон
Услуги программиста 1С
Получите специалиста  
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.
Яндекс.Метрика