|
Поиск позиции подстроки в строке | ☑ | ||
---|---|---|---|---|
0
NastyNasty
27.12.12
✎
13:00
|
Дорогие 1Сники! Нужна Ваша помощь. Я в запросе получаю строку (формат у нее такой: тутненужнаястрока@НУЖНАЯСТРОКА@тутненужнаястрока). Длина ненужных строк переменная, но я наверняка знаю, что строка, которая мне нужна отделена символами @. Мне нужно ИМЕННО в запросе отбросить ненужные части (отчет СКД). В голову пришел глупый вариант поиска в каждом символе строки подстроку @, чтобы выявить позицию, но это очень глупо...
|
|||
1
НЕА123
27.12.12
✎
13:04
|
(0)
а что делать? в запросе только так. |
|||
2
HouseCD
27.12.12
✎
13:05
|
Посмотри операцию Подобно (Like)
|
|||
3
NastyNasty
27.12.12
✎
13:05
|
(1) я не могу поверить, что никто не придумал адекватного решения
|
|||
4
DrShad
27.12.12
✎
13:07
|
(2) всю ветку не читал ПОДОБНО уже было?
|
|||
5
salvator
27.12.12
✎
13:08
|
(0) ПОДСТОРОКА. Но она тебе не поможет.
|
|||
6
НЕА123
27.12.12
✎
13:09
|
(3)
пардон. в (1) про запросы. если СКД, тогда спрошу - зачем? |
|||
7
NastyNasty
27.12.12
✎
13:09
|
(5)ПОДСТРОКА я использую в своем деревянном решении
|
|||
8
МихаилМ
27.12.12
✎
13:11
|
||||
9
НЕА123
27.12.12
✎
13:13
|
НУЖНАЯСТРОКА - максимальная длина какая?
|
|||
10
Reset
27.12.12
✎
13:13
|
По нормальному в запросе никак.
По ненормальному - соединять с таблицей чисел по Подстрока(Строка,Числа.Значение,1)="@", используя минимум(), получить только первые вхождения. а затем выводить Подстрока(Строка,Числа.Значение) КАК БезПервойНенужно части затем аналогично отрезать вторую (уже минимум() не нужен будет) |
|||
11
Ursus maritimus
27.12.12
✎
13:15
|
Если СКД, можно внешнюю функцию использовать
|
|||
12
NastyNasty
27.12.12
✎
13:17
|
(9) неограниченная длина
|
|||
13
dimaldinho
27.12.12
✎
13:49
|
(0) >> Мне нужно ИМЕННО в запросе отбросить ненужные части (отчет СКД).
Программно формируешь отчет. С помощью ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений выводишь результат в таблицу значений. Таблицу значений алгоритмически обрабатываешь, отрезая ненужные части строк. Получившуюся таблицу значений с правильными строками используешь как внешний источник данных в компоновке. |
|||
14
Infsams654
27.12.12
✎
14:20
|
(0) МассивПодстрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(ВсяСтрока,"@");
в типовых БП, БГУ и пр. |
|||
15
NastyNasty
28.12.12
✎
13:23
|
(14) ваше решение мне нравится, всё хорошо, спасибо, я как раз в вдгб искала подобную функцию, но у меня снова тупняк. прописываю вызов функции в вычисляемом поле. возвращается у меня массив. Но я не могу обратиться к элменту по индексу. Пишу так ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(ВсяСтрока,"@")[1]. при формировании отчета говорит "Отчет не сформирован. ожидается ) ")"". Как я могу получить элемент массива?
|
|||
16
Infsams654
28.12.12
✎
14:41
|
(15) так нельзя (в 1С к сожалению, нет хранимых процедур и пользовательских функций, как в порядочных СУБД). Поэтому нужно программно обрабатывать результат, см. например, v8: перехват результата СКД
|
|||
17
NastyNasty
10.01.13
✎
08:25
|
Нашла такой же внешний отчет, сделанный построителем. Если конфа была бы дописанная, можно было бы в свой модуль функцию засунуть, которая возвращает не массив, как стандартная, а строку
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |