Подавление проверок конфигурации

Иногда необходимо не просто включить или выключить проверку целиком, а убрать только некоторые одиночные маркеры, создаваемые этой проверкой. Например, выключить маркеры, возникающие при проверке определенного объекта конфигурации.

Такая необходимость возникает при разработке библиотечных решений, где отступления от стандартов кодирования делаются осознанно, чтобы обеспечить правильную компонентную структуру конечного решения.

Для решения подобных задач существует механизм подавления результатов проверок.

Структура приложения включает в себя как взаимосвязь объектов конфигурации, так и текст на встроенном языке, написанный в модулях. По этой причине механизм подавления проверок состоит из двух независимых компонентов:

Объектное подавление результатов проверок

С помощью этого механизма можно настроить подавление проверок:

Открыть редактор подавления проверок
  1. В панели Навигатор выделите интересующий вас объект;
  2. В панели Свойства нажмите Подавление проверок Открыть.

Редактор показывает выбранный фрагмент дерева объектов конфигурации, в который можно добавить или удалить подавления проверок.

Назначение элементов редактора
  • (Добавить) — кнопка открывает диалог для выбора тех проверок, которые нужно подавить. Эта кнопка становится активной только на тех элементах дерева, для которых можно добавить подавления;
  • (Удалить) — кнопка удаляет выбранное подавление. Эта кнопка активна не только на подавлениях, но и на остальных элементах дерева. В этом случае она удаляет все подавления, установленные для выбранного элемента и его детей;
  • Подавить все валидационные проверки для объекта — в результате установки этого флажка будут подавлены все проверки, связанные с корневым объектом и с его детьми;

    Редактор подавления проверок, открытый для подсистемы, позволяет вам подавить проверки как для самой подсистемы, так и для всех объектов, которые входят в ее состав. Установка флажка Подавить все валидационные проверки для объекта влияет только на проверки, связанные с самой подсистемой. Чтобы подавить проверки для объектов, входящих в состав подсистемы, необходимо в явном виде добавить их в ветку Состав;

  • Строка поиска — позволяет вам найти в дереве нужный элемент (реквизит, табличную часть, параметр, команду и т.д.

Языковое подавление результатов проверок

Чтобы настроить подавление, добавьте комментарий // @skip-check к тому семантическому элементу модуля, для которого вы хотите подавить проверки.

Далее показаны примеры как это сделать для разных языковых элементов.

Для всего модуля

Например:

// Заголовок модуля, лицензия, описание
 
// @skip-check NStr-contains-camelcase - потому что в этом модуле мы не проверяем НСтр на CamelCase
  
// Описание процедуры через пустую строку
Процедура МояПроцедура()
   ...
   ТекстСообщения = НСтр("ru = 'Тут в тексте есть КемелКейс';");
   ...
КонецПроцедуры

Чтобы настроить подавление, добавьте комментарий // @skip-check ко всему модулю до первого семантического элемента.

<// Комментарии модуля 1 | пустая строка>
...
<// Комментарии модуля N | пустая строка>
// @skip-check код-1, код-2, код-3 - комментарий
<// Комментарии модуля N+2 | пустая строка>
 
<Первый семантический элемент>

Здесь код-1, код-2, код-3 это коды проверок, результаты которых вы хотите подавить, а комментарий - это произвольный комментарий для разработчиков. Коды проверок указываются через запятую, с пробелами или без, а комментарий отделен пробелом и тире.

Для метода

Например:

// Заголовок модуля, лицензия, описание
 
// Описание процедуры через пустую строку
// @skip-check NStr-contains-camelcase - потому что в этом методе мы не проверяем НСтр на CamelCase
Процедура МояПроцедура()
   ...
   ТекстСообщения = НСтр("ru = 'Тут в тексте есть КемелКейс';");
   ...
КонецПроцедуры

Чтобы настроить подавление, добавьте комментарий // @skip-check перед нужным методом.

<Комментарии модуля>
 
// @skip-check код-1, код-2, код-3 - комментарий
Процедура
   ...
КонецПроцедуры

Здесь код-1, код-2, код-3 это коды проверок, результаты которых вы хотите подавить, а комментарий - это произвольный комментарий для разработчиков. Коды проверок указываются через запятую, с пробелами или без, а комментарий отделен пробелом и тире.

Для инструкции встроенного языка

Например:

// Пример отключения единичной проверки ACC:1036
// @skip-check ACC:1036 -Не проверять строку на орфографию
ДобавитьПраздникЦаганСар(ПраздничныеДни, НомерГода);
 
// Пример отключения двух проверок - ACC:1036 и ACC:1037
// @skip-check ACC:1036, ACC:1037 - Не проверять строку на орфографию
ДобавитьПраздникЦаганСар(ПраздничныеДни, НомерГода);
 
// Пример отключения единичной проверки ACC:1036, inline
ДобавитьПраздникЦаганСар(ПраздничныеДни, НомерГода); // @skip-check ACC:1036 - Не проверять строку на орфографию
 
// Пример отключения двух проверок - ACC:1036 и ACC:1037, inline
ДобавитьПраздникЦаганСар(ПраздничныеДни, НомерГода); // @skip-check ACC:1036, ACC:1037 - Не проверять строку на орфографию

Чтобы настроить подавление, добавьте комментарий // @skip-check перед нужной инструкцией или в той же строке.

// Cписок кодов через запятую с пробелами или без, комментарий отделен пробелом и тире
 
// Вариант - перед statement-ом, одна аннотация (ближайшая)
// @skip-check код-1, код-2, код-3 - комментарий
<statement>
 
// Вариант - inline
<statement> // @skip-check код-1, код-2, код-3 - комментарий

Здесь код-1, код-2, код-3 это коды проверок, результаты которых вы хотите подавить, а комментарий - это произвольный комментарий для разработчиков. Коды проверок указываются через запятую, с пробелами или без, а комментарий отделен пробелом и тире.

Для блока кода

Например, область, охватывающая несколько процедур:

// @skip-ckeck Nstr-contains-camaelcase - валидное исключение для области охватвающее несколько процедур
#Область СпецПроцедурыНСтр
  
Процедура МояПроцедура()
   ...
   ТекстСообщения = НСтр("ru = 'Тут в тексте есть КемелКейс';");
   ...
КонецПроцедуры

Процедура МояПроцедура2()
   ...
   ТекстСообщения = НСтр("ru = 'Тут в тексте есть КемелКейс 2';");
   ...
КонецПроцедуры

#КонецОбласти

Например, область внутри процедуры:

Процедура МояПроцедура()
   ...
  
// @skip-ckeck Nstr-contains-camaelcase - валидное исключение для области охватвающее строчки кода внутри процедуры
#Область СпецОбластьКодаНСтр
  
   ...
   ТекстСообщения = НСтр("ru = 'Тут в тексте есть КемелКейс';");
   ...

#КонецОбласти
   ...
КонецПроцедуры

Чтобы настроить подавление, добавьте комментарий // @skip-check перед нужной областью.

// Перед областью, , без переноса строки. Поддерживает области внутри методов
// @skip-check код-1, код-2, код-3 - комментарий
#Область СпецПроцедурыНСтр
   ...
#КонецОбласти

Здесь код-1, код-2, код-3 это коды проверок, результаты которых вы хотите подавить, а комментарий - это произвольный комментарий для разработчиков. Коды проверок указываются через запятую, с пробелами или без, а комментарий отделен пробелом и тире.