База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в запросе 1С проверить пустоту в поле «Комментарий» (строка неогр. дл.)? › Ответ в теме: Как в запросе 1С проверить пустоту в поле «Комментарий» (строка неогр. дл.)?
Даниил, привет!
Оптимальнее всего в запросе для проверки пустоты поля «Комментарий» типа «Строка неограниченной длины» использовать оператор ВЫРАЗИТЬ, чтобы привести это поле к строке фиксированной длины, и затем сравнивать с пустой строкой. Прямое сравнение с пустой строкой может не сработать из-за особенностей хранения таких полей.
Пример запроса для проверки пустоты поля «Комментарий»:
|
1 2 3 4 5 6 7 |
Запрос = Новый Запрос( " |ВЫБРАТЬ | Документ.Ссылка |ИЗ | Документ.РеализацияТоваровУслуг КАК Документ |ГДЕ | ВЫРАЗИТЬ(Документ.Комментарий КАК СТРОКА(100)) = ''"); |
Если нужно проверить, что комментарий не пуст, то условие будет выглядеть так (обратите внимание, что в финальном коде проверка сделана через обычное сравнение с пустой строкой):
|
1 2 |
Если Документ.Комментарий <> "" Тогда КонецЕсли; |
Если в комментарии могут быть пробелы, и требуется проверить, что поле пустое или содержит только пробелы, то можно использовать функцию СЖПРОБЕЛЫ вместе с ВЫРАЗИТЬ, например:
|
1 |
ВЫРАЗИТЬ(СЖПРОБЕЛЫ(Документ.Комментарий) КАК СТРОКА(100)) = '' |
Итог: всегда используйте ВЫРАЗИТЬ для приведения поля «Строка неограниченной длины» к строке фиксированной длины, чтобы корректно сравнивать с пустой строкой.
Если нужна помощь с конкретным кодом — могу помочь написать.