ИНСТРУМЕНТАРИЙ

Платформа "1С: Предприятие 8.0" (1СП8) пополнилась еще одним важным технологическим компонентом: в феврале фирма "1С" объявила о выпуске продукта "1С: Предприятие 8.0. Web-расширение 1.0" (1СП8-Web), предназначенного для организации взаимодействия Интернет-пользователей с прикладными решениями на базе 1СП8.

Говоря об 1СП8-Web как о составной части технологической платформы, следует сразу сделать одно замечание. В несколько упрощенном виде платформа 1СП8 состоит из двух основных блоков: среды исполнения ("1С: Предприятие") и инструмента для разработки прикладных решений ("Конфигуратор"). Соответственно, все технологические и функциональные элементы 1СП8 (например, механизмы управления бизнес-процессами, обмена данными, формирования отчетов) реализованы в виде внутренних программных компонентов, входящих в состав первого или второго блока.

Более того, оба эти блока не являются самостоятельными продуктами - они распространяются только в составе тех или иных прикладных, т. е. предназначенных для конечных пользователей, решений. Отличительная же черта 1СП8-Web заключается как раз в том, что он представляет собой автономный продукт, ориентированный на разработчиков прикладных Интернет-решений (рис. 1)*1.

_____

*1 Правда, схема лицензирования продукта по-прежнему ориентирована на конечного пользователя: для эксплуатации Web-приложений, разработанных с помощью Web-расширения, требуется отдельная лицензия на 1СП8-Web.

Рис. 1. Положение "1C:Web-расширения" в системе "1С: Предприятие 8.0"

Существует и еще один важный момент: выпуск 1СП8-Web, судя по всему, отражает начало этапа активного освоения Интернет-технологий пользователями программ "1С" делового назначения.

Здесь нужно отметить тот известный факт, что "1С" отличается весьма прагматичным подходом к использованию технологических новинок в своем ПО: определяющим моментом является реальная готовность заказчиков к их применению, а не соображения моды. В частности, в то время как конкурирующие ERP-решения (в первую очередь зарубежные) все активнее предлагали заказчикам сначала пользовательский Web-интерфейс, а потом и наборы Web-сервисов, разработчики из "1С" придерживались более консервативной стратегии (как наиболее соответствующей потребностям российского рынка) с ориентацией на "толстого" клиента и эволюционное смещение от файл-серверной архитектуры к клиент-серверной.

Возможность клиентского Web-доступа к приложениям "1С: Предприятие" появилась только весной 2000 г., когда был выпущен компонент "Web-расширение" для платформы версии 7.7. Однако уже тогда можно было сказать, что данное решение скорее напоминало пробный шар для оценки готовности партнеров и заказчиков к использованию Интернет-технологий, нежели продукт, нацеленный на коммерческий успех (см. PC Week/RE, N 46/2000, с. 45).

В нем была использована технология ASP, позволяющая написать код активных страниц на внутреннем языке 1С:V7Script. Однако вся разработка ASP-страниц должна была выполняться исключительно "руками", без применения каких бы то ни было специальных средств. Очевидно, что такие дедовские методы были непригодны для создания сложных Web-приложений и могли применяться лишь в ограниченных масштабах. Тем не менее с помощью этого варианта Web-расширения целый ряд компаний-разработчиков не только получал собственные продукты, но и реализовывал некоторые проекты и тиражные решения.

Вполне очевидно, что с точки зрения архитектуры платформа 1СП8 в целом по-прежнему ориентируется на традиционную модель "толстого" (или, как сейчас говорят, "функционально-насыщенного") клиента. Ключевые прикладные решения, выпускаемые "1С", не предусматривают применения Web-клиентов в стандартном исполнении*1. И в этом плане очень характерно, что сегодня поддержка Интернет-технологий реализована в виде средств разработчика: освоение новых для 1СП8 сфер применения, как обычно, будет пока вестись силами наиболее "продвинутых" партнеров. При этом нынешний вариант Web-расширения - это качественно более мощный (по сравнению с 7.7) инструмент, который позволяет решать довольно широкий круг задач, связанных с использованием Интернет-технологий, - начиная от обеспечения клиентского Web-доступа и заканчивая интеграцией с внешними приложениями.

_____

*1 В начале года "1С" с помощью 1СП8-Web выпустила первое Web-приложение - "Удаленный склад", которое работает совместно с конфигурацией "Управление торговлей".

Архитектура и состав Web-расширения

Предварительная информация о новой версии 1СП8-Web была представлена фирмой "1С" еще на прошлогоднем летнем партнерском семинаре. Учитывая ориентацию экономических программ "1С" на операционную платформу Microsoft, применение технологии ASP. NET для построения Web-приложений не было неожиданным. Интересно было другое: каким образом обеспечивается ее интеграция с 1СП8?

Напомним, что старая ASP-технология, использованная в версии Web-расширения 7.7, позволяла с помощью механизма Active Scripting подключать различные движки исполнения кода на скриптовых языках. В результате разработчики на подмножестве знакомого им языка 1СV7 могли создавать ASP-код, который фактически выполнялся непосредственно в среде "1С:Предприятия", напрямую взаимодействуя со всеми объектами и функциями прикладного решения и платформы.

ASP.NET устроен принципиально иначе: писать код разрешается на разных языках, но скомпилированная программа может исполняться только в операционной среде .NET Framework. Очевидно, что в этих условиях создание специализированного языка типа1CV8.NET просто не имело смысла, так как он все равно не мог бы обращаться к функционалу 1СП8 напрямую.

Соответственно, в основе концепции 1СП8-Web лежит стандартная технология создания ASP.NET-приложений, дополненная программными компонентами 1СП8, которые обеспечивают, с одной стороны, привычный для пользователя 1СП8 клиентский интерфейс, а с другой - взаимодействие с базой данных и с функционалом прикладного решения (рис. 2).

Рис. 2. Общая схема взаимодействия компонентов "1С:Web-расширения"

Пользовательский интерфейс и бизнес-логика создаются в рамках технологии ASP.NET (приложение типа Web Forms). Для программирования разрешается применять любой .NET-язык, но наиболее востребованными скорее всего будут Visual Basic .NET и C#. Желающие сэкономить деньги на покупке инструментария и "покодировать руками" могут воспользоваться бесплатным набором SDK .NET Framework. Хотя, конечно, гораздо лучше обратиться к более эффективным средствам - MS Visual Studio .NET или инструментам Borland (Delphi, C#Builder).

Сами авторы 1СП8-Web рекомендуют для программирования использовать C# (демонстрационный пример, шаблоны и конструкторы ориентированы на этот язык). Для создания Web-приложений на базе 1СП8-Web вполне достаточно редакции Visual C# Standard Edition стоимостью немногим выше 100 долл. В то же время отметим, что для более широкого применения нового продукта было бы полезно сделать и вариант для Visual Basic .NET, который в нашей стране представлен русскоязычной версией (см. PC Week/RE, N 19/2004, с.1).

В комплект поставки продукта "1С:Предприятие 8.0. Web-расширение 1.0" входят:

2 компоненты для доступа к данным;

- компоненты для создания отчетов;

- элементы управления для создания пользовательского Web-интерфейса;

- конструкторы для создания приложений и отдельных форм;

- пример Web-приложения, предназначенный для демонстрации приемов разработки.

Рекомендованная розничная цена - 750 долл.

Дополнительная информация о продукте - на сайте www.v8.1c.ru/overview/ WEB.htm.

Одна из целей 1СП8-Web - повысить эффективность разработки Web-приложений в среде VS.NET с учетом специфики прикладных решений семейства 1СП8. Большинство компонентов 1СП8-Web, реализованных в виде элементов управления, предназначено именно для решения этой задачи: они позволяют строить пользовательский интерфейс и обрабатывать данные в традиционном стиле "1С: Предприятия" (рис. 3). При этом разработчик может самостоятельно создавать Web-формы или использовать те, которые автоматически генерируются системой на основе структуры прикладного решения 1СП8. Во втором случае обеспечивается простая адаптация Web-решения при внесении изменений в хост-приложение.

Рис. 3. Web-приложение имеет интерфейс в стиле "1С: Предприятия"

С учетом того, что применение Web-расширения чаще всего связано с задачами презентации и анализа данных, в состав 1СП8-Web включен также набор компонентов для создания аналитических отчетов, опирающийся на мощные механизмы 1СП8. В частности, пользователь Web-приложения с помощью инструмента "построитель отчета" может визуально настроить исходный текст запроса и получить оформленный результат его обработки - при этом поддерживается механизм расшифровок для детализации полученных данных.

Но все перечисленные выше средства могут лишь повысить эффективность разработки Web-приложения. Главная же технологическая задача 1СП8-Web - реализовать механизм взаимодействия собственно с информационной базой прикладного решения (см. рис. 2) - метаданными, COM-соединениями и объектами доступа к данным.

