Тел.:
(495) 220-50-32
ICQ:
410142143
E-mail: info@abs1c.ru
1C Web-расширение, -- это действительно очень интересная и перспективная технология, которая может существенно повысить эффективность применения прикладных решений 1С:Предприятия.
Web-расширение, представленное сегодня версией 1.1, содержит несколько примеров его применения, в том числе демонстрационное Web-приложение и демонстрационная информационная база, а также некоторые готовые к использованию прикладные средства. Есть и достаточно подробная печатная документация, которой мы сейчас и воспользуемся для демонстрации точки входа в Web-технологии 1С:Предприятия.
Что нужно для работы?
Все перечисленное должно находиться на компьютере разработчика, а потом -- и на действующем Web-сервере (правда, от Web-расширения здесь нужны только модели исполнения). На ПК пользователя должен работать любой Web-браузер, желательно MS Internet Explorer версии 5.5 и старше.
Строго говоря, для программирования можно использовать бесплатный набор SDK .NET Framework. Но в этом случае весь код придется писать руками в обычном текстовом редакторе. В общем-то, такой вариант можно использовать, например, для создания простых Web-сервисов (им не нужен визуальный пользовательский интерфейс). Но все-таки лучше применить любой инструмент, поддерживающий технологию ASP.NET, а самый лучший вариант -- это применение Visual Studio 2003. Во всяком случае, все примеры и шаблоны Web-расширения рассчитаны на работу c VS 2003 и C#.
Создание Web-приложения с помощью конструктора
Запустите VS 2003. Далее следуйте по шагам.
Шаг 1. Создание проекта. Для создания нового Web-приложения выберем команду File | New | Project..., а затем -- тип проекта Visual C# Projects. В окне шаблонов вы увидите дополнительные шаблоны, которые прописало установленное Web-расширение -- V8 Web Application и V8 Web Service. Укажите сейчас первых из них.
После выбора типа проекта создается каталог проекта и в среде VS открывается новая Web-форма. Конструктор Web-приложения при этом продолжит работу и через несколько секунд предложит выбрать информационную базу, данные которой будут использованы в создаваемом Web-приложении. В этом списке автоматически приведены все базы, которые имеются в установленном на данном компьютере 1С:Предприятии. В этом же окне можно будет при необходимости задать параметры соединения (имя и пароль пользователя). После установки соединения с информационной базой и импорта метаданных новая Web-форма будет открыта для редактирования.
Шаг 2. Создание Web-формы. Для этого следует выполнить команду меню Project | Add New Item. Сейчас мы будем использовать вариант формы списка (например, список документов РасходнаяНакладная). Для этого в открывшемся окне в секции Категории нужно выбрать Web Project Items | V8, а потом указать шаблон V8 List Form.
Далее вам будет предложено выбрать нужную таблицу (виртуальную или реальную) информационной базы и указать поля, которые должны быть отображены в создаваемой форме.
Нажмем Готово, и конструктор создаст новую Web-форму, в которой будут расположены следующие элементы:
Шаг 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.config, и в дальнейшем все обращения к информационной базе идут от этого пользователя. Если такая схема работы не устраивает, то существуют возможности проводить так называемую аутентификацию на основе форм (пример приведен в документации) или задействовать механизм заимствования прав (impersonate -- стандартная возможность ASP.NET). Кроме того, в конфигурационном файле можно задать ограничения на доступ к различным ресурсам (страницам) для определенных пользователей. Это опять же стандартная возможность ASP.NET.
Разумеется, здесь мы привели простейший пример создания Web-приложения для работы с 1С:Предприятием. Дальше (с помощью документации, где это описано достаточно подробно) вы можете разрабатывать все более сложные и функционально насыщенные программы, в том числе с использованием Web-отчетов и Web-диаграмм, на базе различных объектов (для работы с данными и для построения пользовательского интерфейса), включенных в состав Web-расширения.
Отметим, что Web-расширение содержит набор форм по умолчанию, которые используются, когда запрашивается доступ к данным, для которых разработчик не предусмотрел собственных форм. Что же касается взаимодействия с 1С:Предприятием, то оно поддерживается автоматически на основе метаданных системы с применением специальных шаблонов. Но кроме того, имеется утилита генерации метаданных, которая может быть запущена отдельно в случае изменения конфигурации информационной базы данных <<1С:Предприятия>>.
В целом же <
Работа с простейшим Web-сервисом
Сама по себе идея технологии Web-сервисов очень проста: по сути, каждый Web-сервис -- это удаленная функция, к которой можно обратиться через Web, передав некоторый набор входных параметров и получив в ответ выходные значения. То есть если Web-приложение предназначено для организации пользовательского интерфейса к системе через Web-браузер, то Web-сервис нужен для программного доступа со стороны других приложений с использованием Интернет-протоколов.
В целом разработка Web-сервиса гораздо проще, чем Web-приложения, как раз потому, что у него нет пользовательского интерфейса, а есть одна или несколько входных точек внешнего доступа. На практике мы часто используем термин <<сервис-ориентированное приложение>>, имея при этом в виду взаимосвязанный набор Web-функций, позволяющий внешней системе реализовать выполнение на их основе достаточно сложных прикладных задач.
В простейшем случае Web-сервис -- это отдельный файл с расширением .asmx, для создания которого не нужны специальные средства разработки (Visuаl Studio). Пример Web-сервиса, выполняющего доступ к встроенной функции <<ЧислоПрописью>> системы <<1С:Предприятие>>, приведен в листинге 1.
Но все-таки даже для создания таких простых функций (не говоря уже о более сложных) удобнее воспользоваться средой Visual Studio. В ней автоматически выполняются различные настройки, в описании которых вручную очень легко допустить ошибку. Делается это примерно так же, как при создании Web-приложения, но только при создании нового проекта нужно выбрать в качестве шаблона <
Но как мы уже говорили, назначение Web-сервиса -- это возможность обращения к нему из любых других приложений, поддерживающих эту технологию. Вот как это может выглядеть с помощью Visual Studio 2003. Запустив этот инструмент, выберем вариант создания простейшего консольного проекта и вызовем команду Add Web Reference. При этом нужно указать, где искать необходимый Web-сервис -- на данном локальном компьютере или через механизм UDDI где-то еще (в локальной или в глобальной сети). Когда мы определим адрес (в данном случае -- на нашем компьютере), то сразу увидим список доступных Web-сервисов. Выберем нужную функцию и нажмем <
Само <<1С:Предприятие>> не содержит встроенных средств для организации клиентского доступа к Web-сервисам, но для этого может быть использован бесплатный набор Microsoft SOAP Toolkit 3.0, который можно скачать с сайта http://msdn.microsoft.com/WebServices/downloads. Обращение же к тому же простейшему Web-сервису на встроенном языке <<1С:Предприятия>> приводится в листинге 2.
В этой статье мы весьма схематично рассмотрели лишь общие подходы к работе с <<1С:Web-расширением>>. На практике нужно учитывать еще довольно много нюансов, в частности вопросы безопасности, аутентификации пользователей, повышения эффективности взаимодействия с <<1С:Предприятием>> и т. д. Но все это -- вопросы, решение которых хорошо описано в документации. Так что начинайте работать с <