Имя: Пароль:
1C
 
Мастер в 1С
0 Wallesss
 
23.04.24
09:39
Здравствуйте, возник вопрос, касающийся программной реализации интерфейса пользователя в управляемой форме.
Мастер (англ. Wizard — волшебник) — приём построения пользовательских интерфейсов, при котором для совершения какого-то действия пользователю необходимо последовательно пройти несколько форм, содержащих небольшое количество элементов управления. Применяется при установке и начальной настройке программ.

Основной вопрос: есть ли возможность реализовать (желательно только с использованием языка программирования 1С) несколько форм, связанных между собой кнопками "Далее" и "Назад" и содержащих различные элементы интерфейса? Для решения данной задачи подойдут слои, панели или страницы? Используются управляемые формы.

На данный момент имеется такой код:
&НаСервере
Процедура Мастер()
    ГруппаСтраниц = ЭтаФорма.Элементы.Вставить("ГруппаСтраницы", Тип("ГруппаФормы"),ЭтаФорма);
    ГруппаСтраниц.Вид = ВидГруппыФормы.Страницы;
    ГруппаСтраниц.ОтображениеСтраниц = ОтображениеСтраницФормы.ЗакладкиСверху;
    ГруппаСтраниц.ОтображениеСтраниц = ОтображениеСтраницФормы.Нет;
    ГруппаСтраниц.РастягиватьПоГоризонтали = ИСТИНА;
    
    СтраницаТовары = ЭтаФорма.Элементы.Добавить("СтраницаТовары", Тип("ГруппаФормы"),ГруппаСтраниц);
    СтраницаТовары.Вид = ВидГруппыФормы.Страница;
    СтраницаТовары.Заголовок = "Товары";
    
    СтраницаДополнительно = ЭтаФорма.Элементы.Добавить("СтраницаДополнительно", Тип("ГруппаФормы"),ГруппаСтраниц);
    СтраницаДополнительно.Вид = ВидГруппыФормы.Страница;
    СтраницаДополнительно.Заголовок = "Дополнительно";
    
    НовыйЭлемент2 = Элементы.Добавить("НоваяНадпись",Тип("ДекорацияФормы"),СтраницаДополнительно);
    НовыйЭлемент2.Заголовок = "НоваяНадпись2";
    
    НовыйЭлемент3 = Элементы.Добавить("НоваяНадпись2",Тип("ДекорацияФормы"),СтраницаТовары);
    НовыйЭлемент3.Заголовок = "НоваяНадпись1";
    
    Кмд = ЭтаФорма.Команды.Добавить("Команда1");
    Кмд.Действие = "НажатиеКнопки";
    Кмд.Заголовок = "Переход";
    
    Элемент = ЭтаФорма.Элементы.Добавить("Кнопка1", Тип("КнопкаФормы"), СтраницаТовары);
    Элемент.Вид = ВидКнопкиФормы.ОбычнаяКнопка;
    Элемент.ИмяКоманды = "Команда1";
КонецПроцедуры

&НаКлиенте
Процедура НажатиеКнопки()
    ЭтаФорма.Элементы.<ГруппаСтраницы>.ТекущаяСтраница = ЭтаФорма.Элементы.<СтраницаДополнительно>; //?
КонецПроцедуры

Связанный вопрос: можно ли из процедуры "НажатиеКнопки" получить доступ к элементам формы "ГруппаСтраницы" и "СтраницаДополнительно"?
1 Волшебник
 
23.04.24
09:40
НовыйЭлемент2.Заголовок = "НоваяНадпись2";
...
Элемент.ИмяКоманды = "Команда1";

Ваш мастер — говно.
2 Климов Сергей
 
23.04.24
09:47
(0) Конечно, можно. Какие именно элементы - дело вкуса. В качестве примера можно посмотреть обработку свёртки базы в типовой 1С:Бухгалтерии.
3 Михаил Козлов
 
23.04.24
09:56
(2)+ В типовых УТ, КА обработка Формирование заказов по потребностям.
4 Мультук
 
23.04.24
10:08
(0)

1) Погуглил за тебя

https://infostart.ru/1c/tools/1052419/

Как писали выше в типовых куча примеров:
-- импорт
-- Удаление помеченных
-- Создание контрагентов

2) О динамическом создании элементов

https://infostart.ru/1c/articles/1118319/


3) Не имея опыта программирования в 1С, вот так сразу лезть в визарды и
динамическое создание форм ? Удачи!
5 Волшебник
 
23.04.24
10:21
(4) Хост-системе насрать. Она просто генерит задачи и смотрит, кто выплывет
6 Wallesss
 
23.04.24
22:37
&НаКлиенте
Процедура НажатиеКнопки()
    ЭтаФорма.Элементы["ГруппаСтраницы"].ТекущаяСтраница = ЭтаФорма.Элементы["СтраницаДополнительно"];
КонецПроцедуры

Оказывается, я имя элемента формы не в том свойстве указывал.
7 2S
 
23.04.24
22:51
ИИ шалит