15.12.2016 Альберт Хайров 24310
Веб-сервисы и 1С: «Здравствуй, Name», время –...
 

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

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

 
 
 

Содержание

  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   
 
     
  Продолжение следует   
 

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

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

 
     
     

Наши проекты

ООО "РУКАРД-АУРА"
ООО "РУКАРД-АУРА"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Комплексная автоматизация

- Налоговый учет;...

Внедрение ПП "1С:Управление небольшой фирмой 8 ПРОФ" в ООО «Шокостайл»
ООО «Шокостайл»

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Управление продажами, логистикой и транспортом (SFM, WMS, TMS):
- Планирование продаж;
Склад и логистика:
-Управление складскими ...

ООО «Фипар»
ООО «Фипар»

Отрасль:

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Специалисты «Кодерлайн» внедрили «1С:ERP. Управление предприятием 2» и автоматизировали блоки: продажи, закупки, производство, складская и т...

ФГОУ ВПО «Горский государственный аграрный университет»
ФГОУ ВПО «Горский государственный аграрный университет»

Отрасль:
Образование

Внедренное типовое решение:
1С:Колледж ПРОФ

- Управление персоналом и кадровый учет (HRM):
Кадровый учет
Управление обучением и повышением квалификации
- Финансы, управлен...

Внедрение ПП "1С:Корпоративный инструментальный пакет 8" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

Отрасль:
Производство

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Различная отраслевая специфика:
- Переработка давальческого сырья
- Учет спецодежды и спецоснастки
Управление отношениями с кли...

АО «Вертолетная сервисная компания»
АО «Вертолетная сервисная компания»

Отрасль:
МТО эксплуатации вертолетной техники

Внедренное типовое решение:
1С:Бухгалтерия КОРП

- Консультации по сложным вопросам налогового и бухгалтерского учета;
- Разработка специализированных форм внутрикорпоративной отчетност...

СТС-Медиа
СТС-Медиа

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление холдингом

- Бухгалтерский учет;
- Налоговый учет;
- МСФО (GAAP/управленческий учет);
- Казначейство...

Внедрение 1С:Управление торговлей в оптово-розничной компании «Ална-Байк»
ИП Титов Виктор Сергеевич «Ална-Байк»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

- Управление складами;
- Управление заказами поставщиков;
- Управление заказами покупателей...

ООО "ТК "Сытый Дом-НН"
ООО "ТК "Сытый Дом-НН"

Отрасль:
Торговля, склад, логистика, транспорт

Внедренное типовое решение:
1С:Управление торговлей 8

Взаиморасчеты с покупателями
Оптовая торговля
Управление складскими запасами...

Автоматизация системы учета продаж газа на базе «1С:ERP Управление предприятием 2.0»
ООО «Эйр Продактс Газ»

Отрасль:
Производство промышленных газов

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Расчеты с контрагентами;
- Производственные операции;
- Управление складскими запасами;
- Логистика адресного склада;
- Оф...

АО "Нижегородский водоканал"
АО "Нижегородский водоканал"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

-Кадровый учет
-Расчет зарплаты
-Регламентированная отчетность
-Подбор кадров
-Анализ кадрового состава
-Учет рабочего времен...

АО «Аэроклуб»
АО «Аэроклуб»

Отрасль:
Услуги в области делового туризма

Внедренное типовое решение:
1С:Бухгалтерия 8 КОРП

Проведение серии интервью с руководством и ключевыми специалистами Разработка формализованного описания модели существующих бизнес-процессо...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение