A1sCode библиотека 1С

A1sQ.IsValid

Назначение: проверить, что QueryText корректен для языка запросов 1С.
Особенность: никакого логирования — только булево: Истина или Ложь.

Сигнатура

Function IsValid(QueryText) Export

Как работает (по исходному коду)

Попытка
    QW = Новый КонструкторЗапроса();
    QW.Текст = QueryText; // запускает парсинг
    Возврат Истина;
Исключение
    Возврат Ложь;         // без логов и сообщений
КонецПопытки;

Чем отличается от Validate

ФункцияВозвратЛогированиеКогда использовать
IsValidTrue / FalseНет«Тихий» чек без мусора в логе (например, при массовой генерации запросов)
ValidateTrue / FalseЕсть (по умолчанию)Нужно увидеть текст ошибки в логе

Примеры

1) Тихая проверка перед выполнением

Если A1sQ.IsValid(QT) Тогда
    ТЗ = A1sQ.Unload(QT);
Иначе
    // Например, показать пользователю свой текст ошибки/подсказку
    Сообщить("Запрос составлен некорректно");
КонецЕсли;

2) Цикл по генератору отчетов

Для Каждого JT Из КоллекцияШаблонов Цикл
    QT = СформироватьТекстЗапроса(JT);
    Если Не A1sQ.IsValid(QT) Тогда
        Продолжить; // пропускаем этот шаблон без шума в логах
    КонецЕсли;
    // выполняем QT ...
КонецЦикла;

Нюансы и ограничения

✅ Быстро и без побочных эффектов (никаких сообщений в лог)
✅ Подходит для массовых проверок
❗ Проверяет только синтаксис и базовую разрешимость идентификаторов
❗ Не гарантирует корректность на этапе выполнения (ВТ, права, типы параметров, объёмы данных)
❗ Для разбора причин ошибки используйте Validate с ShowError=Истина
  • Validate — валидация с логированием.
  • ExecuteByQT / UnloadByQT — безопасное выполнение.
  • QT / CombineQT — формирование текста запроса.