Некоторые секреты подключения веб-интерфейса 8.2
Работа с альтернативным интерфейсом на управляемых формах 1С доступна через HTML. Альтернативный интерфейс может понадобиться, если стандартных элементов управления 1С недостаточно, но хочется чего-то большего. В данной статье перечислены некоторые секреты работы с веб-интерфейсом на управляемых формах 8.2.
Показ Html-страницы на управляемой форме 1С
Для показа Html-страницы необходимо на форму вставить Поле Html Документа и в источник данных поместить html-код. Нужно иметь ввиду следующее: тонкий и веб-клиент на Internet Explorer работают по-особенному. В двух этих случаях используется Internet Explorer в режиме совместимости с IE 7.
Первый секрет заключается в том, что тонкий клиент можно перевести в режим совместимости с более старшей версией IE. Для этого нужно использовать meta X-UA-Compatible. Так на Windows 7 после добавления
можно использовать SVG-объекты, например:
Перевести веб-клиент IE на более современную версию совместимости можно, поместив веб-клиент 1С в IFrame и задав в родительском html meta-тэг совместимости. Но при этом не гарантируется нормальная работа и отображение веб-клиента, поскольку 1С изначально проектировала веб-клиент из расчета совместимости с IE6/7.
Второй секрет заключается в том, что верстка html-макетов в режиме текста без визуального редактора 1С портится после закрытия макета в конфигураторе. Например, если вы вставите svg-определения на html-макете, то после переоткрытия конфигуратора увидите испорченный html (обратите внимание на head-заголовок).
Поэтому, если ваша верстка сложнее, чем показ рисунка, то советую сохранить html-код еще и в другом месте.
Хранение всего подряд в общих картинках
Современная веб-страница не ограничена одним только html. К ней в дополнение идут картинки, js/css-файлы. Традиционный подход допускает хранение и обращение к картинкам, помещенным в общие картинки конфигурации, но с js/css 1С-разработчикам приходится исхитряться. Текстовые файлы или записывают в архив и распаковывают перед показом страницы или целиком помещают в html. Такой подход не задействует встроенный практически в каждый браузер кэш для get-запросов.
Мой опыт состоял в том, чтобы поместить в общие картинки java-скрипт. Этот опыт частично удался, т.е. все браузеры и тонкий клиент запустили jQuery, кроме IE. Если кто-нибудь знает секрет и сможет заставить работать этот способ на IE, прошу, отписаться. Действия необходимо делать следующие:
1. Создать общую картинку и поместить в нее любую картинку
2. На html-макете в режиме редактирования выделить любой текст и через меню Элементы-Ссылка выбрать общую картинку
3. Текст из ссылки вставить в блок script
4. Заменить общую картинку на JavaScript-содержимое
Встроенный фреймворк 1С для веб-клиента
Мало кто знает, что веб-клиент 1С включает в себя фреймворк , упрощающий работу с элементами форм. Фреймворк работает на JavaScript. Обращение к нему возможно через parent.WebUI. функции его требуют дополнительных исследований, но свойства выглядят следующим образом:
В теории этот фреймворк можно задействовать для вызова серверных процедур 1С. В этом случае произойдет полная интеграция html-поля с другими элементами управляемой формы, что повлечет платформенную независимость.
Ключевое слово __STYLE__
Долго ломал голову, что же означает ключевое слово __STYLE__, которое 1С автоматически подставляет в шаблон пустого html-макета. Но исследования запросов показало, что __STYLE__ ничем не заменяется, и на этот запрос сервер возвращает 500 ошибку: Internal Server Error.
[4. Заменить общую картинку на JavaScript-содержимое] – простите, это как?
(1) Asmody,
Двойной клик на общей картинке
Выбрать из файла
Тип файлов «Все файлы *.*»
Выбрать js-файл
Нажать Открыть
Обратите, пожалуйста, внимание, что этот файл браузер будет хранить в кеше, поэтому, если обновляете содержимое, нужно чистить кэш.
Не знал про такой изврант. Получается, в картинки вообще что угодно можно запихнуть, что открывает интересные возможности
Хакеры, млин… Но плюс, за идею.
попробовал. не работает в тонком клиенте нифига способ с заменой картинки
(5) Asmody,
У меня флеш не получается в тонком клиенте запустить. jQuery везде запустился, кроме IE. Из-за этого задача по софтфону встала.
(6) пробовал jquery в тонком 8.3.3 под Win2k3. IE стоит 8й. ругается на отсутствие объекта
(7) Asmody,
В 8.3.3 на Windows 7 работает
Показать
Я бы сделал с помощью ПолучитьНавигационнуюСсылку() для универсальности и полноты решения.
(9) sikuda,
До оптимизации, думаю, еще дойду. Сейчас смысла нет, потому что на IE у меня не работает такой способ. jQuery не инициализируется.
Интересно было бы поэкспериментировать с Flash — он не проигрывается в тонком клиенте. Но это, скорее всего, проблема не способа подключения.
(10) Все мы как-то пытаемся через только близкие нам механизмы 1С делать. Но сейчас мир изменился. Неважно через что, важно как. Есть текст jquery на javascript. Это просто текст. Предлагаю хранить его как текст в обшем макете. Получаем этот текст и вставляем в html код. Далее инициализации html страницы и код начинает работать. И отладка такого решения прозрачна…
Твоя ошибка может быть связана с подменой версии IE, у меня вышеописанным способом ошибок не возникает.
(11) sikuda, тут весь фокус в том, чтобы не тащить каждый раз jquery и прочее, для чего кеш браузера придуман.
Еще можно jQuery UI подключить.