Имя: Пароль:
1C
1С v8
СтрЗаменить(Строка, ПодстрокаПоиска, ПодстрокаЗамены) в ЗАПРОСЕ
0 somn74
 
14.05.19
17:15
Есть параметры типа "123456789", "987645609", "6437903940". В справочниках они могут быть записаны "1234 567 89", "98-76 456-09", "64 37 903-940".
Нужно найти сслыки на справочники, соответственно нужно привести значения справочников к виду параметров. Как это сделать?
ПОДСТРОКА тут не подходит.
1 ДенисЧ
 
14.05.19
17:19
приводи данные в справочниках в конкретный стандартный вид.
2 la luna llena
 
14.05.19
17:26
интересная задача, я не смогла придумать, как его решить в запросе, только получать значение, преобразовывать в удобоваримый вид и сравнивать с параметром
3 palsergeich
 
14.05.19
17:28
Приводите данные в справочниках к одному виду передЗаписью.
4 OldCondom
 
14.05.19
17:30
добавляй реквизит в справочник, пиши туда православный номер, обработкой пройдись по всем существующим.
5 somn74
 
14.05.19
17:32
Заменить значения в справочнике сликшом просто и такой вариант не подходит :)
Полагаю, что аналогия СтрЗаменить в Запросе невозможна.
6 spiller26
 
14.05.19
17:33
(0) Разбирай на символы и собирай заново без пробелов и лишних символов в запросе, но это жесть если не фиксированные строки.
7 OldCondom
 
14.05.19
17:34
(5) не заменяй, а добавляй в новый реквизит, на форму не выводи. Можно еще регистр сведений запилить, если хочется без изменения конфы.
8 hhhh
 
14.05.19
17:35
(5) через ПОДОБНО Пробуй типа

ПОДОБНО [0-9]%[0-9]%[0-9]%[0-9]%[0-9]%[0-9]%[0-9]%[0-9]%[0-9]
9 ам794123
 
14.05.19
17:45
В MySQL есть оператор RLIKE, который производит поиск в соответствии с регулярными выражениями. А вот пример из Oracle - Если Вы хотите искать только .com адреса электронной почты, то можно использовать следующий SQL-код

SELECT text FROM my_text WHERE REGEXP_LIKE (text, '[A-Z0-9._%-]+@[A-Z0-9._%-]+\.com')

Ждем, когда что-нибудь такое будет возможно в 1с.
10 Скиурус
 
14.05.19
20:26
Параметр "12345" замени на "1%2%3%4%5%" и ищи по LIKE.
Работать будет медленно.
11 Garykom
 
гуру
14.05.19
20:31
(0) Примерно так http://catalog.mista.ru/public/336783/

Свою хеш-функцию описываешь так чтобы "987645609" и "98-76 456-09" выдавали одинаковый результат.
12 palsergeich
 
14.05.19
21:03
Какие только костыли народ не изобретает, лишь бы НСИ в порядок не приводить.
А потом база лагает, потому что в этом говне индексы не работают
13 palsergeich
 
14.05.19
21:05
А все решается маленькой подпиской и новым реквизитом / РС / доп реквизитом
14 palsergeich
 
14.05.19
21:05
Ну и разовым прогоном обработки по и имеющемуся массиву НСИ
15 OldCondom
 
14.05.19
22:11
(12) действие ради действия. Мало кто работает на результат
16 Sammo
 
15.05.19
06:04
(10) Вопрос - по LIKE "1%2%3%4%5%" найдется, ну например 1122334455? А это по идее разные значения.
Можно работать с LIKE но вместо % надо будет указать все возможные виды разделителей
17 OpKc
 
15.05.19
06:26
А можно поинтересоваться, почему так принципиально не хочешь воспользоваться решением, которое предлагают palsergeich и OldCondom?
18 Simod
 
15.05.19
06:29
В "лоб":

ВЫБРАТЬ
    "1234 567 89" КАК Знач
ПОМЕСТИТЬ ВТ_Исходные

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "98-76 456-09"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "64 37 903-940"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    А.Знач КАК Знач,
    ВЫБОР
        КОГДА ПОДСТРОКА(А.Знач, 1, 1) ПОДОБНО "[0-9]"
            ТОГДА ПОДСТРОКА(А.Знач, 1, 1)
        ИНАЧЕ ""
    КОНЕЦ + ВЫБОР
        КОГДА ПОДСТРОКА(А.Знач, 2, 1) ПОДОБНО "[0-9]"
            ТОГДА ПОДСТРОКА(А.Знач, 2, 1)
        ИНАЧЕ ""
    КОНЕЦ + ВЫБОР
        КОГДА ПОДСТРОКА(А.Знач, 3, 1) ПОДОБНО "[0-9]"
            ТОГДА ПОДСТРОКА(А.Знач, 4, 1)
        ИНАЧЕ ""
    КОНЕЦ + ВЫБОР
        КОГДА ПОДСТРОКА(А.Знач, 5, 1) ПОДОБНО "[0-9]"
            ТОГДА ПОДСТРОКА(А.Знач, 5, 1)
        ИНАЧЕ ""
    КОНЕЦ + ВЫБОР
        КОГДА ПОДСТРОКА(А.Знач, 6, 1) ПОДОБНО "[0-9]"
            ТОГДА ПОДСТРОКА(А.Знач, 6, 1)
        ИНАЧЕ ""
    КОНЕЦ + ВЫБОР
        КОГДА ПОДСТРОКА(А.Знач, 7, 1) ПОДОБНО "[0-9]"
            ТОГДА ПОДСТРОКА(А.Знач, 7, 1)
        ИНАЧЕ ""
    КОНЕЦ + ВЫБОР
        КОГДА ПОДСТРОКА(А.Знач, 8, 1) ПОДОБНО "[0-9]"
            ТОГДА ПОДСТРОКА(А.Знач, 8, 1)
        ИНАЧЕ ""
    КОНЕЦ + ВЫБОР
        КОГДА ПОДСТРОКА(А.Знач, 9, 1) ПОДОБНО "[0-9]"
            ТОГДА ПОДСТРОКА(А.Знач, 9, 1)
        ИНАЧЕ ""
    КОНЕЦ + ВЫБОР
        КОГДА ПОДСТРОКА(А.Знач, 10, 1) ПОДОБНО "[0-9]"
            ТОГДА ПОДСТРОКА(А.Знач, 10, 1)
        ИНАЧЕ ""
    КОНЕЦ + ВЫБОР
        КОГДА ПОДСТРОКА(А.Знач, 11, 1) ПОДОБНО "[0-9]"
            ТОГДА ПОДСТРОКА(А.Знач, 11, 1)
        ИНАЧЕ ""
    КОНЕЦ + ВЫБОР
        КОГДА ПОДСТРОКА(А.Знач, 12, 1) ПОДОБНО "[0-9]"
            ТОГДА ПОДСТРОКА(А.Знач, 12, 1)
        ИНАЧЕ ""
    КОНЕЦ КАК Формат
ИЗ
    ВТ_Исходные КАК А
19 DrZombi
 
гуру
15.05.19
06:35
(0) Зачем?
Часто встречаю у 1С такой вид регистров, которые как раз и создаются, что бы получать уже готовую информацию в нужном виде, для определенных запросов.

... Добавь недостающую информацию в структуру метаданных, да заполняй ёё при записи элементов :)
И будет вам счастье :)
20 DrZombi
 
гуру
15.05.19
06:36
(1) +100 :)
21 craxx
 
15.05.19
08:50
(0) я прикидываю как запрос тормозить будет
22 spiller26
 
15.05.19
09:12
(21) Если данных много то да, тормозить будет, проверено уже, у меня так в работает где-то, я сразу их предупреждал, что работать будет медленно, но будет.
23 spiller26
 
15.05.19
09:15
(18), (21) Вот мой код был. Сортировка Динамического списка
Ошибка? Это не ошибка, это системная функция.