|
Отбор из группы справочника | ☑ | ||
---|---|---|---|---|
0
Татьяна525
04.08.23
✎
18:17
|
Добрый вечер. Прошу сильно не ругаться. Знаю, вопрос элементарный, но уже подзабыла, как это делается.
На форме есть табличное поле. В нем колонка "Родитель", там мне нужно выбирать группу из справочника Номенклатура. В справочнике Номенклатура есть много групп с одинаковым названием. Мне нужно, чтобы при вводе текста (названия группы) в поле "Родитель" 1с предлагал варианты только из одной определенной группы (общей группы "Игрушки"). И не показывал группы, которые не лежат в папке "Игрушки". Как это можно сделать? Выбор группы осуществляется именно при ручном вводе названия группы в поле. |
|||
1
Татьяна525
04.08.23
✎
18:20
|
||||
2
Татьяна525
04.08.23
✎
18:21
|
||||
3
Татьяна525
04.08.23
✎
18:27
|
Делала так. Составляла запрос, в нем делала выборку групп по введенному тексту (с помощью "подобно") и формировала свой список значений в процедуре "ПриОкончанииРедактирования". Работает, но очень долго, хотелось бы побыстрее
|
|||
4
Гипервизор
04.08.23
✎
18:57
|
Конфигурация какая?
|
|||
5
Татьяна525
04.08.23
✎
19:02
|
(4) Розница, 8.3
|
|||
6
Гипервизор
04.08.23
✎
19:31
|
Думаю, вам надо смотреть в сторону ПолучитьДанныеВыбора.
|
|||
7
Татьяна525
05.08.23
✎
21:27
|
(6) Спасибо, буду смотреть)
|
|||
8
Остап Ибрагимович
06.08.23
✎
22:08
|
почему бы не выбор из списка - с формированием предварительно списка выбора из только доступных групп?
|
|||
9
Татьяна525
07.08.23
✎
12:24
|
(8) Делала так. Работает, но долго выполняется запрос, товаров много
Процедура ТабличноеПоле2РодительОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка В ИЕРАРХИИ(&ВерхнийРодитель) | И Номенклатура.Наименование ПОДОБНО &Текст + ""%"" | И Номенклатура.ЭтоГруппа"; Запрос.УстановитьПараметр("ВерхнийРодитель", Справочники.Номенклатура.НайтиПоКоду("РТ000197725")); Запрос.УстановитьПараметр("Текст", Текст); МассивМ = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); СписокМ = Новый СписокЗначений; СписокМ.ЗагрузитьЗначения(МассивМ); Элемент.Значение = ЭтаФорма.ВыбратьИзСписка(СписокМ, Элемент); КонецПроцедуры |
|||
10
sqr4
07.08.23
✎
12:30
|
(9) попробуйте В ИЕРАРХИИ убрать, а первоначально получить список возможных родителей.
|
|||
11
Татьяна525
07.08.23
✎
12:51
|
(10) То есть "Подобно" оставить, убрать только "В иерархии". Сделала. Отрабатывает быстро. Но ведь потом все равно нужно получить именно те группы, которые лежат в одной конкретной верхней группе
|
|||
12
sqr4
07.08.23
✎
13:35
|
(11) наслаждайтесь https://infostart.ru/1c/articles/1105799/
|
|||
13
Татьяна525
07.08.23
✎
13:39
|
(12) Спасибо большое! Уже разобралась, сделала так. Работает великолепно, список открывает быстро.
Процедура ТабличноеПоле2РодительОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Наименование ПОДОБНО &Текст + ""%"" | И Номенклатура.ЭтоГруппа"; Запрос.УстановитьПараметр("Текст", Текст); Выб = Запрос.Выполнить().Выбрать(); ИМ = Справочники.Номенклатура.НайтиПоКоду("РТ000197725"); Значение = Новый СписокЗначений; Пока Выб.Следующий() Цикл Ном = Выб.Ссылка; РодВерх = ПолучитьРодителя(Ном); Если РодВерх = ИМ Тогда Значение.Добавить(Выб.Ссылка); КонецЕсли; КонецЦикла; СтандартнаяОбработка = Ложь; КонецПроцедуры Функция ПолучитьРодителя(СправочникСсылка) Пока НЕ СправочникСсылка.Родитель.Пустая() Цикл СправочникСсылка = СправочникСсылка.Родитель; КонецЦикла; Возврат СправочникСсылка; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |