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

Директива компиляции недоступна в модуле этого вида (CompilationDirectiveNotAllowed)

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Ошибка BSL Критичный Да 1 error
unpredictable

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

Набор директив компиляции зависит от вида модуля:

  • в модуле управляемой формы доступны &НаКлиенте, &НаСервере, &НаСервереБезКонтекста, &НаКлиентеНаСервереБезКонтекста;
  • в модуле команды доступны &НаКлиенте, &НаСервере, &НаКлиентеНаСервере.

Директива из набора другого вида модуля разбирается без синтаксической ошибки, но для этого модуля не описана. Чаще всего это &НаКлиентеНаСервере в модуле формы вместо &НаКлиентеНаСервереБезКонтекста: метод оказывается недоступен части вызывающих, а поведение зависит от вида клиента. Например, вызов такого метода из серверной процедуры формы не компилируется, и форма не открывается.

Примеры

Неправильно (модуль формы):

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ОбновитьОформление(ЭтотОбъект);
КонецПроцедуры

&НаКлиентеНаСервере
Процедура ОбновитьОформление(Форма)
    ...
КонецПроцедуры

Правильно:

&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьОформление(Форма)
    ...
КонецПроцедуры

Источники

Сниппеты

Экранирование кода

// BSLLS:CompilationDirectiveNotAllowed-off
// BSLLS:CompilationDirectiveNotAllowed-on

Параметр конфигурационного файла

"CompilationDirectiveNotAllowed": false