gifts2017

Бегущая строка на управляемой форме или что можно сделать из простой швейной машинки

Опубликовал Сергей Маликов (SergeMalikov) в раздел Программирование - Практика программирования

Реализация бегущей строки на управляемой форме с использованием элемента управления HTMLСтрока


      Цитата:Видите, Балаганов, что можно сделать из простой швейной машины Зингера? Небольшое приспособление — и получилась прелестная колхозная сноповязалка. О.Бендер «Золотой Теленок»


        Получил как-то задание реализовать на управляемой форме просмотр рекламы в виде бегущей строки.
Конфигурация, в рамках которой  необходимо было реализовать бегущую строку, запускалась на платформе 8.2 в режиме тонкого клиента.

        Как известно для обычной формы решение данной задачи не составляет труда. Для этого необходимо поместить на форму элемент управления «Надпись» и в свойстве «БегущаяСтрока» установить любое значение, кроме «Не использовать». Но в управляемой форме такое свойство отсутствует.


        Для начала произвел поиск известных решений с помощью Googlе. Нашел решение, основанное на размещении надписи (со смещением) на некотором количестве страниц и последовательном переключении этих страниц с использованием обработчика ожидания. Это решение что называется «В лоб». Оно перегружает форму множеством дополнительных страниц, единственное назначение которых - участвовать в перерисовке надписи.

      Используя свои знания HTML, полученные в одной из предыдущих инкарнаций программиста, я решил попробовать реализовать вывод бегущей строки в элементе управления «HTMLСтрока».


      Дело в том, что в языке HTML есть специальный тег «marquee»… «/marquee», отображающий бегущую строку на странице. С помощью атрибутов этого тега можно задавать тип и направление движения, цвет шрифта и фона области движения, скорость движения, ширину и высоту области вывода. Необходимо проверить, будет ли этот тег работать в контексте элемента управления «HTMLстрока».


Первое что нам понадобится сделать – это подготовить код HTML документа. Простейший HTML документ выглядит следующим образом:


      Любой HTML документ открывается тегом «HTML». Далее обычно следует теги «HEAD» и «/HEAD» между которыми можно разместить некоторую информацию – например заголовок документа между тегами «TITLE» и «/TITLE». Затем расположено тело HTML документа, обрамленное тегами «BODY» и «/BODY». И завершается документ закрывающим тегом «/HTML»

       Вы можете с помощью блокнота создать текстовый документ, набрать описанное содержимое, изменить расширение текстового документа с txt на html и открыть полученный файл с помощью браузера.


       Если вы это сделали – поздравляю, родился новый WEB-разработчик.


       Далее для проверки работоспособности элемента управления «HTMLСтрока» понадобилось создать внешнюю обработку. На ее форме разместить текстовый реквизит для ввода текста рекламы, кнопку и элемент управления «HTML-строка». В обработчике нажатия на кнопку сформировать простейший HTML –документ. Тело документа дополнить тегом внутри которого расположить текст рекламы и задать некоторые свойства тега.


Здесь свойство «scroll» – указывает характер движения (прокрутка) а «direction=left» - направление движения. Не забываем про дойные кавычки в текстовой строке.
Запускаем обработку на выполнение, нажимаем кнопку и видим - строка побежала. Итак задание выполнено.
       Воодушевленный работоспособностью приложения решил усложнить задачу. Раскрасил область вывода и текст. Обыграл направление и скоростью движения строки.
       Дальше – больше. Оказалось, что «HTMLстроке» можно "скармливать" HTML-документы содержащие java-скрипты в заголовке. С помощью такой технологии реализовал бегущую строку изменяющую цвет во время движения.
       Чтобы не перегружать статью врезками кода - выкладываю обработку, в которой реализованы все описанные в статье возможности вывода бегущей строки.



Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Внешняя обработка с реализацией бегущей строки
.epf 7,44Kb
10.07.13
55
.epf 7,44Kb 55 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сергей Кудашкин (sikuda) 11.07.13 10:25
Если сама 1С со своими управляемыми формами основывается на html, то нам как тех. специалистам надо отлично знать спецификации.
<marquee> - URL=http://htmlbook.ru/html/marquee]http://htmlbook.ru/html/marquee[/URL]

Изучаем CSS3 - http://www.w3schools.com/cssref/#marquee
2. Николай Зайков (Mortiferus) 17.07.13 15:05
Вот отличный пример как знания в смежных областях применены к 1С. Отлично! Ложу в копилку.
3. bulpi bulpi (bulpi) 17.07.13 16:57
(1) sikuda,
"Если сама 1С со своими управляемыми формами основывается на html"
скорее на xml
4. Virikus 18.07.13 13:46
Неплохо бы еще добавить сразу скрин с формой и бегущей строкой.
Качать обработку ради поглядеть?
5. Сергей Маликов (SergeMalikov) 18.07.13 18:36
(4) Virikus, На скрине формы вы не увидите движения строки. А имея обработку вы сможете не только посмотреть,но и заточить исходник под свои нужды.
6. Virikus 18.07.13 20:39
(5) не надо движения, достаточно просто скрин формы где выведен текст, желательно с разными цветами или шрифтами
7. Shrek Shrek (Shrek2015) 18.07.13 22:33
8. Максим Кузнецов (Makushimo) 19.07.13 06:15
Супер,
просто и изящно.
Забираю в базу знаний.
9. Franchiser (Franchiser) 08.07.16 00:35
Где находится этот ЭУ "HTMLстрока", он есть в 1С 8.3?
10. Галахад (dmt) 08.07.16 07:08
Подскажите для каких ситуаций полезно использовать бегущую строку?
11. serg__k (serg__k) 08.07.16 09:18
(9) Franchiser, делаем реквизит формы - строка, потом в элементе формы выбираем Вид = Поле HTML документа
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа