Интернет-технологии для работы с “1С:Предприятием”

Тема использования Интернет-технологий в информационных системах предприятий, казалось бы, довольно заезжена. Однако на самом деле мы находимся только на пороге их массового внедрения. Ведь сегодня в России онлайновым бизнесом занимается лишь небольшое число молодых специализированных компаний, доля которых в экономике страны пока еще близка к нулю. Широкое внедрение Интернета начнется лишь после того, как его возьмут на вооружение традиционные, оффлайновые фирмы. Именно тогда произойдет переход от “лабораторных” работ к “серийному производству”.

Схема работы Web-приложения в среде “1С:Предприятие”

В нужное время в нужном месте

Для меня одним из лучших индикаторов процессов, происходящих на российском компьютерном рынке, является бизнес компании “1С”, которая работает как раз на массовом рынке реального сектора экономики. Одна из причин ее успешной деятельности кроется в том, что она не поддается искушению применения новых технологий из соображений престижа и моды. “1С” выпускает свои новинки, точно рассчитав момент готовности потенциальных клиентов к их использованию. (После публикации статьи “Секрет Бориса Нуралиева” в PC Week/RE, № 35/2000 на сервере www.pcweek.ru была развернута интересная онлайновая дискуссия о “секретах”. На эту тему можно поговорить дополнительно, но некоторые авторы комментариев, похоже, забыли, что целью работы любой компании является получение прибыли и обеспечение устойчивости бизнеса, технологии - лишь средство достижения цели.)

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

Структура Web-компонента

Функциональную основу “1С:Предприятия” составляет набор библиотек - компонентов пакета (см. PC Week/RE, № 38/2000, c. 28). В отличие от них “Web-расширение” - это чисто технологический компонент, обеспечивающий связь самого приложения и Web-сервера. Он создан на основе технологии Active Server Pages (ASP) в среде Microsoft Internet Information Server (IIS) 4.0 или старше.

Такой выбор объясняется двумя взаимосвязанными причинами. С одной стороны, ASP - достаточно простое и эффективное серверное решение. Это в значительной степени предопределило популярность IIS, для которого данная технология является “родной”. С другой стороны, привязку именно к IIS специалисты “1С” объясняют доступностью этого пакета, а также желанием получить более эффективное решение, не гоняясь за платформной независимостью.

ASP представляет собой HTML-страницу с включенным в нее программным кодом (сценарием), описывающим алгоритм генерации динамической страницы. Обнаружив ASP, сервер передает ее программе-интерпретатору, выполняющей обнаруженный код и формирующей законченную HTML-страницу, которая затем отправляется сервером в браузер пользователя.

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

В общем виде при обработке страницы IIS передает в V7 Scripting Engine сформированный сценарий (просто складывая последовательные фрагменты кода), фактически представляющий собой модуль для исполнения в среде “1С:Предприятие”. Кроме того, IIS передает контекст страницы в виде набора доступных объектов, их библиотека также отправляет далее в “1С:Предприятие”. Соответственно все эти объекты становятся доступными для “1С:Предприятия” через свой встроенный объект ASP (он входит в состав Web-компонента). Через ASP-объект приложение может также вызывать процедуры и функции, реализованные на других языках сценариев. Объекты самого IIS - Request, Response, Application, Session и Server - доступны из сценария напрямую.

Общая схема разработки

Задача разработки Web-приложения заключается в создании комплекса ASP-страниц, обеспечивающих взаимодействие удаленного пользователя с некой конфигурацией, работающей в среде “1С:Предприятие”. Разумеется, возможны и специализированные конфигурации, предназначенные для работы в удаленном режиме.

Интерфейс Web-приложения для удаленного доступа к адресной книге (созданного за пару минут)

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

- незащищенной части, которую может просматривать любой пользователь;

- блока, обеспечивающего авторизацию пользователя;

- защищенной части, в которую пользователь попадает только после авторизации. Перемещения здесь производятся под постоянным контролем механизма авторизации с учетом полученных пользователем прав доступа.

Ниже приведен пример созданного буквально за несколько минут Web-приложения, представляющего ASP-страницу, с помощью которой пользователь через браузер сможет просматривать и редактировать содержимое справочника в приложении “Адресная книга”, работающем в среде “1C:Предприятие”.

Диалоговый интерфейс приложения “Удаленный склад”

Содержание ASP-страницы

<%@Language=V7Script%>

<html></head><body>

<form method=”GET” action=

”default.asp”>

<p>Имя адресата: <select size=”1” name=”name”>

<%

ТребИмя = Request.QueryString(”name”).Item;

Спр = СоздатьОбъект(”Справочник.АдреснаяКнига”);

Спр.ВыбратьЭлементы();

Пока (Спр.ПолучитьЭлемент() = 1) Цикл

Если (ТребИмя = Спр.Наименование) Тогда

%>

<option selected>

<%Иначе%>

<option>

<%КонецЕсли;%>

<%=Спр.Наименование%>

</option>

<% КонецЦикла;%>

</select>

<input type=”submit” value=”Спросить”></p>

<p>Телефон:

<%

Если (ТребИмя <> “”) Тогда

Спр.НайтиПоНаименованию(ТребИмя , 0, 1);

Если (Спр.Выбран() = 1) Тогда

Response.Write(Спр.ТелефонРабочий);

Иначе

Response.Write(”Адресат отсутствует”);

КонецЕсли;

КонецЕсли;

%>

</p>

</form>

</body></html>

Некоторые аналогии технологии разработки

Для понимания механизма работы Web-расширения следует вспомнить о технологии создания IIS-приложений в среде VB 6.0, представляющей собой некую смесь методов ISAPI и ASP (этот подход получит развитие в будущей версии VB 7.0).

В VB применяются готовые HTML-шаблоны для формирования динамических страниц. Но в отличие от обычной ASP программный код в нем физически отделен от пользовательского интерфейса (HTML-кода) и находится в виде формируемых ActiveX DLL. Этот программный код обрабатывает запросы, поступающие с браузера, и корректирует динамические страницы, меняя не только их содержание, но и (при необходимости) структуру.

Достоинства такого подхода - упрощение в среде VB отладки приложения и возможность создания повторно используемых компонентов. Хотя нужно отметить, что визуальные средства разработки Web-приложений в VB 6.0 пока откровенно слабы да и логика разработки - совсем не простая.

В случае “1С:Предприятия” программисту придется довольно много кода писать “руками”, без помощи со стороны интеллектуальной среды разработки. Но сама логика разработки выглядит достаточно понятной. При этом она, с одной стороны, нацелена на конкретное взаимодействие с прикладными конфигурациями из “1С:Предприятия”, а с другой - позволяет легко применять другие удобные средства программирования, в том числе те же JavaScript и VBcript. При этом специалисты “1C” подчеркивают, что они не стремятся конкурировать с существующими средствами написания Web-приложений. Задача более конкретная - открыть простой и удобный доступ к прикладным системам “1С:Предприятия” через Web.

Конечно, для создания серьезных Web-приложений желательно иметь специализированную среду для написания и отладки HTML-кода и V7Script-программы *1. Пока же можно предложить такой подход к разработке ASP-страниц, который применяется при выполнении аналогичных задач с помощью VB: сначала создается прототип программы с обычным интерфейсом (с использованием всех средств отладки “Конфигуратора”), а потом отлаженный код переносится в ASP-страницы.

_____

*1. До конца 2000 г. ожидается выпуск"1С:Web-расширения" версии 2.0 с расширенным ивозможностями разработки.

Примеры реализации технологии

Первый рабочий пример использования “Web-расширения” появился еще в марте нынешнего года: на сайте www.1c.ru/declaration можно было в автоматизированном режиме заполнить налоговые декларации. Это делалось с помощью Web-приложения, обеспечивающего доступ к соответствующим функциям программы “1С:Деньги” (реализованной на платформе “1С:Предприятие”).

Следует отметить, что применение Web-технологий в конкретных решениях возможно в трех основных вариантах:

- Интернет: возможность доступа к Web-ресурсам самого широкого числа посетителей. С точки зрения бизнес-применения речь идет об организации электронной коммерции и информационного обслуживания клиентов (Интернет-магазины, справочные службы и т. д.);

- экстранет: обеспечение информационного взаимодействия с определенным кругом партнеров и заказчиков (разнообразные порталы доступа к торговой и коммерческой организации и т. д.);

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

Фактически везде используются одинаковые технологические решения, различающиеся лишь уровнем защиты информации и авторизации доступа, а также показателями производительности. Пример с заполнением декларации является типичным Интернет-решением.

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

Второе Web-решение фирмы “1С” - “Удаленный склад” распространяется по подписке на компакт-дисках информационно-технического сопровождения. Этот продукт предназначен для связи с типовой конфигурацией “Торговля + Склад” (разумеется, ее нужно приобретать отдельно). В результате ее внедрения получается полнофункциональная система класса “интранет” для удаленной работы кладовщика торговой организации. Данное приложение также может служить образцом для создания собственных решений.

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

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

Примером коробочного решения на базе “1С:Web-расширения” является разработка петербургской компании “Аркадия” (совместно с “1С”) под названием “1С:Аркадия Интернет-магазин”. В целом реализация проекта выглядит вполне обычно: основные этапы покупки состоят в осмотре витрины (каталог товаров), наполнении корзины покупателя и оплаты заказанного товара. Владелец магазина может воспользоваться готовыми шаблонами для создания интерфейса или разработать его самостоятельно. Информация о реализованных на его основе проектах находится на сайте www.magazin.ru.