Содержание: |
||
На днях мне позвонил незнакомый человек и представившись Игорем, спросил, знаю ли я что-нибудь о биржевой торговле. Я ответил, что не знаю о биржах вообще ничего. Игорь внезапно чему-то огорчился и повесил трубку. Я и, правда, мало знаю об этом, но мне вдруг показалась неплохой идеей в контексте истории с веб-сервисами сделать эмулятор сервиса курса акций, который позволит из клиентской части получить курс акций, вычисляемый на сервере. Таким образом, это будет очередной пример создания веб-сервиса 1С, с отработкой отправки и получения xml-сообщений при обмене с веб-сервисом в режиме реального времени. | ||
Как создать web-сервис. Создаем web-сервис | ||
|
Для начала создадим новый web-сервис с именем MarketRates (Рис. 1) Он будет выполнять три операции. GetRate с одним параметром CompanyCode, GetSharesTypesList - без параметра и GetSharesList с параметром SharesTypes. Все параметры будут иметь тип string пространства имен http://www.w3.org/2001/XMLSchema. Операции GetSharesList и GetSharesTypesList также будут возвращать значения типа string, а GetRate будет возвращать значение типа long. На самом деле, конечно же, операции GetSharesList и GetSharesTypesList будут возвращать, а GetSharesList и получать таблицы или списки значений, сериализованные в XML-текст. |
|
Рис 1. | ||
Понадобится ещё пара справочников. Назовем их "Виды акций" и "Компании".Справочнику компаний добавим три реквизита: - РейтингВерхняяГраница (тип число) - РейтингНижняяГраница (тип число) - ВидКомпании (тип - справочник "Виды акций") |
||
Значение свойства «Имя файла публикации» будет wsGetRate.1cws
Создадим пустые пока модули-обработчики операций и сохраним сделанные изменения. Если у вас файловый вариант базы, то перед сохранением не забудьте остановить веб-сервер, если он был запущен и база уже опубликована, и затем запустить его заново. Еще одним недостатком файлового варианта базы является то что в таком режиме недоступны для отладки процедуры модуля web-сервисов. Теперь, если перейти по адресу https://localhost/WebServices/ws/wsGetRate.1cws?wsdl — то можно увидеть, что сервис отзывается. |
||
Клиентская часть |
||
|
Теперь кратко о клиентской части. Форма обработки будет иметь две страницы. На первой мы разместим список видов акций, который можно будет получать с сервера, выделить нужные виды и заполнить вторую таблицу или список компаниями, отцы которых относятся к выделенным в верхнем списке. На второй странице мы разместим диаграмму, которая будет отображать в виде графика изменяющиеся курсы.
Запрашивать курсы будет обработчик ожидания, который мы назовем ВывестиКурсы(). Он будет подключаться по кнопке «Старт», а отключаться по кнопке «Стоп». Обработчик в свою очередь будет вызывать функцию в цикле запроса курса для конкретной компании, если она отмечена в списке. Лучше было бы, конечно, передавать и получать таблицу значений, но решил упростить алгоритм – это ведь промежуточный пример. Конечно же, курсы будет генерироваться на стороне web-сервиса генератором случайных чисел. Со стороны клиента же для нас нет разницы, потому что реальный курс обработка будет получать при помощи той же самой технологии. Интерфейс обработки — рисунки 2 и 3, код — рисунок 4. |
|
Рис. 2 |
||
Рис. 3 | ||
Рис. 4 | ||
На рисунке 5 листинг модуля «серверной» операции GetSharesTypesLis(). Остальные процедуры устроены также. | ||
Пару слов о WEB-сервисе на примере игры “Жизнь”
|
||
В общем-то, для понимания работы веб-сервиса этих двух примеров вполне достаточно (первую часть статьи о web-сервисах “ Веб-сервисы и 1С: «Здравствуй, Name», время – деньги и «Жизнь»” можно прочитать ЗДЕСЬ, но сначала планировался пример создания web-сервиса 1с на примере игры «Жизнь». Почему это стоит сделать? Потому что, во-первых, мы сможем смоделировать не только получение, но и отправку параметров в XML-строках, во-вторых это просто интересный пример.
Просто несколько фактов: - её правила очень просты, и при этом она более сорока лет привлекает внимание учёных. Игра «Жизнь» и её модификации повлияли на разделы таких наук, как математика, информатика, физика, например, теорию автоматов, теорию алгоритмов, математическое программирование, математическое моделирование, теорию графов, фрактальную геометрию и теорию принятия решений; - закономерности, обнаруженные при исследовании комбинаций, возникающих в ходе игры повлияли на исследования в области бактериологии, кристаллографии, электротехники, социологии, наномеханики и других фундаментальных областях научного знания - Фигура «glider» в 2003 году была предложена в качестве эмблемы хакеров |
||
Альберт Хайров, разработчик компании ООО «Кодерлайн»
|
||
Реализация - в третьей части.
|