К докладу «Создание виджетов(widgets) в 1С» на Event 2015

image_pdfimage_print

Доброго времени суток!

Идея виджетов, добавления своих маленьких элементов отображения в интерфейс популярна в информационных системах как никогда. Всегда хочется дополнить интерфейс системы небольшими добавлениями, которые наиболее выразительно покажут информацию, покажут, занимая немного места, но именно так, как хочется. Можно для этого использовать <поле картинки> или графическую схему. Но сейчас я опишу наиболее универсальный и богатый способ создания.

1-. Самое интересное поле, которое можно вставлять в интерфейс 1С, — это поле HTML документа.

И человек, впервые увидевший это поле, жадно потирает руки, берет куски современного кода и пытается его вставить. И здесь его ждут серьезные затруднения.

2-. Поле это работает пока в старом режиме совместимости. А любой web-дизайнер Вам расскажет кучу страшных историй о совместимости верстки под ie7, ie8 и стандарты современных браузеров. Но проблема не только в показе контекста, большая проблема в том, что старый режим совместимости не может отработать новые функции и свойства современных технологий. И самое плохое, что могут выскакивать ошибки. А для пользователя это совсем неприемлемо.

  • CSS 3 да и CSS 2 отобразится не так, как хотелось бы.
  • <canvas> или ускоритель двухмерной графики — забудьте (http://www.w3schools.com/canvas/default.asp)
  • <svg> не работает
  • остальные примочки HTML5 за бортом

Многие могут возразить, что мы можем добавить чудо-строку в HTML для изменения уровня совместимости  <meta http-equiv=»X-UA-Compatible» content=»IE=edge» />. Но и здесь все не радостно. Стилевое оформление начинает работать, но основной контекст все равно будет при старом режиме.

И продолжая негатив Ж:)

3-.  В 1С в управляемых формах остался один интерактивный метод взаимодействия с полем <ПриНажатии>. <ПриИзменении> и <ДокументСформирован> реагируют уже на изменение контекта, а при событии ПриНажатии, если его не прерывать, доходит до владельца в 1С.

 

В общем, все плохо и руки опускаются, что-либо делать. И теперь будем подниматься вверх, используя опыт и различные наработки.

1+. Поле НТМL работает во всех клиентах  и версиях 1С.

2+. Конечно, приходится использовать библиотеки, совместимые с ie7 или позволяющие подправить код для режима совместимости.

В частности, используем Raphaeljs (http://raphaeljs.com/), которая позволяет рисовать как старыми методами ie, так и и для вэб-клиетов средствами svg

3+. Любые события в HTML можно эмулировать событием ПриНажатии. Конечно, это не волшебная палочка, и проблему быстродействия взаимодействия это не решит, но нормальную работу это обеспечит. И один из интересных методов, заключается в обработке событий ПриНажатии для невидимых элементов. В отличие от 1С невидимые элементы присутствуют в интерфейсе и могут использоваться для взаимодействия с пользователем.

Ну, я надеюсь, у Вас появилась надежда на что-то работающее.

 

Р.S. привожу текст, как он был создан до конференции, и обработки к нему. Новые идеи после конференции требуют дополнительного осмысления.

Обработки на Инфостарте: http://infostart.ru/public/370984/

 

Сравниваем скорость работы динамики внутри 1С и в современных браузерах:

Добавить комментарий