Как сделать сравниваемые поля одинаковой длины

1. user1089020 25.03.21 09:17 Сейчас в теме
Добрый день, умники и умницы!

Есть запрос с параметром. В запросе есть строковое поле, которое преобразуется с помощью ВЫРАЗИТЬ ([НАЗВАНИЕ ПОЛЯ] КАК СТРОКА(100)). Мне нужно сравнить это поле с параметром. Параметр строкового типа, но выходит сообщение: "Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов". Типы совместимы. Остается привести сравниваемые поля к одинаковой длине. Как это сделать? Помогите, пожалуйста!
По теме из базы знаний
Найденные решения
3. DenisCh 25.03.21 09:25 Сейчас в теме
ГДЕ ВЫРАЗИТЬ(<НазваниеПоля> КАК СТРОКА(100)) = ВЫРАЗИТЬ(&Параметр КАК СТРОКА(100))
alex-l19041; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DmitriyTih 25.03.21 09:23 Сейчас в теме
(1)Приведите текст запроса и значение параметра. Если 1С ругается ""Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов", то это значит, что идет сравнение поля неограниченной длины с каким-то значением или сравниваются несовместимые типы.
Сравниваемые поля не нужно приводить к одинаковой длине.
3. DenisCh 25.03.21 09:25 Сейчас в теме
ГДЕ ВЫРАЗИТЬ(<НазваниеПоля> КАК СТРОКА(100)) = ВЫРАЗИТЬ(&Параметр КАК СТРОКА(100))
alex-l19041; +1 Ответить
4. user1089020 25.03.21 09:37 Сейчас в теме
(3) Ваше решение сработало - спасибо!
5. SlavaKron 25.03.21 09:41 Сейчас в теме
(4) То есть "ГДЕ ВЫРАЗИТЬ(<НазваниеПоля> КАК СТРОКА(100)) = &Параметр" у вас не работает?
6. DmitriyTih 25.03.21 09:54 Сейчас в теме
(4)Видимо у вас тип значения параметра "параметр" не является строкой, может быть ссылка. Поэтому не удается произвести операцию сравнения. Мой вам совет - разберитесь в причине, а не лечите симптомы! Иначе через какое-то время код может сработать неверно и вы получите некорректные данные, а ошибок никаких 1с выдавать не будет.
SlavaKron; AnryMc; +2 Ответить
7. DenisCh 25.03.21 10:05 Сейчас в теме
(6) Если тип значения параметра "параметр" не является строкой, тогда ВЫРАЗИТЬ(&Параметр КАК СТРОКА(100)) выдало бы ошибку.
8. SlavaKron 25.03.21 10:12 Сейчас в теме
(7) Не понятно какую ошибку исправляет ВЫРАЗИТЬ(&Параметр КАК СТРОКА(100)).
9. DenisCh 25.03.21 10:17 Сейчас в теме
(8) Если сработало - значит, какую-то исправляет )))
Отсюда мне не видно, что там на входе...
10. nomad_irk 72 25.03.21 10:25 Сейчас в теме
(8)Вероятно, когда &Параметр - строка неограниченной длины.
11. SlavaKron 25.03.21 10:41 Сейчас в теме
(10) Понятие неограниченной длины имеет значение только для реквизита. Когда вы передаете значение в параметр, это просто переменная примитивного типа строка.
12. SlavaKron 25.03.21 10:47 Сейчас в теме
(10) Извиняюсь, вы правы. Строка длиной выше 1024 считается неограниченной длины.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот