|
v7: Помогите разобраться с запросом | ☑ | ||
---|---|---|---|---|
0
vitalka
16.07.19
✎
14:40
|
ВыбФрагмент = СокрЛП(""+ВыбФрагмент);
Если ПустаяСтрока(ВыбФрагмент) = 1 Тогда Сообщить("Пустое значение поиска!!!!"); Возврат; КонецЕсли; Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |КакУПоставщика = Справочник.КодТовара.Наименование; |Товар = Справочник.КодТовара.Владелец; |Поставщик = Справочник.КодТовара.Поставщик; |Группировка Товар; |Группировка КакУПоставщика; |Группировка Поставщик без групп; |Условие(Найти(Строка(КакУПоставщика),Строка(ВыбФрагмент))>0); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей Товар // Таб.ВывестиСекцию("Товар"); Пока Запрос.Группировка(2) = 1 Цикл Пока Запрос.Группировка(3) = 1 Цикл // Заполнение полей КакУПоставщика Таб.ВывестиСекцию("КакУПоставщика"); КонецЦикла; КонецЦикла; КонецЦикла; в справочнике КодТовара есть три элемента с наименованиями (BJ3-111TOKO),(T1314011) и (T1314011=BJ3-111) При ВыбФрагмент = "BJ3-111" запрос выдает только (T1314011=BJ3-111) При ВыбФрагмент = "T1314011" запрос выдает только (T1314011) При ВыбФрагмент = "T131401" запрос ничего не находит Почиму так? |
|||
1
D_E_S_131
16.07.19
✎
14:46
|
А нельзя не превращать строки в строки?
|
|||
2
Mukrob
16.07.19
✎
14:47
|
При ВыбФрагмент = "T1314011" запрос выдает только (T1314011)
При ВыбФрагмент = "T131401" запрос ничего не находит это точно? По условию (При ВыбФрагмент = "T131401" запрос ничего не находит) не может быть пустым ;-) возможно в кодировке опечатка? проверь русские английские буквы |
|||
3
vitalka
16.07.19
✎
14:49
|
это я уже пробовал как-то повлиять на результат
сразу было так: |Условие(Найти(КакУПоставщика,ВыбФрагмент)>0); |
|||
4
Mukrob
16.07.19
✎
14:49
|
(0) предположу нашел 0-ой символ
по условию При ВыбФрагмент = "BJ3-111" запрос выдает только (T1314011=BJ3-111) т.е. фрагмент с 10 символа он не нашел BJ3-111TOKO т.к. 0-ой символ дальше думаю допетришь. |
|||
5
Mukrob
16.07.19
✎
14:50
|
Условие(Найти(КакУПоставщика,ВыбФрагмент)<>Неопределено)
или как-то так.. попробуй.., ибо >0 не правильная логика. |
|||
6
uno-group
16.07.19
✎
14:51
|
СтрПоиска=СокрЛП(ВыбФрагмент) и заменить в условии. ТЫ его присвоил реквизиту на форме и лишние пробелы некуда не делись.
|
|||
7
vitalka
16.07.19
✎
14:51
|
)))) допер
|
|||
8
Mukrob
16.07.19
✎
14:53
|
(7) Родился вот такой монстр по простому ;-)
Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |КакУПоставщика = "ЛЮБОЙ СИМВОЛ"+Справочник.КодТовара.Наименование; |Товар = Справочник.КодТовара.Владелец; |Поставщик = Справочник.КодТовара.Поставщик; |Группировка Товар; |Группировка КакУПоставщика; |Группировка Поставщик без групп; |Условие(Найти(Строка(КакУПоставщика),Строка(ВыбФрагмент))>0); |"//}}ЗАПРОС ; |
|||
9
vitalka
16.07.19
✎
14:58
|
(6) сделал по Вашему совету, все заработало - проблема была в лишних пробелах
ВыбФрагмент_ = СокрЛП(""+ВыбФрагмент); Если ПустаяСтрока(ВыбФрагмент_) = 1 Тогда Сообщить("Пустое значение поиска!!!!"); Возврат; КонецЕсли; Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |КакУПоставщика = Справочник.КодТовара.Наименование; |Товар = Справочник.КодТовара.Владелец; |Поставщик = Справочник.КодТовара.Поставщик; |Группировка Товар; |Группировка КакУПоставщика; |Группировка Поставщик без групп; |Условие(Найти(Строка(КакУПоставщика),Строка(ВыбФрагмент_))<>0); |"//}}ЗАПРОС ; |
|||
10
vitalka
16.07.19
✎
14:59
|
Всем спасибо
|
|||
11
uno-group
16.07.19
✎
14:59
|
А смысл Найти(Строка(КакУПоставщика),Строка(ВыбФрагмент))>
Строка-лишнее уж лучше сокрЛП |
|||
12
uno-group
16.07.19
✎
15:01
|
по хорошему нужно справочник кодов подчинить ТМЦ и писать туда по 1 коду. будет подчинение многие к 1 и работать простое Спр.НайтиПоКоду
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |