Причем в данном виде система может использоваться как самостоятельная CMS для сайта-визитки со статичными html-страницами, так и в виде подсистемы в составе некой конфигурации для реализации публикации данных в веб опять же либо в виде самостоятельного сайта, либо в составе более крупного решения. В статье приведен демо-пример работы CMS, а так же доступна демо-база(под платформу 8.3.5).
Сразу оговоримся - это не публикация веб-клиента платформы, и не простое взаимодействие какого-то полноценного сайта с базой 1С. Это реализация самого сайта, т.е. его структуры, контента, механизмов обработки запросов, в базе 1С. Никакие сторонние движки не используются.
UPD. Демо-база доступна для скачивания. Конфигурация доработана под платформу 8.3.5 с использованием HTTP-сервисов. Вся логика работы остается аналогична использованию Web-сервисов, но упрощается использование - отпадает необходимость в использовании дополнительных костылей/точек входа/внешних сайтов. Для управления контентом "сайта" используем режим предприятия для входа в базу. Для входа на "сайт" достаточно просто опубликовать HTTP-сервис "engineHTTP" демо-базы, и выполнить вызов вида http://myserver/site_cms_test/hs/engineHTTP/, где myserver - имя вашего веб-сервера; site_cms_test - имя публикации; hs/engineHTTP - собственно вызов самого опубликованного HTTP-сервиса.
Ниже приводится общая схема работы системы (в демо базе реализовано через использования HTTP-сервисов).
Браузер отправляет запрос на опубликованный в IIS HTTP-сервис, который возвращает содержимое необходимого ресурса- html-страницы, CSS, скрипта или картинки. Получив запрос HTTP-сервис анализирует его и возвращает содержимое запрашиваемого контента.
В самой CMS реализованы объекты, описывающие структуру сайта, а так же отдельные его элементы: страницы, картинки, скрипты, стили.
Дерево сайта описывает структуру каталогов и элементов сайта. Каждый элемент дерева сайта содержит ссылку на целевой объект - страницу, картинку, скрипт или стиль. Все ссылки отображаемого сайта интерпретируются относительно корневого элемента.
При ответе CMS возвращает "содержимое" объекта из элемента дерева сайта в зависимости от типа. Н-ер: для типа "Страница" будет возвращен html-код страницы.
Объекты "Страницы" содержат полный текст целевой html-страницы. При желании можно реализовать механизм некой генерации страниц, когда она будет "собираться" из header'а, foot'ера и тела самой страницы. В данном случае исследовалась общая технология разработки подобной системы, поэтому код страницы задается целиком и жестко, но в рамках интеграции с конкретной учетной конфигурацией можно реализовать констуркторы динамической генерации контента. Релизованы несколько обязательных страниц: default - главная страница сайта; error 404 - страница с ошибкой. Технология использования точно такая же как у прочих объектов: создается элемент дерева сайта со ссылкой на нужный объект "Страница", а затем в коде html-страницы указывается ссылка на элемент дерева относительно корневого элемента.
"Картинки" представляют собой отдельные объекты системы, в которые собственно внешние картинки и загружаются. Технология использования точно такая же как у прочих объектов: создается элемент дерева сайта со ссылкой на нужный объект "Картинка", а затем в коде html-страницы указывается ссылка на элемент дерева относительно корневого элемента.
Скрипты описываются отдельным объектом. Технология использования точно такая же как у прочих объектов: создается элемент дерева сайта со ссылкой на нужный объект "Скрипты", а затем в коде html-страницы указывается ссылка на элемент дерева относительно корневого элемента.
Стили описываются отдельным объектом. Технология использования точно такая же как у прочих объектов: создается элемент дерева сайта со ссылкой на нужный объект "Стили", а затем в коде html-страницы указывается ссылка на элемент дерева относительно корневого элемента.
Что же мы получаем в итоге? Вполне работающий сайт с активными ссылками и возможностью управлять его структурой и содержанием. На перспективу можно обдумать механизмы скачивания данных с сайта и публикацию видео. Размечтался, да? :)
Небольшая демка по работе системы