Доброго времени суток!
Применим академический подход. Перейдем на http://www.w3schools.com/html/html5_canvas.asp и возьмем примеры оттуда и напишем небольшую обработку HTML5-1С-min.epf.
Результаты лучше наблюдать самим и проверить в своем любимом браузере.(см. картинки). Но вывод все тот-же. Не тонком клиенте Windows 1с, не в вэб IE не показывает ничего кроме рамки. Даже библиотека excanvas.js от Google не помогает, только удаляет показ ошибок скриптов. В 8.3.3.641 все аналогично на Windows, а на Linux c webkit все показывает. Видно баузерный движок в тонком клиенте Windows очень хорошо отлажен для 1С, но ядро имеет древнее на IE7, но как-то урезанное.
Меня 1C научила никогда не отступать от решения задачи, насколько сложной она не казалась с первого раза. Для этого надо понять, а как работает библиотека excanvas. Посмотреть на пример в //infostart.ru/public/57648/. Да вспомнить, что до html5 Microsoft усиленно толкала свою систему VLM (http://msdn.microsoft.com/en-us/library/ee384217%28v=vs.85%29.aspx). Вот она и прекрасно работает со старыми версиями движков IE. И excanvas это эмуляция функций обрисовки графиков html5 через эту систему. Значит 1С надо немного помочь. Посмотрев как эта библиотека работает в старых IE, получилось решение что нужно добавить в для 1С.
В старых браузерах excanvas может вызваться рекурсивно, а в движке браузера 1С нет. Для простых примеров поможем 1С заполнить html файл. Используем флаг excanvas_1c(«Довесок для 1С») и макет с таким-же именем.
Если excanvas_1c Тогда
Скрипт = ПолучитьМакет("excanvas_1c").ПолучитьТекст();
Страница = СтрЗаменить(Страница, "", Скрипт +"");
КонецЕсли;
Тестируем обработку HTML5-1С-min вложение к статье. Ура, заработало. Делаем 1С ближе к HTML5
Копаться внутри старой технологии достаточно утомительно. Второй способ научить внутри 1С понимать современные стандарты это принудительно установить поле HTML в режим совместимости с последней версией. В обработке надо поставить флаг на поле «Включить эмуляцию IE=Edge».Но данный способ тоже не идеалный и не спасает от всех ошибок в барузере, но рабочий. И дает результат показа тестовых примеров на w3schools.
И из маленьких мелочей которых очень хочется:
Хочется вывести в тонком клиенте в HTMLПоле свою картинку. Посмотим внимательно в отладке 1С на навигационную ссылку и в браузере в инструментах разработчика:
- Навигационная ссылка — «e1cib/data/Справочник.Товары.ФайлКартинки?ref=99b380c16ef91aa211e27a59f49b6685»
- Код интернет страницы — < img style=»position: relative; cursor: default; width: 350px; height: 288px; left: 488px; top: 19px;» title=»» src=»http://localhost/1c-test/ru_RU/e1cib/data/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA.%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%D1%8B.%D0%A4%D0%B0%D0%B9%D0%BB%D0%9A%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B8?ref=99b380c16ef91aa211e27a59f49b6685″ alt=»» / >
Это похоже одно и тоже. Значит простая идея заключается в создании ПолучитьНавигационнуюСсылку и прописании ее в HTMLПоле:
СтраницаНТML = »
|< html >
|< head >
|< /head >
|< body >
|< div > Тест страницы < /div >
|< div > < img src='»+СсылкаНаКартинку+»‘/ > Тест картинки < / div >
|< / body >
|< / html > «;
Аналогично работает и функция ПоместитьВоВременноеХранилище.
Проверим работу. Тонкий клиент и web клиент работают замечательно.
P.S. Сайт: sikuda.ru
Что-то непонятно, как всё-таки использовать внутри 1С упомянутую библиотеку?
ПолучитьНавигационнуюСсылку ведь, насколько я помню, только для объектов внутри базы работает.
(1) Magister, добавил в прикрепленном файле обработку эксперимента с которой получал картинки.
Спасибо, посмотрел.
Но это ведь не картинки, а построение средствами Javascript 🙂
Так что если политикой домена Javascript отключен — пользователь ничего не увидит.
Как и не увидит, скорее всего, если на компьютере IE 8 или ниже. Разве что там специфичные скрипты под него подключены.
(3) Нет дело похоже не в отключении скриптов. Точнее внешние скрипты 1С отключит, а внутренние нужны самой 1С. 1С вклинивается в процесс обработки и в первую очередь летят картинки(как внешние данные), а потом графики. Надо еще в этом покопаться…
(4) Эм… картинки у меня вполне себе спокойно отображаются через
Ничего не режется.
Это не обработчик от 1С. Это у вас какой-нибудь StaticFile(если IIS). Посмотрите внимательно настройку вэб-сервера. Да надо углублять тему и писать маленькие тесты…
(6) Естественно, этот файл отдается внешним по отношению к 1С веб-сервером.
Наверное я не понял, в каком случае проблема таки возникает…
(7) с тонкой настройкой вэб-сервера не смогу помочь, а маленькие тесты на HTML5 написал. Заходите на сайт sikuda.ru
Нашел способ чтобы примеры html5 canvas заработали. Но это явно костыль. Работаю с графиками хотя интерес к ним маленький интересhttp://www.forum.mista.ru/topic.php?id=662091
Использование данного метода позволит решить и более сложные задачи. Связанные с построение сложных объектов через примитивы.