|
Поиск подстроки в строке (Конструктор запросов) | ☑ | ||
---|---|---|---|---|
0
Andrey2C
09.03.15
✎
18:36
|
Добрый день. Подскажите как в строке в запросе выбрать только то, что начинается с определенного символа ("/"). Все что после нужно выбрать. Есть функция ПОДСТРОКА(1,1,1). Но как найти номер символа в строке? Заранее благодарен.
|
|||
1
Крошка Ру
09.03.15
✎
18:44
|
ПОДОБНО "/%"
|
|||
2
Крошка Ру
09.03.15
✎
18:44
|
Оу, неверно прочитал
|
|||
3
Andrey2C
09.03.15
✎
18:54
|
Ну если так сделать не получится, то хотя бы подскажите как выбрать 6 крайних слева символов. Хотя там может быть и 3 и 4 и 6 символов. Разные варианты но все точно начинается с символа "/" и он встречается в строке строго 1 раз.
|
|||
4
PR
09.03.15
✎
18:58
|
(3) ВЫБОР
|
|||
5
Andrey2C
09.03.15
✎
19:02
|
(4) А если можно чуть более подробно описать.
|
|||
6
PR
09.03.15
✎
19:06
|
(5) ВЫБОР
КОГДА ПОДСТРОКА(Строка, 1, 1) = "/" ТОГДА ПОДСТРОКА(Строка, 2) КОГДА ПОДСТРОКА(Строка, 2, 1) = "/" ТОГДА ПОДСТРОКА(Строка, 3) КОГДА ПОДСТРОКА(Строка, 3, 1) = "/" ТОГДА ПОДСТРОКА(Строка, 4) КОГДА ПОДСТРОКА(Строка, 4, 1) = "/" ТОГДА ПОДСТРОКА(Строка, 5) КОГДА ПОДСТРОКА(Строка, 5, 1) = "/" ТОГДА ПОДСТРОКА(Строка, 6) КОГДА ПОДСТРОКА(Строка, 6, 1) = "/" ТОГДА ПОДСТРОКА(Строка, 7) ИНАЧЕ "Да ну нафиг это неблагодарное дело" КОНЕЦ |
|||
7
Andrey2C
09.03.15
✎
19:17
|
(6) Спасибо большое! Это сколько же у меня строк в запросе будет теперь.))
|
|||
8
Garykom
гуру
09.03.15
✎
19:19
|
А может не надо это в запросе делать?
|
|||
9
Andrey2C
09.03.15
✎
19:27
|
(8) Да вот именно в запросе и надо. По другому никак. Отчет написан в конструкторе запросов и выбирается из внешних данных. А он довольно таки большой. Если бы по другому, то было бы куда проще.
|
|||
10
ShoGUN
09.03.15
✎
19:44
|
(9) Могу предложить только компоновку и тамошний вызов функций глобальных модулей. В обычном запросе увы - только(6)
|
|||
11
Andrey2C
10.03.15
✎
15:05
|
(10) Значит пробую еще так. Создал вычисляемое поле с произвольным названием в Путь к данным: "Номер символа"
В Выражение пишу: ОбщийМодуль1.ВычислитьНомерСимвола(СсылкаНаОбъект //Ссылку получаю из запроса) В Общем модуле пишу: Функция ВычислитьНомерСимвола(СсылкаНаОбьект) ЭКСПОРТ Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |Emp.Name КАК ИмяСотр |ИЗ ВнешнийИсточникДанных.TPS.Таблица.Emp КАК Emp |ГДЕ Emp.Ссылка = &ВыбСсылка"; Запрос.УстановитьПараметр("ВыбСсылка", СсылкаНаОбьект); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Значение = Найти(Выборка.ИмяСотр," "); КонецЦикла; Возврат Значение; КонецФункции Но выдает ошибку: Ошибка исполнения отчета по причине: Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата' по причине: {ВнешнийОтчет.Отчет.МодульОбъекта(11)}: Ошибка при вызове метода контекста (Вывести) по причине: Ошибка вывода результата по причине: Ошибка при выводе результата по причине: Ошибка получения данных по причине: Ошибка в выражении по причине: Синтаксическая ошибка "ОбщийМодуль1.ВычислитьНомерСимвола" 1. Может я что-то делаю не так? 2. Возможно ли вообще такое с внешними источниками данных в конструкторе запроса? |
|||
12
karabas11
10.03.15
✎
18:18
|
ADO вместо внешнего источника не пойдет?
Если можно, тогда если это MSSQL, то там есть куча строковых функций типа Charindex |
|||
13
ShoGUN
10.03.15
✎
21:15
|
(11) Модуль должен быть глобальным(!)
|
|||
14
Andrey2C
11.03.15
✎
08:41
|
(13) Сделал глобальным. Отрабатывает точно также(
|
|||
15
shuhard
11.03.15
✎
08:44
|
(11)[ Возможно ли вообще такое с внешними источниками данных в конструкторе запроса?]
каким боком инструмент - конструктор запроса соотноситься с СКД ? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |