Каталог решений - Алгоритм смены страниц

Алгоритм смены страниц

Алгоритм смены страниц

В наличии

Предлагаю свой алгоритм смены страниц с помощью команд Далее/Назад

Категория:

Описание

Иногда приходится создавать группу страниц с навигацией через команды Далее/Назад.
Предлагаю свой алгоритм смены страниц. Если кому-то облегчит труд, буду рад. 

Что нам понадобится:

1. Переменная модуля формы, которая будет хранить порядок страниц, и ее инициализация

&НаКлиенте 
Перем мПорядокСтраниц; //Переменная типа Массив, который хранит ссылки на страницы в упорядоченном виде 

В подвале модуля формы инициализируем переменную 

//очередность страниц в массив важна, на основании нее будет подбираться следующая или предыдущая страница
мПорядокСтраниц = Новый Массив;
мПорядокСтраниц.Добавить(Элементы.НачальнаяСтраница);
мПорядокСтраниц.Добавить(Элементы.Страница2);
мПорядокСтраниц.Добавить(Элементы.Страница3);
мПорядокСтраниц.Добавить(Элементы.ПоследняяСтраница);

2. Две команды формы Вперед, Назад и их обработчики:

&НаКлиенте
Процедура Вперед(Команда)
	СменитьСтраницу(Истина);
КонецПроцедуры

&НаКлиенте
Процедура Назад(Команда)
	СменитьСтраницу();
КонецПроцедуры

3. Процедура смены страницы

&НаКлиенте
Процедура СменитьСтраницу(Вперед=Ложь)
	ГруппаСтраниц				= Элементы.ГруппаСтраниц;//группа страниц, которыми мы управляем
	ИндексТекущейСтраницы		= мПорядокСтраниц.Найти(ГруппаСтраниц.ТекущаяСтраница);
	НовыйИндексТекущейСтраницы	= ИндексТекущейСтраницы;//по умолчанию новый индекс - текущая страница
	
	Если Вперед Тогда
		Если НЕ ИндексТекущейСтраницы=мПорядокСтраниц.ВГраница() Тогда
			//если мы не на последней странице, то можем увеличить индекс 
			НовыйИндексТекущейСтраницы = ИндексТекущейСтраницы+1;
		КонецЕсли; 
	Иначе
		Если ИндексТекущейСтраницы<>0 Тогда
			//если мы не на первой странице, то можем уменьшить индекс 
			НовыйИндексТекущейСтраницы = ИндексТекущейСтраницы-1;
		КонецЕсли; 
	КонецЕсли; 
	
	//Установим новую текущую страницу
	ГруппаСтраниц.ТекущаяСтраница = мПорядокСтраниц[НовыйИндексТекущейСтраницы];
КонецПроцедуры
has been added to your cart:
Оформление заказа