Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 апр 2025, 07:07

Создание "Мастера ввода" управляемое приложение

Автор saxon, 12 апр 2013, 12:56

0 Пользователей и 1 гость просматривают эту тему.

saxon

Доброе время суток! При разработке мастера ввода данных в управляемой форме у меня возникли сложности. Необходимо чтобы при нажатии на кнопку "Далее" в элементе "Группа - Страницы" перелистывались элементы "Группа - страница". Сами страницы я получил (Элементы.Стр.ПодчиненныеЭлементы[0]), а вот как нужную страницу показать? Можно ли это как нибудь реализовать? Буду благодарен если пришлете какой нибудь исходник. Заранее спасибо

Dethmontt

Как пример
&НаКлиенте Процедура Далее(Команда) МассивСтраниц = Новый Массив; Для Каждого Эл Из Элементы Цикл Если Эл.Вид = ВидГруппыФормы.Страница Тогда МассивСтраниц.Добавить(Эл); КонецЕсли; КонецЦикла; ИндексЭлемента = НайтиТекущуюСтраницу(ТекущийЭлемент,МассивСтраниц); Если НЕ ИндексЭлемента = Неопределено Тогда Если ИндексЭлемента<МассивСтраниц.ВГраница() Тогда ТекущийЭлемент = МассивСтраниц.Получить(ИндексЭлемента+1); КонецЕсли; КонецЕсли; КонецПроцедуры &НаКлиенте Функция НайтиТекущуюСтраницу(ТекЭлемент,МассивСтраниц) Если ТекЭлемент = Неопределено Тогда Возврат Неопределено; КонецЕсли; Если ТекЭлемент.Вид = ВидГруппыФормы.Страница Тогда Возврат МассивСтраниц.Найти(ТекЭлемент); Иначе Возврат НайтиТекущуюСтраницу(ТекЭлемент.Родитель,МассивСтраниц); КонецЕсли; КонецФункции
Добавлено: 12 апр 2013, 15:43


Единственно, для нескольких групп страниц будет двигать и страницы других групп
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

Вот более правильный код:
&НаКлиенте Процедура Далее(Команда) мСменитьСтраницу(1); КонецПроцедуры &НаКлиенте Процедура Назад(Команда) мСменитьСтраницу(-1); КонецПроцедуры &НаКлиенте Функция НайтиТекущуюСтраницу(ТекЭлемент,МассивСтраниц) Если ТекЭлемент = Неопределено Тогда Возврат ТекЭлемент; КонецЕсли; Если ТекЭлемент.Вид = ВидГруппыФормы.Страница Тогда Возврат МассивСтраниц.Найти(ТекЭлемент); Иначе Возврат НайтиТекущуюСтраницу(ТекЭлемент.Родитель,МассивСтраниц); КонецЕсли; КонецФункции &НаКлиенте Функция НайтиТекущуюГруппуСтраниц(ТекЭлемент) Если ТекЭлемент = Неопределено Тогда Возврат ТекЭлемент; КонецЕсли; Если ТекЭлемент.Вид = ВидГруппыФормы.Страницы Тогда Возврат ТекЭлемент; Иначе Возврат НайтиТекущуюГруппуСтраниц(ТекЭлемент.Родитель); КонецЕсли; КонецФункции &НаКлиенте Процедура мСменитьСтраницу(Направление=1) ТекГруппаСтраниц = НайтиТекущуюГруппуСтраниц(ТекущийЭлемент); Если ТекГруппаСтраниц = Неопределено Тогда Возврат; КонецЕсли; МассивСтраниц = Новый Массив; Для Каждого Эл Из Элементы Цикл Если Эл.Вид = ВидГруппыФормы.Страница и Эл.Родитель = ТекГруппаСтраниц Тогда МассивСтраниц.Добавить(Эл); КонецЕсли; КонецЦикла; ИндексЭлемента = НайтиТекущуюСтраницу(ТекущийЭлемент,МассивСтраниц); Если НЕ ИндексЭлемента = Неопределено Тогда Если ИндексЭлемента<МассивСтраниц.ВГраница() и Направление>0 Тогда ТекущийЭлемент = МассивСтраниц.Получить(ИндексЭлемента+Направление); ИначеЕсли ИндексЭлемента>0 и Направление<0 Тогда ТекущийЭлемент = МассивСтраниц.Получить(ИндексЭлемента+Направление); КонецЕсли; КонецЕсли; КонецПроцедуры
Добавлено: 12 апр 2013, 15:45


обработкаТест
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск