|
Как передать в отбор результат запроса? | ☑ | ||
---|---|---|---|---|
0
svird
13.01.17
✎
11:31
|
Нашел что то тут, а оно у меня не работает:
ТЗ = Запрос.Выполнить().Выгрузить(); Ск = Новый Структура; Для каждого КолонкаТЗ Из ТЗ.Колонки Цикл Ск.Вставить("Ссылка", ТЗ[0][КолонкаТЗ.Физлицо]); КонецЦикла; ПараметрыФормы.Вставить("Отбор", Ск); |
|||
1
svird
13.01.17
✎
11:35
|
Где глянуть, как в структуру результат запроса передать?
|
|||
2
shamannk
13.01.17
✎
11:43
|
Попробуйте спросить не решение которое у вас не работает а описать проблему.
|
|||
3
svird
13.01.17
✎
11:48
|
ну у меня все просто, я в реквизит хочу выбрать физлиц которых получил запросом. В управляемых формах. Я попробывал так: ПараметрыФормы.Вставить("Отбор", Новый Структура("Ссылка", Справочники.ФизическиеЛица.НайтиПоРеквизиту("ТабельныйНомерУпр","02585")));
Все работает. Теперь хочу кинуть туда из запроса список физлиц. И никак не разберусь. |
|||
4
azernot
13.01.17
✎
11:53
|
Ск.Вставить("Ссылка", ТЗ[0][КолонкаТЗ.Физлицо])
А разве он тут не вываливается по синтаксической ошибке? |
|||
5
svird
13.01.17
✎
11:55
|
вываливается, я уже как не крутил, никак не разберусь, эту конструкцию взял отсюда: v8: Строку ТаблицыЗначений выгрузить в структуру. можно? в самом низу там.
|
|||
6
azernot
13.01.17
✎
11:59
|
Если твоя цель передать Физлицо из первой(!) строки результата запроса, то:
ТЗ = Запрос.Выполнить().Выгрузить(); Ск = Новый Структура; Если ТЗ.Количество()>0 Тогда Ск.Вставить("Ссылка", ТЗ[0].Физлицо); КонецЕсли; ПараметрыФормы.Вставить("Отбор", Ск); |
|||
7
svird
13.01.17
✎
12:02
|
(6) Сорри, мне надо всю колонку из запроса туда засунуть, что бы в форме можно было бы выбрать кого то из разрешенных.
|
|||
8
azernot
13.01.17
✎
12:07
|
(7) Если в форме, в которую ты передаёшь отбор, отдельно не прописана возможность обработки списка или массива в отборе, то не взлетит.
По умолчанию, в структуре отбора вид сравнения всегда "Равно". Но, если хочешь, убедись: ТЗ = Запрос.Выполнить().Выгрузить(); Ск = Новый Структура; Ск.Вставить("Ссылка", ТЗ.ВыгрузитьКолонку("Физлицо")); ПараметрыФормы.Вставить("Отбор", Ск); |
|||
9
azernot
13.01.17
✎
12:11
|
Но вообще, нужно делать так:
ТЗ = Запрос.Выполнить().Выгрузить(); ПараметрыФормы.Вставить("ФильтрПоСсылке", ТЗ.ВыгрузитьКолонку("Физлицо")); В форме выбора: &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Перем ЗначениеИзСтруктуры; Если Параметры.Свойство("ФильтрПоСсылке", ЗначениеИзСтруктуры) Тогда НовыйЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); НовыйЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; НовыйЭлементОтбора.ПравоеЗначение = ЗначениеИзСтруктуры; НовыйЭлементОтбора.Применение = ТипПримененияОтбораКомпоновкиДанных.Элементы; КонецЕсли; КонецПроцедуры |
|||
10
Aleksandr N
13.01.17
✎
12:22
|
(9) нет
|
|||
11
azernot
13.01.17
✎
12:29
|
(10) Хм.. ну да, в (9) заменить слово "нужно" на слово "можно".
|
|||
12
svird
13.01.17
✎
12:33
|
Я попробовал как в (9), вроде нормально, проверяю еще. Спасибо! Какие еще варианты могут быть?
|
|||
13
Aleksandr N
13.01.17
✎
12:34
|
(11) Отбор = Новый Структура("Ссылка", ТЗ.ВыгрузитьКолонку("Физлицо"));
ПараметрыФормы = Новый Структура("Отбор", Отбор); ОткрытьФорму(<Имя формы>, ПараметрыФормы); |
|||
14
svird
13.01.17
✎
12:36
|
(13) А ну да, у меня именно так: ОткрытьФорму("Справочник.ФизическиеЛица.ФормаВыбора", ПараметрыФормы, Элемент);
|
|||
15
svird
13.01.17
✎
12:37
|
Но ОткрытьФорму("Справочник.ФизическиеЛица.ФормаВыбора", ПараметрыФормы, Элемент);
На клиенте уже |
|||
16
Aleksandr N
13.01.17
✎
12:38
|
(15) Конечно. А в форме выбора ничего писать не нужно.
|
|||
17
azernot
13.01.17
✎
12:43
|
(13) Ну, я как-то пробовал, не сработало, с тех пор использую методику (9). Возможно мой эксперимент был не совсем "чистый", спорить не буду.
|
|||
18
Aleksandr N
13.01.17
✎
12:45
|
(17) На обычных формах, наверное, пробовали?
|
|||
19
azernot
13.01.17
✎
12:52
|
(18) Формы управляемые, но в режиме "обычного приложения", да.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |