Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 17:32

Как убрать пробелы

Автор Karatel, 04 окт 2023, 09:51

0 Пользователей и 1 гость просматривают эту тему.

Karatel

Добрый день, есть HTTP сервис который я считываю по номеру документа заказ покупателя, у него свой номер значение пример "OCA00000000" в 11 символов поле, но есть коды где прописывается пример 11111, по "OCA00000000" этому номеру поиск идет и находит документ, а если 11111 он не находит, так как в поле еще прописываются доп пробелы из за них он не считывает, как вот можно убрать эти пробелы? В запросе может или дальше где то, пробовал через ВЫРАЗИТЬ, СОКРЛП также
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказПокупателя.Ссылка КАК Ссылка,
| ЗаказПокупателя.Контрагент КАК Контрагент,
| ЗаказПокупателя.Номер КАК Номер
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
|ГДЕ
| ЗаказПокупателя.Номер = &Номер";
Если id = Неопределено Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ЗаказПокупателя.Номер = &Номер", "ИСТИНА");
Иначе
Запрос.УстановитьПараметр("Номер", СокрЛП(id));
КонецЕсли;
 
РезультатЗапроса = Запрос.Выполнить();

Если РезультатЗапроса.Пустой() Тогда
Возврат Неопределено;
КонецЕсли;

antoneus

Ну, ПОДСТРОКА могу посоветовать.
ПОДОБНО вроде еще сгодится.

LexaK

Karatel, попробуйте использовать такую конструкцию (наверно может зависеть от платформы)
    |ГДЕ
    |    СтрЗаменить(ЗаказПокупателя.Номер,"" "","""") = &Номер";
если помогло нажмите: Спасибо!

Karatel

antoneus, Подскажите как через ПОДОБНО можно сделать, чтобы справа убирал пробелы

antoneus

Так, стоп. А СОКРЛП(ЗаказПокупателя.Номер) = &Номер не работает что ли?

Karatel

antoneus, Неа, в 8.2 видимо нет, синтаксическая ошибка

antoneus

ааа. Тогда придется колхозить)

Запрос.Текст =
    "ВЫБРАТЬ
    |    ЗаказПокупателя.Ссылка КАК Ссылка,
    |    ЗаказПокупателя.Контрагент КАК Контрагент,
    |    ЗаказПокупателя.Номер КАК Номер
    |ИЗ
    |    Документ.ЗаказПокупателя КАК ЗаказПокупателя";
    Если id <> Неопределено Тогда
        Запрос.Текст = Запрос.Текст + "
    |ГДЕ
    |    ПОДСТРОКА(ЗаказПокупателя.Номер, 1, " + СтрДлина(СокрЛП(id)) + ") = &Номер";
        Запрос.УстановитьПараметр("Номер", СокрЛП(id));
    КонецЕсли;

Karatel

antoneus, Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказПокупателя.Ссылка КАК Ссылка,
| ВЫБОР
| КОГДА ПОДСТРОКА(ЗаказПокупателя.Номер, 6, 5) = "" ""
| ТОГДА ПОДСТРОКА(ЗаказПокупателя.Номер, 1, 5)
| ИНАЧЕ ЗаказПокупателя.Номер
| КОНЕЦ КАК Номер,
| ЗаказПокупателя.Контрагент.Наименование КАК КонтрагентНаименование
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
|ГДЕ
| ЗаказПокупателя.Номер = &Номер";
Если id = Неопределено Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ЗаказПокупателя.Номер = &Номер", "ИСТИНА");
Иначе
Запрос.УстановитьПараметр("Номер", id);
КонецЕсли;

Я делал так, в запросе консоля работает хорошо, пробелы убирает, но при вызове http не появляются данные, с номером примера OCA00000000 прекрасно работает.

По вашему методу не работает также, я так понимаю ПОДОБНО все таки надо

antoneus

ГДЕ &Номер + "%" подобно ЗаказПокупателя.Номер

LexaK

Karatel, а у вас пробелы где? спереди или сзади?
если помогло нажмите: Спасибо!

Похожие темы (5)

Рейтинг@Mail.ru

Поиск