![]() |
![]() |
![]() |
|
Открытие в форме документа определенной группы справочника | ☑ | ||
---|---|---|---|---|
0
Elis
13.01.05
✎
15:50
|
Начинающий: help me!
В форме документа есть поле ввода "ГруппаМатериалов" типа СправочникСсылка.Материалы, режим выбора - только группы. В табличной части необходимо для колонки "Наименование", в которой открывается тот же справочник "Материалы", показывать только элементы из определенной выше группы. Пробовал разобраться сам - запутался вконец. Подскажите, в какую сторону двигаться... |
|||
1
Волшебник
13.01.05
✎
15:53
|
"В табличной части необходимо для колонки "Наименование", в которой открывается тот же справочник "Материалы", показывать только элементы из определенной выше группы."
Прочитал три раза - не понял. |
|||
3
Дяпти
13.01.05
✎
15:57
|
Ой :-)
СправочникСписок.Отбор.Ссылка.Использование = Истина; СправочникСписок.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВИерархии; СправочникСписок.Отбор.Ссылка.Значение = МояГруппа; |
|||
4
Волшебник
13.01.05
✎
16:00
|
в табличной части документа? если да, тогда при начале выбора материала надо в форме списка надо устанавливать отбор по родителю:
Процедура ПриОткрытии() СправочникСписок.Отбор.Родитель.Установить(ВыбГруппа); где ВыбГруппа - реквизит формы (именно формы!) При начале выбора значения нужно: ФормаВыбора = Справочники.Материалы.ПолучитьФормуВыбора(); ФормаВыбора.ВыбГруппа = ...; ФормаВыбора.Открыть(); у ФормаВыбора нужно установить владельца формы - поле ввода |
|||
5
Волшебник
13.01.05
✎
16:01
|
(4)+ Отбор по родителю лучше устанавливать так, как написал Дяпти
|
|||
6
Волшебник
13.01.05
✎
16:02
|
см. также:
v8: Будни: Организация подбора на 8.0 |
|||
7
Дяпти
13.01.05
✎
16:03
|
(4) Можно и не корявить форму выбора. Вот так тоже классно работает.
Процедура ОсновнаяТехнологическаяЛинияНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Форма = Справочники.ТехнологическиеЛинии.ПолучитьФормуВыбора(); Форма.ВладелецФормы = Элемент; Форма.РежимВыбора = Истина; Форма.ЗакрыватьПриВыборе = Истина; Форма.ЗакрыватьПриЗакрытииВладельца = Истина; Форма.СправочникСписок.Отбор.Владелец.Установить(Фирма,Истина); Форма.СправочникСписок.Отбор.Подразделение.Установить(Подразделение,Истина); Форма.НачальноеЗначениеВыбора = Элемент.Значение; Форма.Открыть(); КонецПроцедуры |
|||
8
Elis
17.01.05
✎
15:05
|
(7)Уважаемый Дяпти!
С вашей помощью добился того, что при открытии формы выбора курсор устанавливается в строку с группой, выбранной в форме документа в поле "ГруппаМатериалов": Процедура ОсновнаяНаименованиеНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Форма = Справочники.Материалы.ПолучитьФормуВыбора(); Форма.ВладелецФормы = Элемент; Форма.РежимВыбора = Истина; Форма.ЗакрыватьПриВыборе = Истина; Форма.ЗакрыватьПриЗакрытииВладельца = Истина; Форма.НачальноеЗначениеВыбора = ГруппаМатериалов; Форма.Открыть(); КонецПроцедуры Как добиться того, чтобы в форме выбора отображались только элементы справочника, входящие в определенную группу? Использовать "Форма.СправочникСписок.Отбор.Наименование.Установить" не получается, т.к. отбираются только элементы справочника, находящиеся в корне справочника, при этом группы по наименованию не отбираются вообще. |
|||
9
ВРедная
17.01.05
✎
17:55
|
Забыл вот это:
Форма.СправочникСписок.Отбор.Владелец.Установить(Фирма,Истина); Форма.СправочникСписок.Отбор.Подразделение.Установить(Подразделение,Истина); А вот это: Форма.НачальноеЗначениеВыбора = ГруппаМатериалов; Вот так: Форма.НачальноеЗначениеВыбора = Элемент.Значение; Это для позиционирования на выбранном в прошлый раз объекте. |
|||
10
Elis
17.01.05
✎
18:33
|
Я пытался с этим работать, но, если я правильно понимаю
Форма.СправочникСписок.Отбор.Владелец.Установить(Фирма,Истина); производит отбор по владельцу справочника, у меня же справочник материалов не подчиненный, Форма.СправочникСписок.Отбор.Подразделение.Установить(Подразделение,Истина); производит отбор по реквизиту справочника тех элеменотов, которые находятся в корне справочника, т.е. не принадлежат группе. Если я использую наименование группы, в форме выбора справочника все равно получаю все группы. Форма.НачальноеЗначениеВыбора = Элемент.Значение; - помогает, только если я редактирую уже заполненное поле. Мне же необходимо в табличной части документа открывать в форме выбора справочника только элементы, и только входящие в одну группу, которую пользователь определяет в отдельном поле формы документа. |
|||
11
Elis
19.01.05
✎
11:01
|
Уважаемый Дяпти, что я делаю не так?
|
|||
12
john
19.01.05
✎
14:47
|
сам не пробовал, но может отбирать по родителю можно? Что-то типа
Форма.СправочникСписок.Отбор.Родитель.Установить(ЭлементТабПоляКотороеВыбралПользователь, истина); |
|||
13
Elis
19.01.05
✎
15:58
|
Ругается: Поле объекта не обнаружено (Родитель)
Пробовал Форма.СправочникСписок.Отбор.Наименование.Установить.(ГруппаМатериалов.Наименование, истина) в форме выбора все равно выводит только список всех групп, а надо только элементы одной группы |
|||
14
john
19.01.05
✎
17:01
|
Гости1 = Справочники.Клиенты.Гости; //предопределенный эл-т спр-ка Группа, в твоем случае указываешь группу из которой выбирать
Выборка = Справочники.Клиенты.Выбрать(Гости1); Список = Новый СписокЗначений; Пока Выборка.Следующий() Цикл Список.Добавить(Выборка.Ссылка, Выборка.Ссылка); КонецЦикла; ЭтаФорма.отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке; ЭтаФорма.отбор.Ссылка.Значение = Список; ЭтаФорма.отбор.Ссылка.Использование = Истина; //дальше надеюсь разберешся? |
|||
15
john
19.01.05
✎
17:03
|
Замени в (14) "ЭтаФорма" на "Форма.СправочникСписок"
|
|||
16
john
19.01.05
✎
17:05
|
если наставить всяких Если в Цикле в (14) то в принципе можно получать абсолютно произвольный СправочникСписок
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |