Использование метода/свойства, недоступного в целевой версии платформы (UnavailableMemberCall)¶
| Тип | Поддерживаются языки |
Важность | Включена по умолчанию |
Время на исправление (мин) |
Теги |
|---|---|---|---|---|---|
Ошибка |
BSL |
Важный |
Да |
5 |
suspicious |
Описание диагностики¶
Диагностика срабатывает на вызов метода или обращение к свойству платформенного типа, которое доступно только начиная с версии платформы новее, чем режим совместимости проекта. Использование такого члена приведёт к ошибке в среде, соответствующей выбранному режиму совместимости.
Сведения о версии, начиная с которой доступен член, берутся из синтакс-помощника установленной платформы 1С (через bsl-context) либо из встроенного справочника. Срабатывание учитывает целевую версию платформы: член считается недоступным, если целевая версия ниже версии появления члена. Целевая версия определяется по приоритету: настройка v8platform.targetVersion, затем режим совместимости конфигурации, а если ничего не задано - считается, что используется самая свежая платформа, и проверка не срабатывает.
Если тип объекта может быть выведен как один из нескольких (например, переменная присваивается значениями разных типов в разных ветках кода), диагностика срабатывает, если член недоступен хотя бы для одного из возможных типов.
Примеры¶
Целевая версия платформы — 8.3.10 (v8platform.targetVersion или режим совместимости), а метод ВопросАсинх доступен только начиная с 8.3.18:
// Срабатывание: метод доступен только с версии 8.3.18
Оповещение = Новый ОписаниеОповещения("ПослеВопроса", ЭтотОбъект);
ВопросАсинх(Оповещение, "Продолжить?", РежимДиалогаВопрос.ДаНет);
Исправление — поднять целевую версию платформы до поддерживаемой либо использовать член, доступный в целевой версии (например, синхронный Вопрос):
Ответ = Вопрос("Продолжить?", РежимДиалогаВопрос.ДаНет);
Источники¶
- Источник: синтакс-помощник платформы 1С:Предприятие 8
Сниппеты¶
Экранирование кода¶
// BSLLS:UnavailableMemberCall-off
// BSLLS:UnavailableMemberCall-on
Параметр конфигурационного файла¶
"UnavailableMemberCall": false