Открытие формы для выбора в определенной группе справочника

1. XelOla 17 13.09.20 23:22 Сейчас в теме
Здравствуйте!
Звучит банально. НО не получается. upd пошагово пожалуйста.
Есть справочник Физические лица, папка Водители, надо, чтоб при выборе водителя открывалась только папка-родитель Водители и только оттуда можно было взять водителя в документ.
Сделала - список для выбора.
с Динамическим списком
ГДЕ
	СправочникФизическиеЛица.Родитель = &РодительВодители

Писала
так
Водители = Справочники.ФизическиеЛица.НайтиПоНаименованию("Водители",Истина);
	Список.Параметры.УстановитьЗначениеПараметра("РодительВодители",Водители);
	ЭлементОформления = список.УсловноеОформление.Элементы.Добавить();
	
	//ЭлементОтбора  = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	//ЭлементОтбора.ЛевоеЗначение  =  Новый ПолеКомпоновкиДанных("Ссылка"); 
	// ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии; 
	//ЭлементОтбора.ПравоеЗначение  = Водители;


И вот так...
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Родитель");
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
	ЭлементОтбора.ПравоеЗначение = Водители;
	ЭлементОтбора.Использование  = Истина;    
	
	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);

0 эмоций. ГУГЛ не помог(((
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. BackinSoda 13.09.20 23:59 Сейчас в теме
(1) сделайте условие таким
ГДЕ
СправочникФизическиеЛица.Родитель В ИЕРАРХИИ(&РодительВодители)

и условное оформление вроде не нужно
3. Sergex 54 14.09.20 01:40 Сейчас в теме
(2) Только не родитель а ссылка

ГДЕ
СправочникФизическиеЛица.Ссылка В ИЕРАРХИИ(&РодительВодители)
5. XelOla 17 14.09.20 07:24 Сейчас в теме
(3)
тоже пустой!!!!
я не пойму!!!
в списке произвольный запрос
ВЫБРАТЬ
	СправочникФизическиеЛица.Ссылка КАК Ссылка,
	СправочникФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления,
	СправочникФизическиеЛица.Родитель КАК Родитель,
	СправочникФизическиеЛица.ЭтоГруппа КАК ЭтоГруппа,
	СправочникФизическиеЛица.Код КАК Код,
	СправочникФизическиеЛица.Наименование КАК Наименование,
	СправочникФизическиеЛица.ДатаРождения КАК ДатаРождения,
	СправочникФизическиеЛица.Пол КАК Пол,
	СправочникФизическиеЛица.ИНН КАК ИНН,
	СправочникФизическиеЛица.СтраховойНомерПФР КАК СтраховойНомерПФР,
	СправочникФизическиеЛица.Гражданство КАК Гражданство,
	СправочникФизическиеЛица.Недействителен КАК Недействителен,
	СправочникФизическиеЛица.Предопределенный КАК Предопределенный,
	СправочникФизическиеЛица.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
ИЗ
	Справочник.ФизическиеЛица КАК СправочникФизическиеЛица
ГДЕ
	СправочникФизическиеЛица.ссылка В ИЕРАРХИИ(&РодительВодители)




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

КонецПроцедуры
Показать
4. XelOla 17 14.09.20 07:21 Сейчас в теме
(2) в тком случае открывается пустой спр Физлиц
6. XelOla 17 14.09.20 10:03 Сейчас в теме
7. farengeit00 14.09.20 11:08 Сейчас в теме
(6)
&НаКлиенте
Процедура ТабличнаяЧасть1ВодительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	ОрганизацияНачалоВыбораСервер(ДанныеВыбора);
КонецПроцедуры


&НаСервере
Процедура ОрганизацияНачалоВыбораСервер(ДанныеВыбора)
	
	ДанныеВыбора = Новый СписокЗначений;
	
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	ФизическиеЛица.Наименование КАК Наименование
	               |ИЗ
	               |	Справочник.ФизическиеЛица КАК ФизическиеЛица
	               |ГДЕ
	               |	ФизическиеЛица.Родитель = &Водители";
	Запрос.УстановитьПараметр("Водители", Справочники.ФизическиеЛица.НайтиПоНаименованию("Водители", Истина));
	ТЗ = Запрос.Выполнить().Выгрузить();
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
	     ДанныеВыбора.Добавить("Выборка.Наименование", Выборка.Наименование);
	КонецЦикла;
	 
КонецПроцедуры
Показать
8. TimurD 14.09.20 11:46 Сейчас в теме
Попробуйте вот такой трюк:
    ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
    
    ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Истина );
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать",Истина );
    
    ОтборПоГруппе = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    ОтборПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
    ОтборПоГруппе.ПравоеЗначение = РодительВодители;

Показать
9. XelOla 17 14.09.20 12:59 Сейчас в теме
(8)
ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Истина );
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать",Истина );
    
	РодительВодители = Справочники.ФизическиеЛица.НайтиПоНаименованию("Водители",Истина);
    ОтборПоГруппе = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборПоГруппе.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    ОтборПоГруппе.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
    ОтборПоГруппе.ПравоеЗначение = РодительВодители;
    ОтборПоГруппе.Использование  = Истина;
Показать


Открывает всех!!!
Помогите пожалуйста!
10. TimurD 14.09.20 14:09 Сейчас в теме
(9) Так Вы отбор отдельно поставьте. Этот кот только для визуального эффекта.
11. XelOla 17 14.09.20 14:21 Сейчас в теме
(10) не понятно.
можете подсказать? как сделать, чтобы динамический список формы выбора открывался в определенной папке и не показывал остальных элементов справочника?
14. VZyryanov 14.09.20 15:32 Сейчас в теме
(9)
1. Возможно, РодительВодитель = ПустаяСсылка. Поэтому открывает всех.
2. В открытой форме этот программно установленный отбор должен быть виден в настройках списка. Смотрите, что там не так. Если отбор не виден, то в программе дополнительно нужно написать
ОтборПоГруппеРежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;
или "БыстрыйДоступ".
17. XelOla 17 15.09.20 00:00 Сейчас в теме
15. VZyryanov 14.09.20 15:36 Сейчас в теме
(9) Чтобы что-то отобрать нужно "Список", а не "ЭлементОформления":
ОтборПоГруппе = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
12. farengeit00 14.09.20 14:28 Сейчас в теме
В пункте семь открывает только что в папке.
13. XelOla 17 14.09.20 15:07 Сейчас в теме
16. EVKash 8 14.09.20 16:38 Сейчас в теме
(13) А почему просто не используете СвязиПараметровВыбора у поля?
Создали отдельный реквизит для группы водителей. Заполнили его при создании на сервере.
Остальное платформа сама сделает.
Прикрепленные файлы:
Оставьте свое сообщение
Вопросы с вознаграждением