Главная страница Visual 2000 · Общий список статей
Интернет-технологии для работы с "1С:Предприятием"Андрей Колесов
© Андрей Колесов, 2000Казалось бы, тема использования Интернет-технологий...
Казалось бы, тема использования Интернет-технологий в информационных системах предприятий является довольно "заезженной". Однако на самом деле мы сейчас находимся только на пороге массового внедрения Интернет. Ведь сегодня в нашей стране онлайновым бизнесом занимаются лишь некоторое число специализированных "новых" компаний, доля которых в экономике слабо отличаема от нуля. Настоящее применение Интернет начнется лишь тогда, когда его возмут на вооружение традиционные, оффлайновые фирмы. Именно тогда начнется переход от "лабораторных" образцов к "серийным партиям".
Лично для меня одим из лучших индикаторов, происходящих на российском компьютерном рынке процессов, является бизнес компании "1С", которая работает как раз массовом рынке "реального" сектора экономики. При этом одна из причин успешной деятельности компании является то, что она не поддается искушению применения новых технологий лишь из соображений престижа и моды. В исполнении "1С" новшества появляются очень точно к моменту готовности потенциальных клиентов к их применению.
(После публикации статьи "Секрет Бориса Нуралиева" в PC Week/RE N 35/2000 онлайнвой дискуссии на сервере www.pcweek.ru была развернута интересная онлайновая дискуссия о "секретах". На эту тему можно поговорить дополнительно, но некоторые авторы комментариев похоже забыли, что целью работы бизнес-компании является получает прибыли и обеспечение устойчивости бизнеса. Технологии являются лишь средством достижения этих целей.)
Весной нынешнего года на выставке "Комтек-2000" фирма "1С" представила новый программный компонент "Web-расширение" для системы "1С:Предприятие". Тут еще раз хотелось бы отметить своевременность создания данной функции. В момент первой презентации у многих партнеров и клиентов фирмы "1С" было мнение о том, что это все же некая "дань моде". Однако уже спустя два месяца, на летнем партнерском семинаре был виден чисто деловой интерес к использованию нового модуля, а к концу лета появились первые реализованные с его применением.
Как известно (PC Week/RE N 38/2000, c.28), функциональную основу "1С:Предприятие" составляет набор библиотек — компонентов пакета. В отличие от функциональных наборов "Web-расширение" — это чисто технологический компонент, обеспечивающий связь самого приложения и Web-сервера. Он реализован на основе технологии Active Server Pages (ASP) в среде Microsoft Internet Information Server 4.0 или выше.
Такой выбор определяется двумя взаимосвязанными моментами. С одной стороны, ASP сегодня представляет собой одно из наиболее простых и достаточно эффективных серверных решений. Это в свою очередь в значительно степени предопределило использование IIS, для которого данная технология является "родной". С другой стороны, привязку именно к IIS специалисты "1С" объясняют доступностью этого средства, а также желанием получить более эффективное решение, не гоняясь за платформенной независимостью.
Страница ASP представляет собой HTML-страницу с включенным в нее программным кодом, скриптом. Обнаружив ASP, сервер передает ее программе-интерпретатору, выполняющей обнаруженный код и формирующей законченную HTML-страницу, которая затем оправляется сервером в браузер пользователя.
Сама ASP-технология не содержит встроенных средств для выполнения скриптов — эти функции возлагаются на сервер. В качестве стандартного набора таких исполняемых механизмов в составе IIS имеются JavaScript Engine и VBScript Engine для соответствующих языков. Однако самое важное здесь заключается в том, что IIS использует технологию Active Scripting, открытые интерфейсы которой позволяют разрабатывать и подключать произвольные скриптовые языки.
Именно этот факт используется в решении "1С", которое предусматривает создание ASP-приложений с применением встроенного языка "1С:Предприятие", схема которого приведена на рис. 1. Собственно продукт "1С:Предприятие 7.7. Web-расширение" включает две необходимые технологические программные части: Web-компоненту для "1С:Предприятия" и библиотеку V7 Scripting Engine.
В общем виде логика работы заключается в том, что при обработке страницы IIS передает в V7 Scripting Engine сформированный скрипт (просто складывая последовательные фрагменты кода), который фактически представляет собой модуль для исполнения в среде "1С:Предприятие" (рис.1). Кроме того, IIS передает контекст страницы в виде набора доступных объектов, которые библиотека также отправляет далее в "1С:Предприятие". Соответственно все эти объекты становятся доступными для "1С:Предприятия" через свой встроенный объект ASP (он входит в состав Web-компоненты). Через ASP-объект приложение может также вызывать процедуры и функции, реализованные на других скриптовых языках. Объекты самого IIS — Request, Response, Application, Session и Server — доступны из скрипта напрямую.
Рис. 1. Схема работы Web-приложения в среде "1С:Предприятие"
Задача разработки Web-приложения заключается в создании комплекса ASP-страниц, обеспечивающих взаимодействие удаленного пользователя с некой конфигурацией, работающей в среде "1С:Предприятие". Разумеется, возможен вариант создания специализированной конфигурации, предназначенной для работы в удаленном режиме.
Вряд ли можно говорить об универсальной схеме разработки приложений, как обычных, так и Web. Однако Интернет-доступ с неизбежностью требует решения проблемы авторизации доступа, за исключением, возможно, общедоступных справочных систем, работающих в режиме просмотра. (Для обычных приложений проблема доступа может решаться запиранием на ключ комнаты с выключенным компьютером или сдачей винчестера в режимный отдел.) С этой точки зрения в общем случае Web-приложение должно состоять из трех частей:
Ниже приведен листинг созданного буквально за несколько минут Web-приложения, представляющего ASP-страницу (Default.asp) с помощью которой пользователь через браузер сможет смотреть и редактировать содержимое справочника в приложении "Адресная Книга", работающем в среде "1C:Предприятие".
<%@Language=V7Script%> <html><head></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-приложения приведен на рис. 2.
Рис. 2. Интерфейс Web-приложения для удаленного доступа к адресной книге (созданного за пару минут).
Некоторые аналогии технологии разработки
Для понимания механизма работы Web-расширения, здесь возможно вспомнить о технологии создания IIS-приложений в среде VB 6.0, которая представляет собой, на мой взгляд, некую смесь методов ISAPI и ASP (этот подход получит развитие в будущей версии VB 7.0).
В VB используются готовые HTML-шаблоны для формирования динамических страниц. Но в отличие от ASP программный код здесь физически отделен от пользовательского интерфейса (HTMLкода) и находится в виде формируемых ActiveX DLL. Этот программный код обрабатывает запросы, поступающие с браузера, и корректирует динамические страницы, меняя не только ее содержание, но и при необходимости структуру.
Достоинства такого подхода — упрощение отладки приложения, которая ведется в среде VB, и возможность создания повторно используемых компонентов. Хотя нужно отметить, что визуальные средства разработки Web-приложений в VB 6.0 пока откровенно слабы. Да и логика разработки — совсем не простая.
В случае "1С:Предприятия" программисту придется довольно много кода писать "руками", без поддержки возможностей интеллектуального редактора. Но сама логика разработки выглядит достаточно простой. При этом она, с одной стороны, нацелена на конкретную работу с прикладными конфигурациями, работающими в среде "1С:Предприятия", а с другой — позволяет легко применять другие удобные средства программирования, в том числе те же JavaScript и VBScript. В любом случае, такой подход на начальной стадии становления технологии представляет совершенно естественным.
При этом разработчики "1C" подчеркивают, что они не ставят целью конкурировать с существующими средствами разработки Web-приложений. Задача более конкретная _ открыть простой и удобный доступ к работающим прикладным системам 1С:Предприятия через Web.
Конечно, для создания серьезных Web-приложение желательно иметь специализированную среду для написания и отладки HTML-кода и V7Script-программы (до конца 2000 года ожидается выпуск "1C:Web-расширение" версии 2.0 с расширенными возможностями разработчики). А пока можно предложить такой подход разработке ASP-страниц, который я применяю при выполнении аналогичный задач с помощью VB: сначала создается прототип программы с обычным интерфейсом (используя все средства отладки "Конфигуратора"), а потом отлаженный код переносится в ASP-страницы.
Первый рабочий пример использования "Web-расширения" появился еще в марте нынешнего года: на сайте www.1c.ru/declaration) можно было в автоматизированном режиме заполненить налоговые декларации. Это делалось с помощью Web-приложения, обеспечивающего доступ к соответствующим функциям программы "1С:Деньги" (реализованной на платформе "1С:Предприятие").
Здесь полезно вспомнить, что применение Web-технологий в конкретных решениях можно условно разделить на три основные категории:
Фактически это одинаковые технологические решения, различающиеся лишь уровнем защиты информации и авторизации доступа, а также показателями производительности. Пример с заполнением декларации является типичным примером Интернет-решения.
Непосредственно в состав продукта "1С:Предприятие. Web-расширение" входит пример Web-приложение "Портал реализатора". Основная задача конфигурации для портала (она реализована на базе типовой конфигурации "Торговля + Склад") — показать принципы построения подобной системы, основные подходы к ее реализации. В то же время с его помощью продавцы могут реально использовать, связываясь с удаленной торговой системой, отчитываясь за проданные товары и заказывая новые. Конфигурация и Web-приложение поставляются в виде открытых кодов, поэтому могут дорабатываться клиентом самостоятельно.
Второе Web-решение фирмы "1С" — "Удаленный склад" (рис. 3) распространяется по подписке на компакт-диски информационно-технического сопровождения. Этот продукт предназначен для реального использования типовой конфигурации "Торговля+Склад" (разумеется, ее нужно приобретать отдельно). В результате ее внедрения получается полнофункциональная система класса "Интранет" для удаленной работы кладовщика торговой организации. Данное приложение также может использоваться как образец для создания собственных решений.
Рис. 3. Диалоговый интерфейс приложения "Удаленный склад"
"ИКС Технология" автоматизирует свою работу
Система "Портрал дистрибутора" был разработан одним из ближайших партнеров "1С" компанией "ИКС Технологии" и используется ею с весны нынешнего года для ведения своей дистрибуторской деятельности. Кроме того данный продукт предлагается в виде тиражируемого решения, настраиваемого на требования конкретного заказчика. Это типичная Экстранет-система, которая позволяет регистрировать заказы, а также обсуждать их условия с дилерами в режиме Online. С ее помощью партнер может постоянно контролировать процесс обработки заказа и иметь доступ к информации о взаиморасчетах.
Интернет-магазин компании "Аркадия"
Специалисты "1С", продвигая свои решения, подчеркиваю, что система "1С:Предприятие" не является специализированным продуктом для создания огромных электронных супермаркетов, ориентированных на обслуживание сотен тысяч покупателей в день. Но для средних и малых магазинов она вполне подходит.
Примером коробочного решения на базе "1С:Web-расширение" является разработка петербургской компании "Аркадия" (совместно с "1С") под названием "1С:Аркадия Интернет-магазин". В целом реализация проекта выглядит достаточно обычным образом: основные этапы покупки состоят в осмотре витрины (каталог товаров), наполнении корзины покупателя и оплаты им заказанного товара. Владелец магазина может воспользоваться готовыми шаблонами для создания интерфейса или разработать его самостоятельно. Информация о реализованных на его основе проектов находится на сайте www.magazin.ru.