Имя: Пароль:
1C
1С v8
Выбрать контрагентов по "юр-физ лицам"
0 Inkognito
 
25.11.14
15:32
Необходимо выбирать из контрагентов физических или юридических лиц.
Добавил "Список выбора", добавил в него два значения (+кнопка очистки). Казалось бы, все просто, но при попытке отбора получаем ошибку:
Ошибка при установке значения атрибута контекста (Значение)
ЭлементОтбора.Значение       =  ЮрФизЛицоКонтрагента;
Прилагаю код. Помогите разобраться пожалуйста!

Перем СписокЮФ;

Процедура ПриОткрытии()
СписокЮФ = Новый СписокЗначений();
СписокЮФ.Добавить("Юр. лицо");
СписокЮФ.Добавить("Физ. лицо");
ЭлементыФормы.ЮрФизЛицоКонтрагента.СписокВыбора = СписокЮФ;
КонецПроцедуры

Процедура Тест(Кнопка)

Запрос  =  Новый Запрос;
    ТекстЗапроса  =  "ВЫБРАТЬ
    |Контрагенты.Ссылка КАК Контрагент,
    |Контрагенты.ЮрФизЛицо КАК ЮрФизЛицо
    |   ИЗ
    |Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |   НЕ Контрагенты.ЭтоГруппа
    |УПОРЯДОЧИТЬ ПО
    |    Контрагенты.Наименование";  
    
    ПостроительЗапроса  =  Новый ПостроительЗапроса(ТекстЗапроса);         
    ПостроительЗапроса.ЗаполнитьНастройки();                      
    Отбор  =  ПостроительЗапроса.Отбор;
    
    Если ЗначениеЗаполнено(ЮрФизЛицоКонтрагента) Тогда
            ЭлементОтбора  =  Отбор.Добавить("ЮрФизЛицо");
            ЭлементОтбора.Использование  =  Истина;
            ЭлементОтбора.Значение       =  ЮрФизЛицоКонтрагента;
            ЭлементОтбора.ВидСравнения   =  ВидСравнения.Равно;            
    КонецЕсли;
        
    ПостроительЗапроса.Выполнить();
    Выборка  =  ПостроительЗапроса.Результат.Выгрузить();
    Сообщить(СокрЛП(ЮрФизЛицоКонтрагента) + Выборка.Количество());
    
КонецПроцедуры
1 Господин ПЖ
 
25.11.14
15:37
>СписокЮФ.Добавить("Юр. лицо");
>СписокЮФ.Добавить("Физ. лицо");

готично...
2 Inkognito
 
25.11.14
15:53
Да хоть как, - главное чтобы работало... Можете предложить иной вариант реализации?
3 Господин ПЖ
 
25.11.14
15:57
стесняюсь спросить

1. накой черт тут построитель?
2. где его инструкции? ну допустим он отбор по дефалту поднимет...
3. почему вместо перечисления суется строка? Она конечно "похожа на настоящую" - но не то.
4 Inkognito
 
25.11.14
20:07
1. Удобней
2. Никаких инструкций не прописывал
3. Может кому пригодится: в свойствах элемента "ЮрФизЛицоКонтрагента" поменял со строки на "ПеречислениеСсылка.ЮрФизЛицо". Все заработало. Закомментировал
//Перем СписокЮФ;
//СписокЮФ = Новый СписокЗначений();
//СписокЮФ.Добавить("Юр. лицо");
//СписокЮФ.Добавить("Физ. лицо");
//ЭлементыФормы.ЮрФизЛицоКонтрагента.СписокВыбора = СписокЮФ;