A1sQ.IsValid
Назначение: проверить, что QueryText корректен для языка запросов 1С.
Особенность: никакого логирования — только булево: Истина или Ложь.
Особенность: никакого логирования — только булево: Истина или Ложь.
Сигнатура
Function IsValid(QueryText) Export
Как работает (по исходному коду)
Попытка
QW = Новый КонструкторЗапроса();
QW.Текст = QueryText; // запускает парсинг
Возврат Истина;
Исключение
Возврат Ложь; // без логов и сообщений
КонецПопытки;
Чем отличается от Validate
| Функция | Возврат | Логирование | Когда использовать |
|---|---|---|---|
| IsValid | True / False | Нет | «Тихий» чек без мусора в логе (например, при массовой генерации запросов) |
| Validate | True / False | Есть (по умолчанию) | Нужно увидеть текст ошибки в логе |
Примеры
1) Тихая проверка перед выполнением
Если A1sQ.IsValid(QT) Тогда
ТЗ = A1sQ.Unload(QT);
Иначе
// Например, показать пользователю свой текст ошибки/подсказку
Сообщить("Запрос составлен некорректно");
КонецЕсли;
2) Цикл по генератору отчетов
Для Каждого JT Из КоллекцияШаблонов Цикл
QT = СформироватьТекстЗапроса(JT);
Если Не A1sQ.IsValid(QT) Тогда
Продолжить; // пропускаем этот шаблон без шума в логах
КонецЕсли;
// выполняем QT ...
КонецЦикла;
Нюансы и ограничения
✅ Быстро и без побочных эффектов (никаких сообщений в лог)
✅ Подходит для массовых проверок
❗ Проверяет только синтаксис и базовую разрешимость идентификаторов
❗ Не гарантирует корректность на этапе выполнения (ВТ, права, типы параметров, объёмы данных)
❗ Для разбора причин ошибки используйте Validate с ShowError=Истина
Связанные функции
- Validate — валидация с логированием.
- ExecuteByQT / UnloadByQT — безопасное выполнение.
- QT / CombineQT — формирование текста запроса.