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

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

0
17800
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 или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Теги
# абота Риелторского Агентства # Управление торговлей 11 #Работа Риелторского Агентства # 1C # CRM-система # Cинтаксис-помощник # Cинхронные методы работы # PDF документами # PowerShell # XML-файл # Бизнес-процесс # Глубина анализа # Графические объекты # Динамический список # Документ заполнен # Документ Отбор (размещение) товаров # Документ Отгрузка товаров ИС МП # Документ Приобретение товаров и услуг # Документ УПД # Доступ на ТСД # ДтКт # ЕАЭС # Закладка Администрирование # Зарплата и кадры # Имя таблицы # ИТС # Кабель NYM(Севкабель) 3x5.5 # Книга учета доходов и расходов # Курс валюты # Лицо с правом подписи # Лицо, имеющее право подписи документов # Маркировка цифровыми кодами # Минимальные цены продажи в 1С # Настройка НСИ и разделов # Настройка ценообразования # НДФЛ # Нематериальные активы # Обмен электронными документами # Оплата через банк # Основное ответственное лицо организации # Перемещение ТС и оборудования # Проведение инструктажа # Продажи или Закупки # Прочие доходы # Пункт Подключить обработки # Пункт Сервис # ПФР и ФФОМС # Работа ТС # Расчет налога УСН # Расчетные счета # Система «Честный знак» # Система GS1 # Списание на расходы # Справка-расчет налога УСН # Страховые взносы # Таблица формы # Таблица формы «Сотрудники» # Товары # Установка цен на товары # Формат Цифровой Маркировки # Функция Дата # Функция ДеньГода # Функция ДеньНедели # Центральный Банк России # Цены номенклатуры 2.5 # Элементы #1.6-НДФЛ #1С Бухгалтерия #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С: УТ #1С: УХ #1С:ERP #1С:БГУ #1С:БП #1С:Риелтор #1С:Управление холдингом #1С.6-НДФЛ #ADO #APACHE #API #canonical #com-объекты #Cправочник БИК #Excel #Excel в 1С #GoogleDrive #Googleаккаунт #HTTP #ITIL #Koderline: Управление медиа-холдингом #Koderline: Управление проектами строительства скважин #LINUX #MS SQL Server #PDF #WEB #WEB-сервисы 1С #Word #WS-ссылки #XDTO-объект #XML #XML-обмен #Администрирование 1С #Адрес URL описания #акты в 1С #Банковские счета #Безопасность сервера #Бесшовная интеграция #БИТ.Финанc #Битрикс24 #Блокировки в 1С #БСП #БУ #Бурение скважин #Бухгалтерская отчётность в МСФО #Бюджетирование #Вид Характеристики #Внедрение #Внедрение ERP #Внешний вид формы #Выбор каталога #Выбранные файлы #Документ Отпуск #Документ1 #Журналы #Загрузка цен в 1С #Задача для 1С #Закладка Торговля #Закрытие месяца #Заменить #Запись регистра сведений #Запросы 1С #Интеграция 1С #Интервал dpi #История пользователя #Кадровые документы #КАК ОТРАЖАЮТСЯ ТОВАРЫ В ПУТИ 1С #Как сделать в 1С #Карточка Объекта недвижимости #Классификаторы и курсы валют #Клиент-серверная схема #Код ЦМТ #Конвертация данных #Контроль документов #Конфигурация 1С #Конфигурация 1С ЗУП 3.1 #Копирование настроек пользователей #Корпоративное сопровождение #Лизинг #Лицензии 1С #Лицензионный договор #Личные документы #Массив Номенклатур #Массовая регистрация отгулов #Меню Отчет #Механизм Анализа Данных в 1С #Моделирование #Модуль Диадок #МРОТ #МСФО #Налоги #Начисления Арендной платы #Новый Массив #Обмен между базами #Обновления #Общие ознакомительные рассылки #Операции в 1С #Оптимизация #Организация #Отпуск #Отчетность #Отчеты в 1С #Оформление перевода работника #Оценка задач #Параметр «Количество» #Партнер #Передача неисключительных прав #Перенос данных #Перенос цен из Excel в 1С #Периодичность ДЕНЬ #Периодичность МЕСЯЦ #Печатная форма документа #Планирование #Поле Ввода Значение Субконто #Полезные обработки #Пользовательский режим #Правила обмена #предопределенные элементы справочников #Прием на работу #Принцип работы 1С #Проводки 1С #Программа 1С #Программирование в 1С #Программные права #Продажа ТМЦ #Продажи #Продление #Производство #Просмотр #Путь к файлу #Работа с объектами в 1С #Расторжение #Расчет зарплаты #Расчетные документы #Расширение конфигурации #Регламентированная отчетность #Режим РИБ #Результаты поиска #РСБУ #С # #Сдельный заработок #СЗВ-СТАЖ #СКД #Соединение COM в 1С платформе #Соединение СОМ в 1С платформе #Сравнение конфигураций #Счет-фактура #Текущая Строка #Территориальная привязка #Территориальные рамки #Тестирование 1С #Техническое задание #Типы данных ссылки #Торговое оборудование #Транспортная логистика #Управление проектами #Установка цен номенклатуры #Финансовый учет #Формат MicrosoftExcel #Функционал МРМ #Х-точка #Характеристики Товаров #Хранилище настроек #Хранить историю изменений #Ценообразование #Чтение #Экзамен 1С #электронные подписи #Яндекс-диск или Google-диск #Яндекс.Касса 1С под Linux 1С:УНФ Email или телефон Работа с объектами в 1С Функциональные опции в 1С
Услуги программиста 1С
Получите специалиста  
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.