A1sQ.SelfTest
Назначение: запустить быстрый smoke‑test модуля A1sQ — чтобы убедиться, что базовые операции «строим → выполняем → выгружаем» работают в текущей базе.
Результат: Истина при успехе всех шагов, Ложь при любой ошибке (с записью в лог).
Результат: Истина при успехе всех шагов, Ложь при любой ошибке (с записью в лог).
Сигнатура
Function SelfTest() Export
Как работает (по исходнику)
// Проверка CreateQ
q = CreateQ(); If q = Undefined Тогда A1sS.Print("SelfTest FAILED: CreateQ"); Return False; EndIf;
// Проверка GetParams
q2 = CreateQ("SELECT &X AS X"); params = GetParams(q2); If params.Count()<>1 Тогда A1sS.Print("SelfTest FAILED: GetParams"); Return False; EndIf;
// Проверка BuildQ/ExecuteQ
// Создадим временную таблицу данных
tmp = A1sQ.GetTemps();
q3 = CreateQ("SELECT 1 AS a", tmp);
res = ExecuteQ("ВЫБРАТЬ 1 КАК a");
If res.Следующий() Then
If res.a <> 1 Then
A1sS.Print("SelfTest FAILED: ExecuteQ — res.a ≠ 1");
Return False;
EndIf;
Else
A1sS.Print("SelfTest FAILED: ExecuteQ — empty");
Return False;
EndIf;
// Проверка Unload
vt = Unload("ВЫБРАТЬ 1 КАК a");
If IsEmptyTable(vt) Тогда
A1sS.Print("SelfTest FAILED: Unload");
Return False;
EndIf;
// Проверка UnloadColumn
arr = UnloadColumn("SELECT 1 AS a", "a"); If arr.Count()<>1 Тогда A1sS.Print("SelfTest FAILED: UnloadColumn"); Return False; EndIf;
// Проверка пустоты
empty = IsEmptyResult("SELECT * FROM (SELECT 1 AS a) T WHERE a=0"); If Not empty Тогда A1sS.Print("SelfTest FAILED
Функция не содержит явного try/except и использует ключевые помощники BuildQ, ExecuteQ, Unload, CreateQ.
Возвращает
Булево — Истина при успешной самопроверке, иначе Ложь.
Что именно проверяется
- Создание запроса из текста (CreateQ).
- Выполнение запроса и получение выборки (ExecuteQ или Query.Execute().Select()).
- Выгрузка результата в память (Unload).
- Опционально: работа с пакетами и временными таблицами (если в исходнике есть вызовы ExecuteBatch/UnloadBatch и менеджер ВТ).
Как использовать
Если Не A1sQ.SelfTest() Тогда
ВызватьИсключение("A1sQ: самопроверка не пройдена — проверьте логи.");
КонецЕсли;
Нюансы и ограничения
✅ Быстрая проверка «всё живо» после установки/обновления
✅ Полезно в автотестах окружения
❗ Не заменяет полноценные модульные тесты ваших запросов
❗ Может зависеть от наличия типовых объектов (например, справочников) в конфигурации
❗ При Ложь смотрите записи в логе A1sS.Print
Связанные функции
- SelfTest_ByQT — самопроверка ByQT‑помощников.
- CreateQ, ExecuteQ, Unload — базовые операции.
- ExecuteBatch, UnloadBatch — пакетные операции.