Родитель справочника УФ

1. aalu14 27.10.22 11:59 Сейчас в теме
Добрый день. (УФ) Хочу открыть форму справочника сразу в нужной папке. Курю сп, не получается. Что пытаюсь сделать:
&НаКлиенте
Процедура ПолеСМСНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   	СтандартнаяОбработка = Ложь;
	ЗначениеСМС = Неопределено;
	
	ЗначениеОтбора = Новый Структура("Родитель",ОтборВШаблонахСМС());
	ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);
	ЗначениеСМС = ПолучитьФорму("Справочник.ШаблоныСМС.ФормаВыбора",ПараметрыВыбора);
	//ЗначениеСМС.Элементы.Список.ТекущийРодитель = ОтборВШаблонахСМС();
	//ЗначениеСМС.Список.КомпоновщикНастроек.Настройки.Родитель = ОтборВШаблонахСМС();
	//ЗначениеСМС.Элементы.СправочникСписок.ТекущаяСтрока = ОтборВШаблонахСМС();
	//ЗначениеСМС.Элементы.СправочникДерево.ТекущаяСтрока = ОтборВШаблонахСМС();
	ЗначениеСМС.ОткрытьМодально();
КонецПроцедуры

&НаСервере
Функция ОтборВШаблонахСМС()
	
	СсылкаНаРодителя = Справочники.ШаблоныСМС.НайтиПоКоду("000000141");
	//СсылкаНаРодителя = Справочники.ШаблоныСМС.НайтиПоНаименованию("Продажи");
	Возврат СсылкаНаРодителя; 
КонецФункции
Показать


Подскажите, как это реализовать в управляемых формах? Заранее спасибо.
По теме из базы знаний
Найденные решения
4. Alias 176 27.10.22 12:16 Сейчас в теме
Используйте РодительВерхнегоУровня вместо ТекущийРодитель.
P.S. правда в этом случае Вы потеряете возможность перехода в другую группу. Но возможно, это как раз то что нужно?
8. Alias 176 27.10.22 12:29 Сейчас в теме
(6) Если хотите чтобы возможность переходить в другие группы была -- устанавливайте ТекущийРодитель, но после строки открытия формы. Дело в том что когда Вы это делаете (в текущем варианта) форма ещё не открыта -- и устанавливать текущего родителя банально негде. Но для этого нужно избавиться от модальности.
    ЗначениеСМС = ПолучитьФорму("Справочник.ШаблоныСМС.ФормаВыбора",ПараметрыВыбора);
    ЗначениеСМС.Открыть();
    ЗначениеСМС.Элементы.Список.ТекущийРодитель = ОтборВШаблонахСМС();

Если хотите и модальность оставить -- тогда устанавливайте ТекущийРодитель в событии ПриСозданииНаСервере самой формы выбора, передав его в открываемую форму параметром.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. nomad_irk 76 27.10.22 12:09 Сейчас в теме
(1)это не реализовывается.
Максимум, что можно сделать - спозиционировать курсор(установить текущую строку) на нужной группе в списке.
14. Alias 176 27.10.22 12:42 Сейчас в теме
(3) Вы так удивительно категоричны :) это реализовывается, причём несколькими способами, и в различных вариантах.
2. user1203706 13 27.10.22 12:02 Сейчас в теме
(1) и прям модальные вызовы разрешены в свойстве конфы ?...
4. Alias 176 27.10.22 12:16 Сейчас в теме
Используйте РодительВерхнегоУровня вместо ТекущийРодитель.
P.S. правда в этом случае Вы потеряете возможность перехода в другую группу. Но возможно, это как раз то что нужно?
6. aalu14 27.10.22 12:25 Сейчас в теме
8. Alias 176 27.10.22 12:29 Сейчас в теме
(6) Если хотите чтобы возможность переходить в другие группы была -- устанавливайте ТекущийРодитель, но после строки открытия формы. Дело в том что когда Вы это делаете (в текущем варианта) форма ещё не открыта -- и устанавливать текущего родителя банально негде. Но для этого нужно избавиться от модальности.
    ЗначениеСМС = ПолучитьФорму("Справочник.ШаблоныСМС.ФормаВыбора",ПараметрыВыбора);
    ЗначениеСМС.Открыть();
    ЗначениеСМС.Элементы.Список.ТекущийРодитель = ОтборВШаблонахСМС();

Если хотите и модальность оставить -- тогда устанавливайте ТекущийРодитель в событии ПриСозданииНаСервере самой формы выбора, передав его в открываемую форму параметром.
5. user1203706 13 27.10.22 12:17 Сейчас в теме
(1)
    СтандартнаяОбработка = Ложь;
    Форма = ПолучитьФорму("Справочник.ШаблоныСМС.ФормаВыбора", , Элемент);
    Форма.Элементы.Список.ТекущийРодитель = ОтборВШаблонахСМС();
    Форма.Открыть();
7. aalu14 27.10.22 12:29 Сейчас в теме
Подскажите, пожалуйста, работает благодаря (4). Но теперь выдает ошибку "Проверка мутабельных значений на заполненность не поддерживается".

Вот так работает, но соотв. задача не решена, так как не выбран родитель, но на проверку заполненности не ругается:
&НаКлиенте
Процедура ПолеСМСНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   	СтандартнаяОбработка = Ложь;
	ЗначениеСМС = Неопределено;
	ЗначениеСМС = ПолучитьФорму("Справочник.ШаблоныСМС.ФормаВыбора").ОткрытьМодально();
	//ЗначениеСМС.Элементы.Список.РодительВерхнегоУровня = ОтборВШаблонахСМС();
	//ЗначениеСМС.ОткрытьМодально();
Если ЗначениеЗаполнено(ЗначениеСМС) Тогда
		Если НЕ Элементы.Анкеты.ТекущиеДанные = Неопределено Тогда
			Анкета = Элементы.Анкеты.ТекущиеДанные.Анкета;
			ПолеСМСнаСервере(ЗначениеСМС,Анкета);
		КонецЕсли;

КонецПроцедуры
Показать


А вот так не работает, ошибка:
&НаКлиенте
Процедура ПолеСМСНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   	СтандартнаяОбработка = Ложь;
	ЗначениеСМС = Неопределено;
	ЗначениеСМС = ПолучитьФорму("Справочник.ШаблоныСМС.ФормаВыбора");
	ЗначениеСМС.Элементы.Список.РодительВерхнегоУровня = ОтборВШаблонахСМС();
	ЗначениеСМС.ОткрытьМодально();
         Если ЗначениеЗаполнено(ЗначениеСМС) Тогда
		Если НЕ Элементы.Анкеты.ТекущиеДанные = Неопределено Тогда
			Анкета = Элементы.Анкеты.ТекущиеДанные.Анкета;
			ПолеСМСнаСервере(ЗначениеСМС,Анкета);
		КонецЕсли;

КонецПроцедуры
Показать
9. Alias 176 27.10.22 12:34 Сейчас в теме
(7) я понятия не имею где у Вас проверка на заполненность :) у меня никаких ошибок не выдаёт.
Прикрепленные файлы:
10. aalu14 27.10.22 12:35 Сейчас в теме
(5)
(9)точно! сейчас поправлю
11. aalu14 27.10.22 12:36 Сейчас в теме
12. Alias 176 27.10.22 12:38 Сейчас в теме
(7) А. Вроде другой текст был. Здесь-то понятно, кто же проверяет ЗначениеЗаполнено() для формы?
13. aalu14 27.10.22 12:41 Сейчас в теме
(12) не понимаю, почему в первом варианте работает, а во втором нет. И как быть?
15. Alias 176 27.10.22 12:44 Сейчас в теме
(13) Ну блин... Потому что в первом случае Вы проверяете на заполненность результат возврата функции ОткрытьМодально(). А во втором -- саму форму. Это же явно видно... что-то мы ушли в обсуждение совсем каких-то элементарных вещей.
16. aalu14 27.10.22 12:50 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот