Главная страница Visual 2000 · Общий список статей

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

Андрей Колесов

© Андрей Колесов, 2000
Авторский вариант. Статья была опубликована c незначительной литературной правкой в еженедельнике PC Week/RE (N 46/2000, с.45 )
Эта статья — сокращенный (но вступление полностью переработано) вариант статьи, опубликованной ранее в "КомпьютерПресс".
ВНИМАНИЕ! В статье, опубликованой в PC Week/RE (печатном вариате и на Web), приведены НЕ ТЕ рисунки (предыдущей моей статьи про "1С")!!! На этой странице все верно!


Казалось бы, тема использования Интернет-технологий...

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

В начало статьи

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

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

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

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

В начало статьи

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

Как известно (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-технологий в конкретных решениях можно условно разделить на три основные категории:

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

В начало статьи

В начало статьи