Информационный поток
Задания вакансии материалы разработки сообщения форума
Рубрики статей и материалов
Яндекс-директ

Бегущая строка на управляемой форме

  • Добавить свою публикацию
  • для этого требуется регистрация

Как это было в обычных формах

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

Изображение

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

Реализация на управляемой форме

Перед реализацией поставим два условия при выполнении задачи:

  1. Бегущая строка на управляемой форме должна работать как в толстом, так и в тонком клиентах.
  2. Не должно быть влияния на производительность клиентского приложения и интерактивную работу пользователя с формой.
Итак, приступим.
 
На управляемую форму добавим группу "ПеремещениеНадписи" с видом "Страницы". В эту группу поместитм 23 страницы, в каждой из которых одинаковый состав групп, кроме положения передвигаемой надписи.
Изображение
При открытии формы запускается обработчик ожидания, который переключает закладки через заданный промежуток времени. Программный код для запуска обработчика ожидания показан на следующем листинге:
 &НаКлиенте
Перем текСтр; // Переменная хранит номер текущей страницы
           
&НаКлиенте
Процедура ПриОткрытии(Отказ)  	
	текСтр = 1; // Устанавливаем текущую страницу при открытии формы 
	
	// Подключаем обработчик ожидания
	ПодключитьОбработчикОжидания("ПереключитьСтраницу", 0.1, Истина);	
КонецПроцедуры
	
&НаКлиенте
Процедура ПереключитьСтраницу()     	
	// Получаем номер текущей страницы
	НоваяСтр = ?(текСтр = 23, 1, текСтр+1);   
	// Устанавливаем текущую страницу
	Элементы.ПеремещениеНадписи.ТекущаяСтраница = Элементы["Страница"+НоваяСтр];
	// Изменяем глобальную переменную формы
	текСтр = ?(текСтр = 23, 1, текСтр+1);
	// Подключаем обработчик ожидания
	ПодключитьОбработчикОжидания("ПереключитьСтраницу", 0.1, Истина);  	
КонецПроцедуры

 Соответственно, при запуске обработчика ожидания, поскольку время 0.1 секунды, его необходимо вызывать повторно из процедуры-обработчика. Происходит это из-за того, что если время для подключаемого обработчика меньше секунды, то его вызов осуществляется единожды (третий параметр ИСТИНА).

 

Выбран вариант переключения закладок, потому что другие варианты (изменение видимости или создание элементов формы программно) выполняли бы вызов сервера для перерисовки формы. Переключение же закладок позволяет выполнить все действия без обращений к серверу. 

Вывод

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

 

По следующей ссылке Вы можете скачать тестовую конфигурацию с примером из статьи.

 
0
Читайте также
Разработки
Как из 1С правильно УКАЗАТЬ MS EXCEL как нужно печатать документы !
Как правильно из 1С печатать документы .xml в EXCEL
ФИО и должность в родительный падеж (7.7) без ВК
Перевод ФИО из именительного падежа в родительный
График температуры за период для 8-ки
Помощь в построении графика температур
Еще от автора
≡ к списку статей