Перейти к содержанию

BSL022 — Использование модальных окон

Кратко

Использование модальных окон

Идентификаторы

Поле Значение
Код правила BSL022
Совместимый псевдоним UsingModalWindows
Серьёзность WARNING
Включено по умолчанию Да
Реализовано Да
Теги deprecated, ui

Поведение

  • Публичный идентификатор BSL022 и псевдоним UsingModalWindows стабильны.
  • Правило сообщает о случаях, описанных на этой странице.
  • Подавления и проектная конфигурация применяются до публикации результата.
  • Для выполнения правила не требуется внешний анализатор или сетевой доступ.

Настройка и подавление

Код BSL### — основной стабильный идентификатор. Совместимый псевдоним принимается в select, ignore и совместимых блоковых комментариях.

[tool.onec-hbk-bsl]
select = ["BSL022"]
ignore = ["UsingModalWindows"]

Все три семейства подавлений работают для текущей строки и диапазона. Если открывающий комментарий стоит после кода, он действует только на эту строку. Используйте любой один вариант:

  • noqa:
Значение = "пример";  // noqa: BSL022
  • bsl-disable (совместимый вариант):
Значение = "пример";  // bsl-disable: BSL022
  • совместимый BSLLS-вариант:
Значение = "пример";  // BSLLS:UsingModalWindows-off

Если тот же открывающий комментарий стоит на отдельной строке, он начинает диапазон. Закройте его парным маркером того же семейства:

// noqa: BSL022
// код без этой диагностики
// noqa-enable: BSL022

// bsl-disable: BSL022
// код без этой диагностики
// bsl-enable: BSL022

// BSLLS:UsingModalWindows-off
// код без этой диагностики
// BSLLS:UsingModalWindows-on

Чтобы отключить правило до конца файла, не добавляйте закрывающий noqa-enable, bsl-enable или BSLLS:…-on.

Открывающий и закрывающий маркеры должны принадлежать одному семейству.

Описание диагностики

Модальные и всплывающие окна считаются плохим тоном, пользователи привыкли к работе "в одном окне". При разработке конфигураций, предназначенных для работы в веб-клиенте, запрещено использовать модальные формы и диалоги. В противном случае, конфигурация окажется неработоспособной в ряде веб-браузеров, так как модальные окна не входят в стандарт веб-разработки.

Ограничения диагностики

На данный момент диагностируется только использование методов глобального контекста.

Список методов:

Метод Английский вариант
ВОПРОС DOQUERYBOX
ОТКРЫТЬФОРМУМОДАЛЬНО OPENFORMMODAL
ОТКРЫТЬЗНАЧЕНИЕ OPENVALUE
ПРЕДУПРЕЖДЕНИЕ DOMESSAGEBOX
ВВЕСТИДАТУ INPUTDATE
ВВЕСТИЗНАЧЕНИЕ INPUTVALUE
ВВЕСТИСТРОКУ INPUTSTRING
ВВЕСТИЧИСЛО INPUTNUMBER
УСТАНОВИТЬВНЕШНЮЮКОМПОНЕНТУ INSTALLADDIN
УСТАНОВИТЬРАСШИРЕНИЕРАБОТЫСФАЙЛАМИ INSTALLFILESYSTEMEXTENSION
УСТАНОВИТЬРАСШИРЕНИЕРАБОТЫСКРИПТОГРАФИЕЙ INSTALLCRYPTOEXTENSION
ПОМЕСТИТЬФАЙЛ PUTFILE

Примеры

// Пример "Плохо"
Предупреждение(НСтр("ru = 'Выберите документ!'; en = 'Select a document!'"), 10);

// Пример "Хорошо"
ПоказатьПредупреждение(, НСтр("ru = 'Выберите документ!'; en = 'Select a document!'"), 10);

Источники