Вход | Регистрация

1С:Предприятие ::

Метки:справочники

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

Я
   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) Можно и не корявить форму выбора. Вот так тоже классно работает.
Процедура ОсновнаяТехнологическаяЛинияНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Форма = Справочники.ТехнологическиеЛинии.ПолучитьФормуВыбора();
    Форма.ВладелецФормы = Элемент;
    Форма.РежимВыбора = Истина;
    Форма.ЗакрыватьПриВыборе = Истина;
    Форма.ЗакрыватьПриЗакрытииВладельца = Истина;
    Форма.СправочникСписок.Отбор.Владелец.Установить(Фирма,Истина);
    Форма.СправочникСписок.Отбор.Подразделение.Установить(Подразделение,Истина);
    Форма.НачальноеЗначениеВыбора = Элемент.Значение;
    Форма.Открыть();
КонецПроцедуры
   Elis
8 - 17.01.05 - 15:05
(7)Уважаемый Дяпти!
С вашей помощью добился того, что при открытии формы выбора курсор устанавливается в строку с группой, выбранной в форме документа в поле "ГруппаМатериалов":
Процедура ОсновнаяНаименованиеНачалоВыбора(Элемент, СтандартнаяОбработка)
 СтандартнаяОбработка = Ложь; 
 Форма = Справочники.Материалы.ПолучитьФормуВыбора(); 
 Форма.ВладелецФормы = Элемент; 
 Форма.РежимВыбора = Истина; 
 Форма.ЗакрыватьПриВыборе = Истина; 
 Форма.ЗакрыватьПриЗакрытииВладельца = Истина;
 Форма.НачальноеЗначениеВыбора = ГруппаМатериалов; 
 Форма.Открыть(); 
КонецПроцедуры

Как добиться того, чтобы в форме выбора отображались только элементы справочника, входящие в определенную группу? Использовать
"Форма.СправочникСписок.Отбор.Наименование.Установить" не получается, т.к. отбираются только элементы справочника, находящиеся в корне справочника, при этом группы по наименованию не отбираются вообще.
   ВРедная
 
9 - 17.01.05 - 17:55
Забыл вот это:
Форма.СправочникСписок.Отбор.Владелец.Установить(Фирма,Истина); 
Форма.СправочникСписок.Отбор.Подразделение.Установить(Подразделение,Истина); 

А вот это:
Форма.НачальноеЗначениеВыбора = ГруппаМатериалов;
Вот так:
Форма.НачальноеЗначениеВыбора = Элемент.Значение;
Это для позиционирования на выбранном в прошлый раз объекте.
   Elis
10 - 17.01.05 - 18:33
Я пытался с этим работать, но, если я правильно понимаю
Форма.СправочникСписок.Отбор.Владелец.Установить(Фирма,Истина);
производит отбор по владельцу справочника, у меня же справочник материалов не подчиненный,
Форма.СправочникСписок.Отбор.Подразделение.Установить(Подразделение,Истина);
производит отбор по реквизиту справочника тех элеменотов, которые находятся в корне справочника, т.е. не принадлежат группе. Если я использую наименование группы, в форме выбора справочника все равно получаю все группы.
Форма.НачальноеЗначениеВыбора = Элемент.Значение; - помогает, только если я редактирую уже заполненное поле.
Мне же необходимо в табличной части документа открывать в форме выбора справочника только элементы, и только входящие в одну группу, которую пользователь определяет в отдельном поле формы документа.
 
  Рекламное место пустует
   Elis
11 - 19.01.05 - 11:01
Уважаемый Дяпти, что я делаю не так?
   john
12 - 19.01.05 - 14:47
сам не пробовал, но может отбирать по родителю можно? Что-то типа
Форма.СправочникСписок.Отбор.Родитель.Установить(ЭлементТабПоляКотороеВыбралПользователь, истина);
   Elis
13 - 19.01.05 - 15:58
Ругается: Поле объекта не обнаружено (Родитель)
Пробовал
Форма.СправочникСписок.Отбор.Наименование.Установить.(ГруппаМатериалов.Наименование, истина)
в форме выбора все равно выводит только список всех групп, а надо только элементы одной группы
   john
14 - 19.01.05 - 17:01
Гости1 = Справочники.Клиенты.Гости;//предопределенный эл-т спр-ка Группа, в твоем случае указываешь группу из которой выбирать

    Выборка = Справочники.Клиенты.Выбрать(Гости1);
    Список = Новый СписокЗначений;
    Пока Выборка.Следующий() Цикл
        Список.Добавить(Выборка.Ссылка, Выборка.Ссылка);
    КонецЦикла;
    ЭтаФорма.отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
    ЭтаФорма.отбор.Ссылка.Значение = Список;
    ЭтаФорма.отбор.Ссылка.Использование = Истина;
       //дальше надеюсь разберешся?
   john
15 - 19.01.05 - 17:03
Замени в (14) "ЭтаФорма" на "Форма.СправочникСписок"
   john
16 - 19.01.05 - 17:05
если наставить всяких Если в Цикле в (14) то в принципе можно получать абсолютно произвольный СправочникСписок


Список тем форума
Рекламное место пустует   Рекламное место пустует
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит Тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует