Отбр по вложенным группам.

1. Intercititude 23.06.21 15:45 Сейчас в теме
Добрый день всем!

Пытаюсь открыть форму выбора складов с отбором по конкретной группе. Всё отрабатывает ок.
Но в данной группе есть ещё вложенная группа с элементами. Как мне сделать чтобы её элементы тоже попадали в форму выбора ?

	&НаКлиенте
Процедура СкладНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	ПараметрыВыбора = Новый Структура;

ПараметрыВыбора.Вставить("МножественныйВыбор", ЛОЖЬ);
	ПараметрыВыбора.Вставить("ЗакрыватьПриВыборе", ИСТИНА);
	ПараметрыВыбора.Вставить("РазрешитьВыборКорня", ЛОЖЬ);
	ПараметрыВыбора.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.Элементы);
	ПараметрыВыбора.Вставить("ЗакрыватьПриЗакрытииВладельца", ИСТИНА);
	ПараметрыВыбора.Вставить("ТолькоПросмотр", ИСТИНА);
	Отбор = Новый Структура();
	Отбор.Вставить("Родитель", ПолучитьГруппу());
	Отбор.Вставить("ПометкаУдаления", ЛОЖЬ);
	Отбор.Вставить("ЭтоГруппа", ЛОЖЬ);
	Отбор.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.Элементы);
	ПараметрыВыбора.Вставить("Отбор", Отбор);
	Форм = ОткрытьФорму("Справочник.Склады.ФормаВыбора", ПараметрыВыбора, Элемент, ЛОЖЬ,,,,РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
	Форм.Элементы.Список.Отображение = ОтображениеТаблицы.Список;
	
КонецПроцедуры

&НаСервере
Функция ПолучитьГруппу()
	
	Возврат  Справочники.Склады.НайтиПоНаименованию("Склад основной");
	
КонецФункции
Показать
Вознаграждение за ответ
Показать полностью
Найденные решения
13. Kolesonik 15 23.06.21 18:01 Сейчас в теме +0.13 $m
(11)
&НаКлиенте
Процедура ОткрытьФормуКоманда(Команда)
	Родитель = Получитьродителя();
		
	НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных;
	ГруппаОтбора  =  НастройкиКомпоновки.Отбор;
	ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); 
	ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Ссылка");
	ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.ВИерархии;
	ЭлементОтбора.Использование  = Истина;
	ЭлементОтбора.ПравоеЗначение = Родитель;
	
	ПараметрыВыбора = Новый Структура;
	ПараметрыВыбора.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
	ПараметрыВыбора.Вставить("РежимВыбора",Истина);
	ПараметрыВыбора.Вставить("ВыборГруппИЭлементов",ИспользованиеГруппИЭлементов.Элементы);
	ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",ПараметрыВыбора);
	ФормаВыбора.Элементы.Список.Отображение = ОтображениеТаблицы.Список;
	ФормаВыбора.Открыть();

КонецПроцедуры

Функция Получитьродителя()
	возврат Справочники.Номенклатура.НайтиПоНаименованию("Новый год" );;
КонецФункции // ()
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. FatPanzer 23.06.21 15:52 Сейчас в теме
Никак. Отборы с иерархией не работают.
3. soft_wind 23.06.21 15:56 Сейчас в теме
попробуйте не по Родителю отбирать а по элементам (ссылка)
по списку значений (по крайней мере в обычных формах так можно было)

выполняете запрос с условием

Где ССылка в иерархии (&ВашаГруппа)

результат Ссылки в СписокЗначеций (или массив)

вот это уберите
Отбор.Вставить("Родитель", ПолучитьГруппу());

и примерно это добавьте
Отбор.Вставить("Ссылка", ПолучитьСсылкиПоГруппе());
4. soft_wind 23.06.21 16:00 Сейчас в теме
или вообще замените выбор из формы (стандартный)
на выбор из Списка (перехват события ачалоВыбора(...)
СтандартнаяОбработка = Ложь;
и дальше выбор из своего списка
5. Intercititude 23.06.21 16:01 Сейчас в теме
(4) Мол запросом отобрать нужные элементы и вывести на выбор ?
6. Kolesonik 15 23.06.21 16:04 Сейчас в теме
Можно через фиксированный настройки вот пример
Прикрепленные файлы:
ФиксированныеНастройки.epf
8. Intercititude 23.06.21 17:12 Сейчас в теме
(6) Открываются только все группы. без элементов
7. soft_wind 23.06.21 16:10 Сейчас в теме
(5)да
ПоказатьВыборИзСписка()
9. Kolesonik 15 23.06.21 17:19 Сейчас в теме
Попробуйте так
ФормаВыбора.Элементы.Список.Отображение = ОтображениеТаблицы.Список;

10. Kolesonik 15 23.06.21 17:24 Сейчас в теме
(9)у вас в коде уже устанавливается это свойство, только после открытия формы)
11. Intercititude 23.06.21 17:28 Сейчас в теме
(10) В итоге отображается только группа указанная в массиве без элементов..
	НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных;
	ГруппаОтбора  =  НастройкиКомпоновки.Отбор;
	ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); 
	ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Ссылка");
	ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.ВСписке;
	ЭлементОтбора.Использование  = Истина;
	ЭлементОтбора.ПравоеЗначение = ПолучитьГруппу();
	
	ПараметрыВыбора = Новый Структура;
	ПараметрыВыбора.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
	ПараметрыВыбора.Вставить("РежимВыбора",Истина);
	ПараметрыВыбора.Вставить("МножественныйВыбор",Истина);
	
	
	Форм = ОткрытьФорму("Справочник.Склады.ФормаВыбора",ПараметрыВыбора,
	Элемент, , , , );
	Форм.Элементы.Список.Отображение = ОтображениеТаблицы.Список;	
Показать
12. FatPanzer 23.06.21 17:47 Сейчас в теме
(11)
ВидСравненияКомпоновкиДанных.ВИерархии
13. Kolesonik 15 23.06.21 18:01 Сейчас в теме +0.13 $m
(11)
&НаКлиенте
Процедура ОткрытьФормуКоманда(Команда)
	Родитель = Получитьродителя();
		
	НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных;
	ГруппаОтбора  =  НастройкиКомпоновки.Отбор;
	ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); 
	ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Ссылка");
	ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.ВИерархии;
	ЭлементОтбора.Использование  = Истина;
	ЭлементОтбора.ПравоеЗначение = Родитель;
	
	ПараметрыВыбора = Новый Структура;
	ПараметрыВыбора.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
	ПараметрыВыбора.Вставить("РежимВыбора",Истина);
	ПараметрыВыбора.Вставить("ВыборГруппИЭлементов",ИспользованиеГруппИЭлементов.Элементы);
	ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",ПараметрыВыбора);
	ФормаВыбора.Элементы.Список.Отображение = ОтображениеТаблицы.Список;
	ФормаВыбора.Открыть();

КонецПроцедуры

Функция Получитьродителя()
	возврат Справочники.Номенклатура.НайтиПоНаименованию("Новый год" );;
КонецФункции // ()
Показать
14. Intercititude 23.06.21 18:13 Сейчас в теме
(13) Единственное, почему то после выбора склад не попадаю в привязанную процедуру "СкладПриИзменении", почему так?
15. Kolesonik 15 23.06.21 18:16 Сейчас в теме
(14)Смотрите обработчики правильно назначены, в процедуру переходите если тыкнуть на лупу?
16. Intercititude 23.06.21 18:17 Сейчас в теме
(15) Да,всё ок. До этого попадало без проблем

И ещё заметил проблему, при вводе по строке отображаются все склады не смотря на наш установленный отбор. Как это обойти ?
18. Kolesonik 15 23.06.21 18:32 Сейчас в теме
(16)тогда может сделать через параметры выбора
19. Intercititude 23.06.21 18:41 Сейчас в теме
(18) Вводе по строке через параметры выбора?
17. Kolesonik 15 23.06.21 18:25 Сейчас в теме
Shift + F5 ,точка остонова, F5
Оставьте свое сообщение

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