Имя: Пароль:
1C
 
УФ: Открыть форму с отбором
,
0 dft2014
 
11.10.17
14:39
8.3, Управляемые формы

В документе "ВедомостьВБанк" есть реквизит "ЗарплатныйПроект" (тип реквизита - одноименный справочник). Из реквизита "ЗарплатныйПроект", на управляемой форме, надо открыть форму выбора проектов с отбором по списку конкретных проектов. У реквизита "ЗарплатныйПроект" прописала событие "НачалоВыбора" (ниже код), но не срабатывает, выдает ошибку "Ожидается выражение "ВЫБРАТЬ".

&НаСервере
Функция ПолучитьПроект()
    
    Список = Новый СписокЗначений;
    Список.Добавить("Сбербанк");
    Список.Добавить("Альфа");
    
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    Запрос.УстановитьПараметр("ВыбПроекты", Список);
    
    ТекстЗапроса =
    "ВЫБРАТЬ
    |    ЗарплатныеПроекты.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.ЗарплатныеПроекты КАК ЗарплатныеПроекты
    |ГДЕ
    |    ЗарплатныеПроекты.Наименование В(&ВыбПроекты)";
    
    СписокПроектов = Новый СписокЗначений;
    СписокПроектов.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка")); //вот здесь ошибку выдает
    Возврат СписокПроектов;
    
КонецФункции


&НаКлиенте
Процедура ЗарплатныйПроектНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    Проекты = ПолучитьПроект();
    ЗначениеОтбора  = Новый Структура("Тип", Проекты);
    ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);  
    ОткрытьФорму("Справочник.ЗарплатныеПроекты.ФормаСписка", ПараметрыВыбора);
    
КонецПроцедуры
1 Numerus Mikhail
 
11.10.17
14:41
Запрос.Текст = ТекстЗапроса;
2 dft2014
 
11.10.17
15:55
(1) Спасибо, ошибка из (0) ушла. Но теперь стал ругаться на строчку ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора) из:

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


Ругается: "Ошибка при установке значения атрибута контекста (ПараметрыВыбора)".
3 Numerus Mikhail
 
11.10.17
15:58
(2) ПараметрыВыбора - системное поле, если мне не изменяет память. Назовите как-нибудь по-другому
4 dezss
 
11.10.17
16:09
(0) и еще не плоди контекстных серверных вызовов, тем более, если контекст вообще не используется...
5 dft2014
 
11.10.17
16:37
(3) Заменила ПараметрыВыбора на ЗначВыбора, теперь ошибок не выдается, но и отбора никакого не происходит. Открывается весь справочник "ЗарплатныеПроекты", только в верхнем левом углу светится надпись:
"Дополнительные условия
Тип документа: Сбербанк; Альфа"

Непонимаю, откуда появилось это Дополнительное условие на тип документа?! Мне нужен отбор по двум записям справочника "ЗарплатныеПроекты"!!!
6 Numerus Mikhail
 
11.10.17
16:39
(5)     ЗначениеОтбора  = Новый Структура("Тип", Проекты);
Так сами же делаете отбор по типу?
7 dft2014
 
11.10.17
16:59
(6) Значит я где-то ошибаюсь, мне нужен отбор тоько по двум записям справочника "ЗарплатныеПроекты". Т.е. из реквизита "ЗарплатныйПроект", на управляемой форме документа, мне надо открыть форму выбора проектов с отбором по списку конкретных проектов. А вместо этого у меня происходит отбор по типу документа?!
8 dft2014
 
11.10.17
17:10
Убрала отбор по типу, все равно отбор не происходит:

&НаКлиенте
Процедура ЗарплатныйПроектНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    Проекты = ПолучитьПроект();
    //    ЗначениеОтбора  = Новый Структура("Тип", Проекты);  //убрала
    ЗначВыбора = Новый Структура("Отбор", Проекты);  
    ОткрытьФорму("Справочник.ЗарплатныеПроекты.ФормаСписка", ЗначВыбора);
    
КонецПроцедуры
9 dft2014
 
11.10.17
17:11
Открывается весь справочник "ЗарплатныеПроекты".
10 _Дайвер_
 
11.10.17
17:16
(9) Ты хочешь программный отбор вывести или просто на форму добавить быстрый отбор по конкретному реквизиту?
11 mxs089
 
11.10.17
17:18
(0) тысяча дементоров, никогда, слышишь, никогда не используй метод Выгрузить без надобности!!!
12 mxs089
 
11.10.17
17:21
(0) тысяча дементоров, еще и поиск по наименованию!!!
13 mxs089
 
11.10.17
17:24
(8) тысяча дементоров, ты свои проекты тупо кинула в отбор, нужно было просто переименовать переменную ПараметрыВыбора на МояПеременнаяСОтборами!!!
14 mxs089
 
11.10.17
17:25
15 yalex
 
11.10.17
17:29
Процедура ЗарплатныйПроектНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    фиксНастройки = Новый НастройкиКомпоновкиДанных;

    эОтбор = фиксНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    эОтбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ответственный");
    эОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
    эОтбор.ПравоеЗначение = ПолучитьПроект();
    эОтбор.Применение = ТипПримененияОтбораКомпоновкиДанных.Элементы;
    эОтбор.Использование = Истина;
        
    Параметры = Новый Структура;    
    Параметры.Вставить("ФиксированныеНастройки", фиксНастройки);
    
    ОткрытьФорму("Справочник.ЗарплатныеПроекты.ФормаСписка", Параметры);
    
КонецПроцедуры
16 yalex
 
11.10.17
17:31
Конечно, Вместо  
эОтбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ответственный");
Нужно:
эОтбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Тип");
17 dft2014
 
11.10.17
17:59
(15) Спасибо, но теперь стал ругаться на строчку:
Параметры = Новый Структура
выдает ошибку:
"Поле объекта недоступно для записи (Параметры)"
18 Fedor-1971
 
11.10.17
18:09
(17) Параметры замени на ПередаваемыеПараметры
Книжку какю-нить по УФ почитай для повышения общей образованности
19 dft2014
 
12.10.17
10:34
HELP!!!
20 yalex
 
12.10.17
10:37
(19) Так подсказали ведь в (18) - переименовать название структуры "Параметры" в "ПараметрыОтбора" например
21 dft2014
 
12.10.17
10:45
(20) Спасибо. Заменила в коде (15) параметры на ПараметрыОтбора, теперь ошибки не выдает, но открывается пустой справочник "ЗарплатныеПроекты".
22 yalex
 
12.10.17
11:02
(21) Уже хорошо:) Остальное дело техники.
Нужно смотреть что возарщает ПолучитьПроекты(), по тому ли реквизиту отбирает в форме выбора
23 dft2014
 
12.10.17
15:15
HELP!!! HELP!!! HELP!!!
24 vicof
 
12.10.17
15:46
Истеричка
25 dft2014
 
12.10.17
16:32
(24) сама такая!
26 dft2014
 
12.10.17
18:29
UP!!!
27 dft2014
 
13.10.17
10:37
Ап! :(