Имя: Пароль:
1C
 
Открытие в форме документа определенной группы справочника
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
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) то в принципе можно получать абсолютно произвольный СправочникСписок
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн