|
Передать значение ТЗ в параметры запроса! | ☑ | ||
---|---|---|---|---|
0
yyyuuu
20.08.18
✎
11:06
|
Здравствуйте, есть массив. Заполняю. Передаю значения массива в Таблицу значений. Дальше хочу использовать эти значения в запросе. Но только у меня немного не получается. Уже не много запотался, хочу попросить помощи и немного разобраться со всем.
НашМассив = Новый Массив; Для Каждого Элемент Из ЭлементыФормы.ТабличноеПоле1.Значение Цикл НашМассив.Добавить(Элемент); КонецЦикла; // парамРодитель = ПолеВвода3; // ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Элемент",Новый ОписаниеТипов("Строка")); Для Каждого Строка ИЗ НашМассив Цикл НоваяСтрока = ТЗ.Добавить(); НоваяСтрока.Элемент = Строка; КонецЦикла; // Запрос = Новый Запрос; МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; Запрос.Текст = "ВЫБРАТЬ | ТЗ.Элемент КАК Элемент |ПОМЕСТИТЬ ТЗ |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТЗ.Элемент КАК Элемент, | МТР.Наименование КАК Наименование |ИЗ | Справочник.МТР КАК МТР | ЛЕВОЕ СОЕДИНЕНИЕ ТЗ КАК ТЗ | ПО (МТР.Наименование ПОДОБНО ТЗ.Элемент) |ГДЕ | ТЗ.Элемент ПОДОБНО &Элемент"; Запрос.УстановитьПараметр("Родитель", ПарамРодитель); Запрос.УстановитьПараметр("ТЗ", ТЗ); Запрос.УстановитьПараметр("Элемент", "%" + ТЗ + "%"); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Элемент); КонецЦикла; |
|||
1
hhhh
20.08.18
✎
11:10
|
(0) зачем так городить? передавай исходный массив в запрос. без таблицы
|
|||
2
catena
20.08.18
✎
11:14
|
Что это?
"Запрос.УстановитьПараметр("Элемент", "%" + ТЗ + "%");" Элемент подобен таблице значений? |
|||
3
yyyuuu
20.08.18
✎
11:18
|
(1), (2) Смотрите ребята, да знаю где то на мракобесил в коде. Просто не могу разобраться, у меня на форме есть какие то элементы которые ввел с руки. Записываю из В ТЗ, а дальше хочу использовать в запросе с функцией ПОДОБНО.
Запутался уже, где то может быть прям бордак |
|||
4
RomaH
naïve
20.08.18
✎
11:21
|
(0) где конкретно немного не получается?
|
|||
5
Deon
20.08.18
✎
11:21
|
(3) соединение сделай внутренним, а не левым.
ПО (МТР.Наименование ПОДОБНО "%"+ТЗ.Элемент+"%") раздел Где убери В параметрах тебе кроме ТЗ ничего не надо |
|||
6
yyyuuu
20.08.18
✎
11:26
|
(4) Мне кажется в параметрах что то не то
|
|||
7
yyyuuu
20.08.18
✎
11:28
|
"Преобразование значения к типу Число не может быть выполнено
Запрос.Текст = " |
|||
8
yyyuuu
20.08.18
✎
11:30
|
Запрос = Новый Запрос;
МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; Запрос.Текст = "ВЫБРАТЬ | ТЗ.Элемент КАК Элемент |ПОМЕСТИТЬ ТЗ |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТЗ.Элемент КАК Элемент, | МТР.Наименование КАК Наименование |ИЗ | Справочник.МТР КАК МТР | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТЗ КАК ТЗ | ПО (МТР.Наименование ПОДОБНО "%"+ТЗ.Элемент+"%")"; //Запрос.УстановитьПараметр("Родитель", ПарамРодитель); Запрос.УстановитьПараметр("ТЗ", ТЗ); //Запрос.УстановитьПараметр("Элемент", "%" + ТЗ + "%"); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Наименование); КонецЦикла; |
|||
9
Deon
20.08.18
✎
11:33
|
(8) Добавь кавычков """"""""""
|
|||
10
hhhh
20.08.18
✎
11:35
|
(8) ну вот это сразу выбросьте
МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; это мусор, для красоты что ли прилепили? А остально вроде должно работать. |
|||
11
yyyuuu
20.08.18
✎
11:40
|
(9) а куда добавить если по точнее?
|
|||
12
Deon
20.08.18
✎
11:43
|
ПОДОБНО ""%""+ТЗ.Элемент+""%"" )";
|
|||
13
catena
20.08.18
✎
11:44
|
| ПО (МТР.Наименование ПОДОБНО "%"+ТЗ.Элемент+"%")";
Какой именно .Элемент? Из какой строки ТЗ? Зачем ты ее путаешь? Убирай кавычки внутри текста. |
|||
14
yyyuuu
20.08.18
✎
11:44
|
МТР.Наименование ПОДОБНО ""%"" + ТЗ.Элемент + ""%"" именно так у меня и стоит и ошибка все ровно.
Неверные параметры "+" |
|||
15
catena
20.08.18
✎
11:44
|
(12)Человеку и так стремно, вы его окончательно сейчас запутаете, ага.
|
|||
16
yyyuuu
20.08.18
✎
11:45
|
(13) В ТЗ сейчас две строки, хочу их две и использовать в запросе.
|
|||
17
Deon
20.08.18
✎
11:45
|
(14) Это потому что строка должна быть с длиной
Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(100)) |
|||
18
Deon
20.08.18
✎
11:46
|
(15) Не надо бояться. 1С добрая
|
|||
19
yyyuuu
20.08.18
✎
11:46
|
Если
"%" + ТЗ.Элемент + "%")" Тогда Преобразование значения к типу Число не может быть выполнено Запрос.Текст = |
|||
20
catena
20.08.18
✎
11:48
|
(19)Сотри все, напиши заново)))
|
|||
21
hhhh
20.08.18
✎
11:48
|
(15) нормально всё, каждая строка соединение с каждой, он проверит МТР.Наименование на подобие с каждой строкой тз.
|
|||
22
catena
20.08.18
✎
11:49
|
(21)(18) да, увидела, пардон :)
|
|||
23
yyyuuu
20.08.18
✎
12:00
|
Ребята, спасибо. То как вы сказали работает. Но вот есть такая проблема. Я ведь на форме выбираю еще группу справочника из какого делать отбор.
парамРодитель = ПолеВвода3; В этом поле получаю группу в которой находятся элементы Ну и совпадение элементов. Получиться ли сделать так Запрос.Текст = "ВЫБРАТЬ | ТЗ.Элемент КАК Элемент |ПОМЕСТИТЬ ТЗ |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТЗ.Элемент КАК Элемент, | МТР.Наименование КАК Наименование |ИЗ | Справочник.МТР КАК МТР | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТЗ КАК ТЗ | ПО (МТР.Наименование ПОДОБНО ""%"" + ТЗ.Элемент + ""%"") |ГДЕ | МТР.Родитель.Наименование = &Родитель"; Где Я указал условие Запрос.УстановитьПараметр("Родитель", ПарамРодитель); |
|||
24
yyyuuu
20.08.18
✎
12:01
|
Если сделал как в (23) То находит всего 2 совпадения вместо 7
|
|||
25
FIXXXL
20.08.18
✎
12:02
|
(23) убирай родителя в связь
|
|||
26
Deon
20.08.18
✎
12:06
|
(24) ПарамРодитель у тебя Строка или Ссылка?
|
|||
27
yyyuuu
20.08.18
✎
12:07
|
(25) Я верно понимаю? Мне в мою таблицу знаечения, нужно добавить еще поле где будет хранится "Родитель"
|
|||
28
yyyuuu
20.08.18
✎
12:07
|
(24) Строка
|
|||
29
Deon
20.08.18
✎
12:07
|
(27) Не, не нужно
|
|||
30
FIXXXL
20.08.18
✎
12:07
|
(27) нет
просто условие из ГДЕ переноси в связи таблиц |
|||
31
Deon
20.08.18
✎
12:08
|
(30) Суть от этого не поменяется
|
|||
32
Deon
20.08.18
✎
12:09
|
(24) Значит у остальных 5 родитель другой
|
|||
33
yyyuuu
20.08.18
✎
12:11
|
(32) Родитель сто процентов один, глянул по справочнику
|
|||
34
Deon
20.08.18
✎
12:12
|
(33) А если условие ГДЕ из запроса убрать, то потерявшиеся элементы выдаются?
|
|||
35
yyyuuu
20.08.18
✎
12:14
|
(34) Вот, как получается смотрите ребята. Выходит так, что если убираю условие родителя то поиск идет обсолютно по всем родителям, не важно в какой группе состоит элемент
|
|||
36
Deon
20.08.18
✎
12:16
|
(35) Так и получается, да.
|
|||
37
yyyuuu
20.08.18
✎
12:17
|
(36) А Я то хочу чтобы в опредленной группе искалось). Если делаю по условию, то получается фигня какая то. А по связи Я не понял как честно сделать, что с чем связать.
|
|||
38
Deon
20.08.18
✎
12:19
|
(37) А на 34 ты не ответил
|
|||
39
yyyuuu
20.08.18
✎
12:23
|
(34) Да выдаются).Извини пожалуйста, проглядел
|
|||
40
Deon
20.08.18
✎
12:24
|
(39) Тогда ответ в (32) ))))
|
|||
41
yyyuuu
20.08.18
✎
12:28
|
(40) Я захожу в группу, ставлю отбор ровно по этому наименованию нахожу в этой группе точно 7 элементов за ПОДОБНО в наименовании "Лоток". Если в консоле просто выбираю по параметрам, результат тоже такой же 7 элементов
|
|||
42
yyyuuu
20.08.18
✎
12:34
|
(41) А вот и нет, обманул. В консоле тот же результат.
Тогда понять не могу, почему в группе Я их вижу, а в запросе всего 2 элемента относятса к этой группе. Если по расширенному отбору они там все 7 |
|||
43
yyyuuu
20.08.18
✎
12:40
|
Так же Я вижу все эти элеметы только в одной группе
|
|||
44
yyyuuu
20.08.18
✎
12:47
|
Ребята, вы были правы родитель и в правду другой. Тогда вопрос, другой. Как делать поиск по именно в группе какой элемент состоит, Я ведь выбираю группу где этот элемент находится. По наименованию может быть сравнить?
|
|||
45
catena
20.08.18
✎
12:53
|
(44)Ась?
Возможно, вам требуется "В ИЕРАРХИИ", но тогда нужно напрячься и передать в параметры ссылку, а не строку. |
|||
46
yyyuuu
20.08.18
✎
12:53
|
Друзья извините меня пожалуйста, да все правильно получается. Это Я не верно отбор стандартный понял.
Так рад что все получилось). Спасибо все за помощь. Все получилось) |
|||
47
yyyuuu
20.08.18
✎
12:54
|
всем *
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |