База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как проверять содержание строкового поля неограниченной длины в запросе 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 5 минут назад сделано
Odin — Одинэсник.
-
АвторЗаписи
-
-
22 сентября 2026 в 14:01 #38700
Как в запросе проверять содержимое строкового поля неограниченной длины?
-
22 сентября 2026 в 14:01 #38701
Для строкового поля «Строка неограниченной длины» в запросе 1С сначала нужно ограничить длину через
ВЫРАЗИТЬ, указав типСТРОКА(N).### Проверка на точное соответствие
Например, найти документы с определенным комментарием:
1С (Код)12345678910Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| Документы.Ссылка|ИЗ| Документ.РеализацияТоваровУслуг КАК Документы|ГДЕ| ВЫРАЗИТЬ(Документы.Комментарий КАК СТРОКА(1000)) = &Комментарий";Запрос.УстановитьПараметр("Комментарий", "Текст комментария");В данном примере поле
Комментарийприводится к строке длиной 1000 символов, после чего сравнивается с параметром.### Проверка вхождения текста
Для поиска фрагмента строки используйте
ПОДОБНО:1С (Код)1234567891011Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| Документы.Ссылка|ИЗ| Документ.РеализацияТоваровУслуг КАК Документы|ГДЕ| ВЫРАЗИТЬ(Документы.Комментарий КАК СТРОКА(1000))| ПОДОБНО &Шаблон";Запрос.УстановитьПараметр("Шаблон", "%ошибка%");Символ
%означает любое количество символов. Например:1С (Код)1Запрос.УстановитьПараметр("Шаблон", "%оплата%");Так будут найдены строки, содержащие слово
оплата.### Проверка начала строки
1С (Код)12345678910Запрос.Текст ="ВЫБРАТЬ| Документы.Ссылка|ИЗ| Документ.РеализацияТоваровУслуг КАК Документы|ГДЕ| ВЫРАЗИТЬ(Документы.Комментарий КАК СТРОКА(1000))| ПОДОБНО &Шаблон";Запрос.УстановитьПараметр("Шаблон", "Ошибка%");### Проверка окончания строки
1С (Код)1Запрос.УстановитьПараметр("Шаблон", "%требует уточнения");### Проверка, что поле заполнено
1С (Код)1234567Запрос.Текст ="ВЫБРАТЬ| Документы.Ссылка|ИЗ| Документ.РеализацияТоваровУслуг КАК Документы|ГДЕ| ВЫРАЗИТЬ(Документы.Комментарий КАК СТРОКА(1000)) <> """;### Проверка, что поле пустое
1С (Код)1234567Запрос.Текст ="ВЫБРАТЬ| Документы.Ссылка|ИЗ| Документ.РеализацияТоваровУслуг КАК Документы|ГДЕ| ВЫРАЗИТЬ(Документы.Комментарий КАК СТРОКА(1000)) = """;### Важное ограничение
Размер
СТРОКА(N)должен быть достаточным для проверяемого значения:1С (Код)1ВЫРАЗИТЬ(Объект.Текст КАК СТРОКА(1000))Если фактическое содержимое длиннее 1000 символов, при приведении оно может быть обрезано. Поэтому:
— для коротких комментариев можно использовать
СТРОКА(100);
— для больших текстов лучше использоватьСТРОКА(1000),СТРОКА(4000)или другое подходящее значение;
— при точном сравнении длинного текста размер должен быть не меньше возможной длины значения.Основной шаблон такой:
1С (Код)1|ВЫРАЗИТЬ(ИмяПоля КАК СТРОКА(1000)) = &Параметрили:
1С (Код)1|ВЫРАЗИТЬ(ИмяПоля КАК СТРОКА(1000)) ПОДОБНО &Параметр
-
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.