Создание Web-приложений
Особое положение технологии создания Web-приложения в "1С:Предприятие 8.0" заключается в том, что это не просто внутренний механизм платформы, а самостоятельный продукт - "1С:Предприятие 8.0. Web-расширение 1.0" (1СП8-Web), инструментальное средство для организации взаимодействия Интернет-пользователей с прикладными решениями на базе "1С:Предприятие 8.0" (рис. 4).
Рис. 4. Web-расширение в системе "1С:Предприятие 8.0".
Возможность клиентского Web-доступа к приложениям "1С:Предприятие" появилась только весной 2000 г., когда был выпущен компонент "Web-расширение" для платформы версии 7.7 (см. "Разработка Web-приложений для "1С:Предприятия", "BYTE/Россия" № 4'2001). В нем была использована технология ASP, позволяющая писать код активных страниц на внутреннем языке 1С:V7Script. Однако вся разработка ASP-страниц должна была выполняться исключительно "руками", без каких бы то ни было специальных средств. Очевидно, что такие дедовские методы были непригодны для создания сложных Web-приложений и могли применяться лишь в ограниченных масштабах. Тем не менее с помощью этого варианта Web-расширения целый ряд компаний-разработчиков не только получал собственные продукты, но и реализовывал некоторые проекты и тиражируемые решения.
Нынешний вариант Web-расширения - это качественно более мощный (по сравнению с 7.7) инструмент, позволяющий решать довольно широкий круг задач, связанных с использованием Интернет-технологий, - начиная от обеспечения клиентского Web-доступа и заканчивая интеграцией с внешними приложениями.
В основе концепции 1СП8-Web лежит стандартная технология создания приложений ASP.NET, дополненная программными компонентами "1С:Предприятие 8.0", которые обеспечивают, с одной стороны, привычный для пользователя системы клиентский интерфейс, а с другой - взаимодействие с базой данных и с функционалом прикладного решения.
Пользовательский интерфейс и бизнес-логика создаются в рамках технологии ASP.NET (приложение типа Web Forms). Для программирования разрешается применять любой .NET-язык, сами авторы 1СП8-Web рекомендуют C# (демонстрационный пример, шаблоны и конструкторы ориентированы на этот язык).
Одна из целей 1СП8-Web - повысить эффективность разработки Web-приложений в среде Visual Studio .NET с учетом специфики прикладных решений семейства "1С:Предприятие 8.0". Большинство компонентов 1СП8-Web, реализованных в виде элементов управления, предназначено именно для решения этой задачи: они позволяют строить пользовательский интерфейс и обрабатывать данные в традиционном стиле системы "1С:Предприятие". При этом разработчик может самостоятельно создавать Web-формы или использовать те, которые автоматически генерируются системой на основе структуры прикладного решения "1С:Предприятие 8.0". Во втором случае обеспечивается простая адаптация Web-решения при внесении изменений в хост-приложение.
С учетом того, что Web-расширение чаще всего применяется для целей презентации и анализа данных , в состав продукта включен набор компонентов для создания аналитических отчетов, опирающийся на мощные механизмы "1С:Предприятие 8.0". В частности, пользователь Web-приложения с помощью инструмента "Построитель отчета" может визуально настроить исходный текст запроса и получить оформленный результат его обработки - при этом поддерживается механизм расшифровок для детализации полученных данных.
Но все перечисленные выше средства могут лишь повысить эффективность разработки Web-приложения. Главная же технологическая задача 1СП8-Web состоит в том, чтобы реализовать механизм взаимодействия собственно с информационной базой прикладного решения (рис. 5) - метаданными, COM-соединениями и объектами доступа к данным.
Рис. 5. Общая схема взаимодействия компонентов "1С:Web-расширения".
Метаданные содержат сведения о структуре прикладного решения и его информационной базы. Они автоматически генерируются при создании Web-приложения и хранятся в подключаемых к проекту файлах (DLL и XML). Кроме того, если конфигурация информационной базы была изменена, утилиту генерации метаданных можно запустить и отдельно.
Для доступа к функционалу прикладного решения (в том числе к информационным базам) используются COM-соединения - универсальный низкоуровневый программный интерфейс для интеграции "1С:Предприятие 8.0" с внешними приложениями. Это наиболее эффективный инструмент организации взаимодействия программ. В частности, возможность сохранения пула открытых COM-соединений для повторного использования позволяет экономить ресурсы Web-сервера и уменьшает время отклика системы.
Однако с точки зрения оптимизации процесса разработки к данным "1С:Предприятие 8.0" лучше всего обращаться через высокоуровневый слой специализированных объектов ADO.NET. Таким образом реализуется эффективное взаимодействие с компонентами бизнес-логики и визуального интерфейса. Кроме того, с помощью таких объектов можно не только получать данные, но и изменять их.
В нынешнем варианте 1СП8-Web значительная часть инструментария предназначена для программирования Web-интерфейса, но наиболее важен, на наш взгляд, набор компонентов для работы с данными, который фактически представляет собой интерфейс между платформами "1С:Предприятие 8.0" и .NET. С его помощью разработчики, помимо реализации собственно Web-приложений, могут уже сегодня создавать весь спектр программ в среде .NET, включая Web-решения для мобильных клиентских устройств, обычные Windows-приложения, Web-сервисы, .NET-компоненты и т. п. Не говоря уже о том, что VS.NET обладает широким спектром средств (в том числе третьих фирм) взаимодействия с различными источниками данных и приложениями.