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

A1sQ.SelfTest_ByQT

Назначение: быстрый smoke‑test для связки функций BuildByQT, ExecuteByQT, UnloadByQT на типовом объекте.
Результат: Истина, если все три шага прошли без ошибок (и вернули не Неопределено); иначе Ложь и запись в лог.

Сигнатура

Function SelfTest_ByQT() Export

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

Попытка
    // 1) BuildByQT — собрать Запрос из фрагментов (QT)
    Query = BuildByQT("Ссылка", "Справочник.Номенклатура", "ПометкаУдаления = ЛОЖЬ");
    Если Query = Неопределено Тогда Возврат Ложь; КонецЕсли;

    // 2) ExecuteByQT — выполнить и получить выборку
    Sel = ExecuteByQT("Ссылка", "Справочник.Номенклатура");
    Если Sel = Неопределено Тогда Возврат Ложь; КонецЕсли;

    // 3) UnloadByQT — выгрузить таблицу значений
    TZ = UnloadByQT("Ссылка", "Справочник.Номенклатура");
    Если TZ = Неопределено Тогда Возврат Ложь; КонецЕсли;

    Возврат Истина;
Исключение
    A1sS.Print("SelfTest_ByQT failed: " + ОписаниеОшибки(), "SelfTest", ":");
    Возврат Ложь;
КонецПопытки;
Что именно проверяет: корректность цепочки «построить запрос из QT → выполнить → выгрузить» и базовую доступность типового объекта Справочник.Номенклатура с полем ПометкаУдаления. Сам факт наличия строк в справочнике не проверяется — важно, что функции не вернули Неопределено и не упали с исключением.

Возвращает

Булево — Истина при успехе всех трёх шагов; Ложь при любом сбое (в т.ч. исключении).

Когда применять

  • После установки/обновления библиотеки — убедиться, что связка *ByQT рабочих.
  • В автотестах проекта — как минимальная проверка окружения 1С.
  • При диагностике странных ошибок выполнения ByQT‑функций.

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

✅ Не требует настроек — использует стандартный «Справочник.Номенклатура»
✅ Логирует детали ошибки через A1sS.Print("...","SelfTest",":")
❗ В конфигурациях без справочника Номенклатура/поля ПометкаУдаления вернёт Ложь
❗ Не проверяет непустоту результата — только отсутствие ошибок и Неопределено
❗ Исключения перехватываются — наружу не «летят» (возвращает Ложь)
  • BuildByQT — собрать Запрос по фрагментам (QT).
  • ExecuteByQT — выполнить запрос и получить выборку.
  • UnloadByQT — выгрузить результат в ТаблицаЗначений.
  • SelfTest — если есть общий self‑test без QT (если присутствует в модуле).