Метаданные содержат сведения о структуре прикладного решения и его информационной базы. Они автоматически генерируются при создании Web-приложения и хранятся в подключаемых к проекту файлах (DLL и XML). Кроме того, если конфигурация информационной базы была изменена, утилита генерации метаданных может быть запущена и отдельно.

Для доступа к функционалу прикладного решения (в том числе к информационным базам) используются COM-соединения - универсальный низкоуровневый программный интерфейс для интеграции 1СП8 с внешними приложениями. Это наиболее эффективный инструмент организации взаимодействия программ. В частности, возможность сохранения пула открытых COM-соединений для их повторного использования позволяет экономить ресурсы Web-сервера и уменьшает время отклика системы.

Однако с точки зрения оптимизации процесса разработки к данным 1СП8 лучше всего обращаться через высокоуровневый слой специализированных объектов ADO.NET. Их применение позволяет реализовать эффективное взаимодействие с компонентами бизнес-логики и визуального интерфейса. Кроме того, с помощью таких объектов можно не только получать данные, но и модифицировать их. Получение данных возможно в двух режимах: в режиме таблицы, реализующем технику объектного доступа к информации, и в режиме запроса, который позволяет полностью использовать функции языка запросов 1СП8. Модификация данных (добавление, изменение и удаление) выполняется только в режиме таблицы.

Подводя итог, можно сказать, что в составе 1СП8-Web разработчик получает в свое распоряжение дополнительный набор программных объектов (см. рис. 4):

- провайдер доступа к базам данных 1СП8 через механизм ADO.NET;

- источники данных - специализированные объекты, реализующие стандартную логику форм различного типа и использующие в своей работе базовые объекты ADO.NET;

- элементы управления, применяемые для формирования пользовательского интерфейса и обеспечения работы пользователя с данными;

- автоформы - формы, создаваемые автоматически на основе информации, получаемой от прикладного решения;

- шаблоны и конструкторы для создания форм объектов и приложений средствами Visual Studio .NET.

Рис. 4. Подключение дополнительных компонентов "1С: Web-расширения"

к среде Visual Studio .NET

Кроме построения пользовательского интерфейса 1СП8-Web поддерживает создание Web-сервисов, предназначенных для доступа к функциональности прикладных решений 1СП8. При этом Web-сервисы можно создавать как "вручную", так и с применением специальных шаблонов, которые тоже включены в комплект поставки.

Расширение не только для Web

Все годы своего существования (с начала 90-х) платформа "1С: Предприятие" динамично развивалась, предоставляя разработчикам все больше возможностей для расширения функционала готовых и создания собственных прикладных решений. Можно с уверенность сказать, что абсолютному большинству партнеров и заказчиков "1С" для решения своих задач было вполне достаточно внутренних инструментов платформы.

Не удивительно, что пять лет назад ключевой идеей "1С:Web-расширения" версии 7.7 было как раз максимальное использование традиционных средств "1С". Однако такой подход позволил решить только задачу клиентского Web-доступа к основному функционалу прикладных решений, а отсутствие в Web-расширении современных RAD-инструментов сдерживало применение этой технологии на массовом уровне или для создания более сложных Web-приложений.

В новой версии ставка сделана на использование стандартных индустриальных инструментов, что представляется принципиально верным решением. (Кажется, это первый случай в практике "1С", когда она пошла по пути адаптации под собственную платформу средств разработки третьих фирм.) Такой подход позволяет "1С"-разработчикам выйти за рамки своих традиционных средств и расширяет их функциональные и технологические возможности за счет использования всей мощи платформы .NET.

В нынешнем варианте 1СП8-Web значительная часть инструментария предназначена для программирования Web-интерфейса, но наиболее важным все же видится набор компонентов для работы с данными, который фактически представляет собой интерфейс между платформами 1СП8 и .NET. С его помощью разработчики помимо возможности реализации собственно Web-приложений могут уже сегодня создавать весь спектр программ, реализуемых в среде .NET, включая Web-решения для мобильных клиентских устройств, обычные Windows-приложения, Web-сервисы, .NET-компоненты и пр. Не говоря уже о том, что VS.NET обладает широким спектром средств (в том числе третьих фирм) взаимодействия с различными источниками данных и приложениями. Обратим внимание и на другую особенность данного продукта: он открывает доступ к функционалу прикладных решений 1СП8 и для "не-1С"-программистов.

Таким образом, 1СП8-Web может стать важным технологическим элементом интеграции платформы "1С: Предприятие" с широким спектром внешних ИТ-ресурсов. Представляется вполне вероятным, что развитие будет идти именно в этом направлении и в следующих версиях продукта поддержка работы "1С"-программистов в среде .NET будет усилена.