Как разработать web приложение и остаться 1с ником
Прямая ссылка:
BB-код для форумов и блогов:
HTML-код:
Совместная работа разработчиков. Используем стороннюю программу на примере KDiff3, для сравнения и объединения конфигураций, внешних обработок и отчетов.
Елена Скворцова, 1С:Эксперт по технологическим вопросам, архитектор в нашей компании, в совместном проекте с Учебным центром №1 1С записала цикл видеолекций, посвященных подготовке к практической части экзамена по сертификации 1С:Эксперт. В этих видео рассматриваются аналоги вопросов и задач, которые встречаются на реальных экзаменах. Рассматриваются различные примеры их решения и сопутствующие вопросы, часто возникающие в связи с этим. Это видео - третье из пяти: "3. Избыточные блокировки. Откуда возникают и что с ними делать". В последнем видео, посвященном анализу блокировок, посмотрим на них с другой стороны - стороны MS SQL Server, и расследуем эскалацию блокировки.
Елена Скворцова, 1С:Эксперт по технологическим вопросам, архитектор в нашей компании, в совместном проекте с Учебным центром №1 1С записала цикл видеолекций, посвященных подготовке к практической части экзамена по сертификации 1С:Эксперт. В этих видео рассматриваются аналоги вопросов и задач, которые встречаются на реальных экзаменах. Рассматриваются различные примеры их решения и сопутствующие вопросы, часто возникающие в связи с этим. Это видео - второе из пяти: "Управляемые взаимоблокировки. Причины, виды и способы устранения". Вспоминаем природу возникновения взаимоблокировок, расследуем и устраняем два реальных конфликта управляемых блокировок.
Елена Скворцова, 1С:Эксперт по технологическим вопросам, архитектор в нашей компании, в совместном проекте с Учебным центром №1 1С записала цикл видеолекций, посвященных подготовке к практической части экзамена по сертификации 1С:Эксперт. В этих видео рассматриваются аналоги вопросов и задач, которые встречаются на реальных экзаменах. Рассматриваются различные примеры их решения и сопутствующие вопросы, часто возникающие в связи с этим. Это видео - первое из пяти: "Ожидания на управляемых блокировках. Назначение, возможности и механизм работы" Повторяем теоретические основы управляемых блокировок и их применяем знания на практике, расследуя управляемый тайм-аут.
Прямая ссылка:
BB-код для форумов и блогов:
HTML-код:
Совместная работа разработчиков. Используем стороннюю программу на примере KDiff3, для сравнения и объединения конфигураций, внешних обработок и отчетов.
Елена Скворцова, 1С:Эксперт по технологическим вопросам, архитектор в нашей компании, в совместном проекте с Учебным центром №1 1С записала цикл видеолекций, посвященных подготовке к практической части экзамена по сертификации 1С:Эксперт. В этих видео рассматриваются аналоги вопросов и задач, которые встречаются на реальных экзаменах. Рассматриваются различные примеры их решения и сопутствующие вопросы, часто возникающие в связи с этим. Это видео - третье из пяти: "3. Избыточные блокировки. Откуда возникают и что с ними делать". В последнем видео, посвященном анализу блокировок, посмотрим на них с другой стороны - стороны MS SQL Server, и расследуем эскалацию блокировки.
Елена Скворцова, 1С:Эксперт по технологическим вопросам, архитектор в нашей компании, в совместном проекте с Учебным центром №1 1С записала цикл видеолекций, посвященных подготовке к практической части экзамена по сертификации 1С:Эксперт. В этих видео рассматриваются аналоги вопросов и задач, которые встречаются на реальных экзаменах. Рассматриваются различные примеры их решения и сопутствующие вопросы, часто возникающие в связи с этим. Это видео - второе из пяти: "Управляемые взаимоблокировки. Причины, виды и способы устранения". Вспоминаем природу возникновения взаимоблокировок, расследуем и устраняем два реальных конфликта управляемых блокировок.
Елена Скворцова, 1С:Эксперт по технологическим вопросам, архитектор в нашей компании, в совместном проекте с Учебным центром №1 1С записала цикл видеолекций, посвященных подготовке к практической части экзамена по сертификации 1С:Эксперт. В этих видео рассматриваются аналоги вопросов и задач, которые встречаются на реальных экзаменах. Рассматриваются различные примеры их решения и сопутствующие вопросы, часто возникающие в связи с этим. Это видео - первое из пяти: "Ожидания на управляемых блокировках. Назначение, возможности и механизм работы" Повторяем теоретические основы управляемых блокировок и их применяем знания на практике, расследуя управляемый тайм-аут.
Одной из приятных особенностей технологии 1С:Предприятие является то, что прикладное решение, разработанное по технологии управляемых форм, может запускаться как в тонком (исполняемом) клиенте под Windows, Linux, MacOS X, так и как веб-клиент под 5 браузеров – Chrome, Internet Explorer, Firefox, Safari, Edge, и все это – без изменения исходного кода приложения. Более того – внешне приложение в тонком клиенте и в браузере функционирует и выглядит практически идентично.
Найдите 10 отличий (под катом 2 картинки):
Окно тонкого клиента на Linux:
То же окно в веб клиенте (в браузере Chrome):
Зачем мы сделали веб-клиент? Говоря несколько пафосно, такую задачу перед нами поставило время. Уже давно работа через Интернет стала необходимым условием для бизнес-приложений. Вначале мы добавили возможность работы через Интернет для нашего тонкого клиента (некоторые наши конкуренты, кстати, на этом и остановились; другие, напротив, отказались от тонкого клиента и ограничились реализацией веб-клиента). Мы же решили дать нашим пользователям возможность выбрать тот вариант клиента, который им подходит больше.
Добавление возможности работы через Интернет для тонкого клиента было большим проектом с полной сменой архитектуры клиент-серверного взаимодействия. Создание же веб-клиента — и вовсе новый проект, начинавшийся с нуля.
Постановка задачи
Итак, требования к проекту: веб-клиент должен делать то же самое, что и тонкий клиент, а именно:
- Отображать пользовательский интерфейс
- Исполнять клиентский код, написанный на языке 1С
Клиентский код на языке 1С может содержать в себе серверные вызовы, работу с локальными ресурсами (файлами и т.п.), печать и многое другое.
И тонкий клиент (при работе через веб), и веб-клиент пользуются одним и тем же набором веб-сервисов для общения с сервером приложений 1С. Реализация у клиентов, конечно, разная – тонкий клиент написан на С++, веб-клиент – на JavaScript.
Немного истории
Проект создания веб-клиента стартовал в 2006 году, в нем (в среднем) участвовала команда из 5 человек. На отдельных этапах проекта привлекались разработчики для реализации специфической функциональности (табличного документа, диаграмм и т.д.); как правило, это были те же разработчики, что делали эту функциональность в тонком клиенте. Т.е. разработчики заново писали на JavaScript компоненты, ранее созданные ими на C++.
С самого начала мы отвергли идею какой-либо автоматической (хотя бы частичной) конверсии C++ кода тонкого клиента в JavaScript веб-клиента ввиду сильных концептуальных различий этих двух языков; веб-клиент писался на JavaScript с чистого листа.
В первых итерациях проекта веб-клиент конвертировал клиентский код на встроенном языке 1С непосредственно в JavaScript. Тонкий клиент поступает иначе — код на встроенном языке 1С компилируется в байт-код, и затем этот байт-код интерпретируется на клиенте. Впоследствии так же стал делать и веб-клиент – во-первых, это дало выигрыш в производительности, во-вторых – позволило унифицировать архитектуру тонкого и веб-клиентов.
Первая версия платформы 1С:Предприятие с поддержкой веб-клиента вышла в 2009 году. Веб-клиент на тот момент поддерживал 2 браузера – Internet Explorer и Firefox. В первоначальных планах была поддержка Opera, но из-за непреодолимых на тот момент проблем с обработчиками закрытия приложения в Opera (не удавалось со 100%-ной уверенностью отследить, что приложение закрывается, и в этот момент произвести процедуру отключения от сервера приложений 1С) от этих планов пришлось отказаться.
Структура проекта
Всего в платформе 1С:Предприятие есть 4 проекта, написанных на JavaScript:
- WebTools – общие библиотеки, используемые остальными проектами (сюда же мы включаем Google Closure Library).
- Элемент управления ФорматированныйДокумент (реализован на JavaScript и в тонком клиенте, и в веб-клиенте)
- Элемент управления Планировщик (реализован на JavaScript и в тонком клиенте, и в веб-клиенте)
- Веб-клиент
Структурно веб-клиент по-крупному разделяется на следующие подсистемы:
- Управляемый интерфейс клиентского приложения
- Общий интерфейс приложения (системные меню, панели)
- Интерфейс управляемых форм, включающий, в том числе, около 30 элементов управления (кнопки, различные типы полей ввода – текстовые, цифровые, дата/время и пр., таблицы, списки, графики и т.д.)
- Работа с криптографией
- Работа с файлами
- Технология внешних компонент, позволяющая их использовать как в тонком, так и веб-клиенте
Особенности разработки
Реализация всего вышеописанного на JavaScript – дело непростое. Возможно, веб-клиент 1С – одно из самых больших client-side приложений, написанных на JavaScript – около 450.000 строк. Мы активно используем в коде веб-клиента объектно-ориентированный подход, упрощающий работу с таким большим проектом.
Для минимизации размера клиентского кода мы вначале использовали свой собственный обфускатор, а начиная с версии платформы 8.3.6 (октябрь 2014) стали использовать Google Closure Compiler. Эффект использования в цифрах – размер фреймворка веб-клиента после обфускации:
- Собственный обфускатор – 1556 кб
- Google Closure Compiler – 1073 кб
Google Closure Compiler очень хорошо работает с объектно-ориентированным кодом, поэтому его эффективность именно для веб-клиента максимально высокая. Closure Compiler делает для нас несколько хороших вещей:
- Статическая проверка типов на этапе сборки проекта (обеспечивается тем, что мы покрываем код аннотациями JSDoc). В итоге получается статическая типизация, очень близкая по уровню к типизации в С++. Это помогает отловить достаточно большой процент ошибок на стадии компиляции проекта.
- Уменьшение размера кода через обфускацию
- Ряд оптимизаций выполняемого кода, например, такие как:
- inline-подстановки функций. Вызов функции в JavaScript – достаточно дорогая операция, и inline-подстановки часто используемых небольших методов существенно ускоряют работу кода.
- Подсчет констант на этапе компиляции. Если выражение зависит от константы, в него будет подставлено фактическое значение константы
Для анализа кода мы используем SonarQube, куда интегрируем статические анализаторы кода. С помощью анализаторов мы отслеживаем деградацию качества исходного кода на JavaScript и стараемся ее не допускать.
Какие задачи решали/решаем
В ходе реализации проекта мы столкнулись с рядом интересных задач, которые нам пришлось решать.
Обмен данными с сервером и между окнами
Существуют ситуации, когда обфускирование исходного кода может помешать работе системы. Код, внешний по отношению к исполняемому коду веб-клиента, вследствие обфускации может иметь имена функций и параметров, отличающиеся от тех, которые наш исполняемый код ожидает. Внешним кодом для нас является:
- Код, приходящий с сервера в виде структур данных
- Код другого окна приложения
А чтобы избежать обфускации при взаимодействии с другими окнами мы используем так называемые экспортируемые интерфейсы (интерфейсы, у которых все методы являются экспортируемыми).We used Virtual DOM before it became mainstream)
Как и все разработчики, имеющие дело со сложным Веб UI, мы быстро поняли, что DOM плохо подходит для работы с динамическим пользовательским интерфейсом. Практически сразу был реализован аналог Virtual DOM для оптимизации работы с UI. В процессе обработки события все изменения DOM запоминаются в памяти и, только при завершении всех операций, накопленные изменения применяются к DOM-дереву.
Оптимизация работы веб-клиента
Чтобы наш веб-клиент работал быстрее, мы по максимуму стараемся задействовать штатные возможности браузера (CSS и т.п.). Так, командная панель формы (расположенная практически на каждой форме приложения) отрисовывается исключительно средствами браузера, динамической версткой на базе CSS.
Тестирование
Для функционального тестирования и тестирования производительности мы используем инструмент собственного производства (написанный на Java и C++), а также набор тестов, построенных на базе Selenium.
Наш инструмент универсален – он позволяет тестировать практически любые оконные программы, а потому подходит для тестирования как тонкого клиента, так и веб-клиента. Инструмент записывает действия пользователя, запустившего прикладное решение «1С», в файл-сценарий. В это же время происходит запись изображений рабочей области экрана — эталонов. При контроле новых версий веб-клиента сценарии проигрываются без пользовательского участия. В случаях несовпадения скриншота с эталонным на каком-либо шаге тест считается провалившимся, после чего специалист по качеству проводит расследование – ошибка это или запланированное изменение поведения системы. В случае запланированного поведения эталоны автоматически подменяются на новые.
Инструмент также проводит замеры производительности приложений с точностью до 25 миллисекунд. В ряде случаев мы закольцовываем части сценария (например, несколько раз повторяем ввод заказа) для анализа деградации времени выполнения со временем. Результаты всех замеров записываются в лог для анализа.
Наш инструмент тестирования и тестируемое приложениеНаш инструмент и Selenium дополняют друг друга; например, если какая-то кнопка на одном из экранов поменяла свое местоположение – Selenium это может не отследить, но наш инструмент заметит, т.к. делает попиксельное сравнение скриншота с эталоном. Также инструмент в состоянии отследить проблемы с обработкой ввода с клавиатуры или мыши, так как именно их он и воспроизводит.
Тесты на обоих инструментах (нашем и Selenium) запускают типовые сценарии работы из наших прикладных решений. Тесты автоматически запускаются после ежедневной сборки платформы «1С:Предприятие». В случае замедления работы сценариев (по сравнению с предыдущей сборкой) мы проводим расследование и устраняем причину замедления. Критерий у нас простой – новая сборка должна работать не медленнее предыдущей.
Для расследования инцидентов замедления работы разработчики используют разные инструменты; в основном используется Dynatrace AJAX Edition производства компании DynaTrace. Проводится запись логов выполнения проблемной операции на предыдущей и на новой сборке, затем логи анализируются. При этом время выполнения единичных операций (в миллисекундах) может не быть решающим фактором – в браузере периодически запускаются служебные процессы типа уборки мусора, они могут наложиться на время выполнения функций и исказить картину. Более релевантными параметрами в этом случае будет количество выполненных инструкций JavaScript, количество атомарных операций над DOM и т.п. Если количество инструкций/операций в одном и том же сценарии в новой версии увеличилось – это почти всегда означает падение быстродействия, которое нужно исправлять.
Расширения браузеров
В случае, когда прикладному решению нужна функциональность, которой нет в JavaScript, мы используем расширения браузеров:
- для работы с файлами
- для работы с криптографией
- работа с внешними компонентами
При работе в Safari наши расширения используют NPAPI, при работе в Internet Explorer — технологию ActiveX. Microsoft Edge пока не поддерживает расширения, поэтому веб-клиент в нем работает с ограничениями.
Дальнейшее развитие
Одна из групп задач для команды разработки веб-клиента – это дальнейшее развитие функциональности. Функциональность веб-клиента должна быть идентична функциональности тонкого клиента, вся новая функциональность реализуется одновременно и в тонком, и в веб-клиенте.
Другие задачи — развитие архитектуры, рефакторинг, повышение производительности и надежности. Например, одно из направлений – дальнейшее движение в сторону асинхронной модели работы. Часть функциональности веб-клиента на настоящий момент построена на синхронной модели взаимодействия с сервером. Асинхронная модель сейчас становится в браузерах (и не только в браузерах) более актуальной, и это заставляет нас модифицировать веб-клиент путем замены синхронных вызовов на асинхронные (и соответствующего рефакторинга кода). Постепенный переход к асинхронной модели объясняется необходимостью поддержки выпущенных решений и постепенной их адаптации.
«1C Web-расширение», — это действительно очень интересная и перспективная технология, которая может существенно повысить эффективность применения прикладных решений «1С:Предприятия».
«Web-расширение», представленное сегодня версией 1.1, содержит несколько примеров его применения, в том числе демонстрационное Web-приложение и демонстрационная информационная база, а также некоторые готовые к использованию прикладные средства. Есть и достаточно подробная печатная документация, которой мы сейчас и воспользуемся для демонстрации «точки входа» в Web-технологии «1С:Предприятия».
Что нужно для работы?
Все перечисленное должно находиться на компьютере разработчика, а потом — и на действующем Web-сервере (правда, от «Web-расширения» здесь нужны только модели исполнения). На ПК пользователя должен работать любой Web-браузер, желательно MS Internet Explorer версии 5.5 и старше.
Создание Web-приложения с помощью конструктора
Запустите VS 2003. Далее следуйте по шагам.
Шаг 1. Создание проекта
После выбора типа проекта создается каталог проекта и в среде VS открывается новая Web-форма. Конструктор Web-приложения при этом продолжит работу и через несколько секунд предложит выбрать информационную базу, данные которой будут использованы в создаваемом Web-приложении. В этом списке автоматически приведены все базы, которые имеются в установленном на данном компьютере «1С:Предприятии». В этом же окне можно будет при необходимости задать параметры соединения (имя и пароль пользователя). После установки соединения с информационной базой и импорта метаданных новая Web-форма будет открыта для редактирования.
Шаг 2. Cоздание Web-формы
Для этого следует выполнить команду меню Project | Add New Item. Сейчас мы будем использовать вариант формы списка (например, список документов «РасходнаяНакладная»). Для этого в открывшемся окне в секции «Категории» нужно выбрать Web Project Items | V8, а потом указать шаблон V8 List Form.
Далее вам будет предложено выбрать нужную таблицу (виртуальную или реальную) информационной базы и указать поля, которые должны быть отображены в создаваемой форме.
Нажмем «Готово», и конструктор создаст новую Web-форму, в которой будут расположены следующие элементы:
- элемент управления V8CommandPanel (объект V8CommandPanel из пространства имен _1C.V8.WebControls) — аналог элемента управления «КоманднаяПанель» «1С:Предприятия 8»;
- элемент управления V8Grid (объект V8Grid из пространства имен _1C.V8.WebControls) — аналог элемента управления «ТабличноеПоле» «1С:Предприятия 8», позволяющий только просматривать данные (редактирование данных в этом элементе управления невозможно);
- элемент управления V8ListdataSource (объект V8ListdataSource из пространства имен _1C.V8.WebControls).
Шаг 3. Запуск на выполнение
Чтобы проверить созданную форму в работе, ее нужно установить в качестве стартовой страницы командой Project | Web Project | Set As Start Page, а затем запустить компиляцию и выполнение командой Debug | Start.
Разбор проделанной работы
Хотя мы потратили на создание этого Web-приложения не более одной минуты, выбрав только форму списка документа «РасходнаяНакладная», «Web-расширение» предоставило в наше распоряжение практически те же возможности по работе с данными информационной базы, что и система «1С:Предприятие».
Например, по двойному щелчку мышью в строке списка будет открыта форма выбранного документа. В данном случае используется форма, создаваемая Web-приложением по умолчанию, если происходит обращение к данным объектов, для которых разработчик не создал собственные формы. Аналогично, при попытке просмотреть данные контрагента, указанного в накладной, будет открыта форма по умолчанию элемента справочника «Контрагенты». Именно благодаря наличию механизма форм по умолчанию становится возможным использование команд добавления, изменения и копирования в элементе управления V8CommandPanel, расположенном в форме списка документов.
Вот и все. Теперь к этому Web-приложению сможет обратиться пользователь с любого ПК, имеющего Web-браузер и подключенного к Интернету. Для этого он должен просто ввести в строке адрес Web-приложения и его стартовой страницы.
Конечно, имеется еще несколько важных нюансов, например управления правами доступа.
Следует уточнить (это детально обсуждается в документации), что само Web-приложение выполняется от имени пользователя ASPNET (под Windows XP) или группы пользователей IIS_WPG (под Windows 2003). Перед созданием приложения необходимо этим пользователям дать полные права на каталог, в котором расположена информационная база.
Разумеется, здесь мы привели простейший пример создания Web-приложения для работы с «1С:Предприятием». Дальше (с помощью документации, где это описано достаточно подробно) вы можете разрабатывать все более сложные и функционально насыщенные программы, в том числе с использованием Web-отчетов и Web-диаграмм, на базе различных объектов (для работы с данными и для построения пользовательского интерфейса), включенных в состав «Web-расширения».
Отметим, что «Web-расширение» содержит набор форм по умолчанию, которые используются, когда запрашивается доступ к данным, для которых разработчик не предусмотрел собственных форм. Что же касается взаимодействия с «1С:Предприятием», то оно поддерживается автоматически на основе метаданных системы с применением специальных шаблонов. Но кроме того, имеется утилита генерации метаданных, которая может быть запущена отдельно в случае изменения конфигурации информационной базы данных «1С:Предприятия».
В целом же «Web-расширение», с одной стороны, позволяет эффективно создавать пользовательские интерфейсы различного назначения с широким набором возможностей, а с другой — имеет гибкие механизмы для работы с данными на более низком уровне.
Работа с простейшим Web-сервисом
Сама по себе идея технологии Web-сервисов очень проста: по сути, каждый Web-сервис — это удаленная функция, к которой можно обратиться через Web, передав некоторый набор входных параметров и получив в ответ выходные значения. То есть если Web-приложение предназначено для организации пользовательского интерфейса к системе через Web-браузер, то Web-сервис нужен для программного доступа со стороны других приложений с использованием Интернет-протоколов.
В целом разработка Web-сервиса гораздо проще, чем Web-приложения, как раз потому, что у него нет пользовательского интерфейса, а есть одна или несколько входных точек внешнего доступа. На практике мы часто используем термин «сервис-ориентированное приложение», имея при этом в виду взаимосвязанный набор Web-функций, позволяющий внешней системе реализовать выполнение на их основе достаточно сложных прикладных задач.
В простейшем случае Web-сервис — это отдельный файл с расширением .asmx, для создания которого не нужны специальные средства разработки (Visuаl Studio). Пример Web-сервиса, выполняющего доступ к встроенной функции «ЧислоПрописью» системы «1С:Предприятие».
Но как мы уже говорили, назначение Web-сервиса — это возможность обращения к нему из любых других приложений, поддерживающих эту технологию. Вот как это может выглядеть с помощью Visual Studio 2003. Запустив этот инструмент, выберем вариант создания простейшего консольного проекта и вызовем команду Add Web Reference.
При этом нужно указать, где искать необходимый Web-сервис — на данном локальном компьютере или через механизм UDDI где-то еще (в локальной или в глобальной сети). Когда мы определим адрес (в данном случае — на нашем компьютере), то сразу увидим список доступных Web-сервисов.
Выберем нужную функцию и нажмем «Add Reference» — у нас создастся код обращения к этому Web-сервису.
Прямо в редакторе кода введем какое-то числовое значение в параметрах вызываемой функции, запустим проект на выполнение и убедимся, что все работает, как задумано.
В этой статье мы весьма схематично рассмотрели лишь общие подходы к работе с «1С:Web-расширением». На практике нужно учитывать еще довольно много нюансов, в частности вопросы безопасности, аутентификации пользователей, повышения эффективности взаимодействия с «1С:Предприятием» и т. д. Но все это — вопросы, решение которых хорошо описано в документации. Так что начинайте работать с «Web-расширением» — и у вас все получится!
Сегодня WEB сервисы используются практически повсеместно – именно они предоставляют нам информацию о рейсах самолетов и поездов, курсах валют и погоде. Неудивительно, что и 1С обладает возможностью создания собственных WEB сервисов, позволяющих выступать как в роли поставщика, так и потребителя. Данный механизм встроен в платформу «1С:Предприятие 8.3» и разработчики могут добавлять даже в типовую конфигурацию собственные объекты типа «WEB-сервисы». Их архитектура построена на наборе сервисов, позволяющих обмениваться информацией с другим программным обеспечением.
Создание веб-сервиса 1С
Одним из главных преимуществ WEB-сервисов 1С является отсутствие необходимости давать прямой доступ к данным ИБ. Правильно настроенный веб-сервис 1С позволяет другим приложениям пользоваться функциями извне. В таких случаях определять право пользования данными по заданным параметрам должна сама функция по прописанным разработчиком правилам.
Как создавать веб-сервис в 1С?
Чтобы определенная функция системы 1С стала доступна внешнему ПО, необходимо выполнить следующий алгоритм действий:
Пример создания простого WEB-сервиса
Чтобы наиболее наглядно продемонстрировать работу механизма WEB-сервисов, создадим пример – функционал, определяющий длину введенной строки. Программное обеспечение передаст в качестве параметра запроса строку, а функция, описанная в 1С, вернет число символов. При создании нужно помнить, что публикация этого механизма даст возможность обращения к нему различного ПО. Так как не каждое ПО способно воспринимать кириллицу, будем называть объекты конфигурации, используя латинские знаки.
Открываем конфигуратор, находим в дереве ветку «WEB-сервисы» и добавляем новый сервис «wa_LengthString». Также необходимо на вкладке «Операции» добавить новую операцию. Назовем ее «CalcLengthString», в свойствах укажем тип возвращаемого значения – int или integer и создадим внутри нее параметр «InputString». Тип значения оставляем string.
Теперь необходимо прописать действие функции CalcLengthString в модуле WEB-сервиса. Для этого открываем свойства созданной функции и нажимаем кнопку в виде лупы справа, у поля ввода «Имя процедуры». 1С автоматически создаст функцию в модуле нашего WEB-сервиса и откроет его для того, чтобы мы описали действие CalcLengthString. Воспользуемся этим и напишем действие функции – определение длины вводимой строки.
Фактически на этом создание простейшего WEB-сервиса закончено. Теперь необходимо «выложить» этот сервис в общий доступ, чтобы стороннее ПО или другие системы 1С могли пользоваться данным функционалом.
Публикация веб-сервиса 1С
Для того чтобы мы смогли опубликовать созданный веб-сервис с его функциональностью, нам необходимо иметь доступ на сайт. Перед тем как мы начнем публикацию сервиса, необходимо проверить имя файла в свойствах созданного модуля wa_LengthString. Оно должно быть понятное, простое и иметь расширение «1cws».
Теперь настало время публиковать созданный нами WEB-сервис на сервере. Эта возможность появилась в версии платформы 8.3 и многие компании уже поняли всю пользу этого функционала. Для того чтобы приступить к публикации, необходимо в конфигураторе открыть форму «Администрирование/Публикация на веб-сервере…».
В открывшемся окне нам необходима настройка Web сервисов 1С и заполнение определенных полей:
- Имя. Обозначает папку на веб-сервере, в которой будет храниться описание нашего веб-сервиса. Будьте внимательны к регистрам, так как иногда серверы различают символы большого и малого регистра;
- Веб-сервер. Необходимо выбрать сервер из установленных на компьютере;
- Каталог. Вы должны выбрать путь к папке, где хранятся данные веб-сервера по настройке подключения. Используются исключительно латинские буквы;
- Два признака типа «Булево». Первый нам пригодиться, если необходимо настроить доступ через веб-клиент к конфигурации. Для того чтобы опубликовать сервис 1С, необходимо поставить вторую отметку.
Остается лишь проверить, что у нужного WEB-сервиса установлена галка в первом столбце, и нажать на «Опубликовать».
Проверить, опубликован ли ваш WEB-сервис на сервере, достаточно просто. Необходимо открыть любой браузер и в адресную строку вбить строчку типа:
В ответ на такой запрос адреса браузер должен отобразить структуру файла XML. Если же вы видите пустую страницу, ошибку или непонятные символы (проблемы с кодировкой), то нужно еще раз проверить все действия. Также не лишним будет убедиться, что сервер настроен верно, и у вас есть к нему доступ. После успешной публикации WEB-сервис 1С смогут использовать сторонние приложения.
Читайте также: