Visual2000 · Статьи А.Колесова по "1С"

Цикл "1С:Предприятие" в PC Magazine/RE

Web-расширение платформы "1С:Предприятие 8.0"

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

© Андрей Колесов, 2006
Авторский вариант. Статья была опубликована в журнале PC Magazine/RE № 03/06 (с.134-137).


Архитектура платформы "1С:Предприятие 8.0"...

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

Один из них — использование механизмов обмена данными, позволяющих организовать информационное взаимодействие в однородной или неоднородной среде (это обеспечивается соответственно механизмом распределенных информационных баз и универсальным механизмом обмена данными — подробнее см. PC Magazine/RE, 2/2006, с. 134). Другой вариант, о котором мы будем говорить в этой статье, — применение технологического компонента "1С:Предприятие 8.0. Web-расширение" (1С:8.0-Web), который позволяет организовать не только Web-доступ к функциональности прикладных решений на базе 1С:8.0, но и создать распределенные системы на базе современной технологии Web-сервисов.

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

1С:8.0-Web как компонент платформы

Говоря о системе ПО "1С:Предприятие 8.0" (см. PC Magazine/RE, 1/2006, с. 123), мы отмечали, что в несколько упрощенном виде платформа 1С:8.0 состоит из двух основных компонентов: среды исполнения (собственно "1С:Предприятие") и инструмента разработки прикладных решений ("Конфигуратор"). В версии 7.7 они были представлены отдельными приложениями, в 8.0 реализованы в виде одного приложения и обращение к тому или иному определяется в момент выбора режима запуска.

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

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

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

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

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

Соответственно в основе концепции 1С:8.0-Web лежит стандартная технология Microsoft создания ASP.NET-приложений, дополненная специальными программными компонентами платформы 1С:8.0, обеспечивающими, с одной стороны, привычный для пользователя 1С:8.0 клиентский интерфейс и, с другой -- взаимодействие с базой данных и с функционалом прикладного решения (рис. 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.0-Web рекомендуют пользоваться для программирования C# (демонстрационный пример, шаблоны и конструкторы ориентированы на этот язык). Для создания Web- приложений вполне достаточно издания Visual C# 2003 Standard Edition.

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

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

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

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

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

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

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

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

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

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

Основные варианты применения

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

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

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

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

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

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

Таблица. Средства и механизмы интеграции "1С:Предприятие 8.0"

Работа с текстовыми документами. Встроенный язык 1С:8.0 позволяет разработчику создавать, динамически формировать и записывать текстовые документы, в том числе на основе готовых шаблонов, а также специального редактора текстов с использованием макетов документов.

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

XML. 1С:8.0 позволяет организовывать интеграцию с прикладными системами с использованием XML-документов с поддержкой на уровне встроенного языка.

DBF-файлы. Механизм работы с базами данных формата DBF дает возможность манипулировать ими непосредственно из встроенного языка.

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

Automation Client/Server. Назначение Automation-сервера — управление прикладным решением из других приложений и выполнение действий аналогичных интерактивным действиям.

Работа с HTML-документами. Средства работы с HTML-документами позволяют встраивать их в формы прикладного решения и редактировать их средствами встроенного языка.

Работа с файловой системой. Доступ к функциям работы с файловой системой реализован на уровне встроенного языка.

Технология внешних компонентов. Данная технология позволяет создавать программы, которые будут динамически подключаться к системе 1С:8.0 и тесно взаимодействовать с ней. Разработка компонентов может выполняться с помощью любого инструмента поддерживающего COM-стандарты (Visual Studio, Delphi и пр.).

Элементы управления ActiveX. Платформа позволяет внедрять в формы и табличные документы дополнительные элементы управления, поддерживающие технологию ActiveX.

Макеты ActiveDocument. Технология ActiveDocument предназначена для редактирования документов внешними по отношению к 1СП8 редакторами.

Работа с Интернетом. Работа ведется непосредственно из встроенного языка. Разработчик может выполнять отправку и прием писем электронной почты (как с использованием установленного на компьютер встроенного клиента, так и без него), а также осуществлять обмен данными по протоколам HTTP (HTTPS) и FTP.

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

Обмен данными. Механизмы обмена данными, реализованные в платформе, позволяют создавать территориально распределенные системы как на основе как информационных баз 1С:8.0, так и других прикладных решений.

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