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