bsl-language-server icon indicating copy to clipboard operation
bsl-language-server copied to clipboard

[MOD] Двойные отрицания (DoubleNegatives)

Open Asakra opened this issue 3 months ago • 2 comments

Подскажите, а такой код считается нормой или его обработку можно включить в эту диагностику?

Неправильно

Если Не ТаблицаЗначений.Найти(ИскомоеЗначение, "Колонка") = Неопределено Тогда
    // Сделать действие
КонецЕсли;

Правильно

Если ТаблицаЗначений.Найти(ИскомоеЗначение, "Колонка") <> Неопределено Тогда
    // Сделать действие
КонецЕсли;

Неправильно

Если Не (ТаблицаЗначений.Найти(ИскомоеЗначение, "Колонка") = Неопределено
	Или СтранаРегистрацииОрганизации <> Справочник.СтраныМира.Россия) Тогда
    // Сделать действие
КонецЕсли;

Правильно

Если ТаблицаЗначений.Найти(ИскомоеЗначение, "Колонка") <> Неопределено
	И СтранаРегистрацииОрганизации = Справочник.СтраныМира.Россия) Тогда
    // Сделать действие
КонецЕсли;

Неправильно

Если Не (ТаблицаЗначений.Найти(ИскомоеЗначение, "Колонка") = Неопределено
	И СтранаРегистрацииОрганизации = Справочник.СтраныМира.Россия) Тогда
    // Сделать действие
КонецЕсли;

Правильно

Если ТаблицаЗначений.Найти(ИскомоеЗначение, "Колонка") <> Неопределено
	Или СтранаРегистрацииОрганизации <> Справочник.СтраныМира.Россия) Тогда
    // Сделать действие
КонецЕсли;

А еще диагностика не работает в запросах.

Asakra avatar Dec 09 '25 10:12 Asakra

Нет, конструкция НЕ А = Б не является двойным отрицанием. Это одинарное отрицание равенства.

nixel2007 avatar Dec 09 '25 11:12 nixel2007

Если есть желание в диагностике, то стоит формить на нее запрос.

Что касается того, что диагностика двойных отрицаний не анализирует запросы - да, стоит ишузу на доработку написать

theshadowco avatar Dec 16 '25 06:12 theshadowco