Имя: Пароль:
1C
 
Форма выбора
0 ДобрыйПутник
 
25.06.25
10:39
Подскажите пожалуйста, у меня есть форма выбора и мне необходимо получать форму выбора конкретного док-та/справочника исходя из выбора пользователя, есть только описание типов этих док-тов, как сделать?
1 PR
 
25.06.25
10:40
(0) Программно
2 ДобрыйПутник
 
25.06.25
10:43
(1) Спасибо, подскажите, мб есть бспшная какая-то штука
УТ 11
3 Timon1405
 
25.06.25
10:51
4 ДобрыйПутник
 
25.06.25
10:55
(3) Эту статью я видел, но мне не совсем то нужно,
Мне нужно в зависимости от выбора пользователя менять реквизит "формавыбора" и открывать нужную форму
ФормаВыбора = "Документ.ПриобретениеТоваровУслуг.Форма.ФормаВыбора";
    ОткрытьФорму(ФормаВыбора, ПередаваемыйПараметр,,,,,Оп,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
5 Мультук
 
гуру
25.06.25
11:02
(4)

Ты про это ?
Иия "ПриобретениеТоваровУслуг" из типа сможешь получить ?

//1C открой конкретную форму по имени "ФормаВыбора"

ОткрытьФорму("Документ.ПриобретениеТоваровУслуг.Форма.ФормаВыбора")


//1C Открой форму выбора "по умолчанию", если её нет - сгенерируй

ОткрытьФорму("Документ.ПриобретениеТоваровУслуг.ФормаВыбора")



P.S.

Или так ?

Если ВыборПользователя = 0 Тогда

   ИмяФормы = "ОбалденнаяФормаВыбора";

ИначеЕсли ВыборПользователя = 1 Тогда

   ИмяФормы = "ФормаВыбораДляТетиМаши";

Иначе

   ИмяФормы = "ФормаВыбора";

КонецЕсли;

ФормаВыбора = "Документ.ПриобретениеТоваровУслуг.Форма." + ИмяФормы;
    ОткрытьФорму(ФормаВыбора, ПередаваемыйПараметр,,,,,Оп,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
6 vicof
 
25.06.25
10:59
Или так: "Алиса, открой нужную форму выбора"
7 youalex
 
25.06.25
11:00
на сервере:
    ИмяТаблицы = ОписаниеТипов.ПривестиЗначение(Неопределено).Метаданные().ПолноеИмя();
    ИмяФормыВыбора = СтрШаблон("%1.ФормаВыбора", ИмяТаблицы);

но будет ошибка если в ОТ больше 1 типа

можно еще Метаданные.НайтиПоТипу(ОписаниеТипов.Типы()[0]).ПолноеИмя()
8 vicof
 
25.06.25
11:03
(0) Я бы начал с нормального тз и нескольких вопросов:
1. нахрена?
2. вы точно уверены?
И после убедительных ответов, что мы так хотим и точно нужно, послал подальше.
9 ДобрыйПутник
 
25.06.25
11:05
(5) Типо того, но это хард код
10 ДобрыйПутник
 
25.06.25
11:09
(7) Да! Именно то, что нужно, спасибо огромное)
11 vicof
 
25.06.25
11:13
А потом начется:
Ой, а вот эту служебную форму нам показывать не надо.
Ой, а вот эта форма устарела, но ее нужно оставить.
Ой, зачем вы показываете личные данные?
И еще много всяких ой. Ставлю, что через неделю ТС прибежит с одним из таких вопросов.
12 ДобрыйПутник
 
25.06.25
11:18
(11) Не, у меня там жесткий выбор из заданного списка
13 Ёпрст
 
гуру
25.06.25
14:33
(0) для УФ очень просто. Всего-лишь подменить форму в модуле менеджера справочника/документа в
Примерно так (поменяешь там на получение прав и прочей хрени, чтоб поиметь пользователя:

Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
	
Если ПараметрыСеанса.МобильныйКлиент Тогда
    СтандартнаяОбработка = Ложь;
	Если ВидФормы = "ФормаСписка" ИЛИ ВидФормы = "ФормаВыбора" Тогда 
        ВыбраннаяФорма = Метаданные.Справочники.Номенклатура.Формы.ФормаСпискаМобильноеПриложение;
    ИначеЕсли ВидФормы = "ФормаОбъекта" Тогда 
        ВыбраннаяФорма = Метаданные.Справочники.Номенклатура.Формы.ФормаЭлементаМобильноеПриложение;
	КонецЕсли;
КонецЕсли;