HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...
Bug #989028
openКомпилятор встроенного языка ругается "Ошибка в выражении" на инструкцию "Кум = 0=Не 1"
0%
Description
https://partners.v8.1c.ru/forum/t/2195011/m/2195011
Конфигурация ПО
1С 8.0-3.26, не ошибка
Проблема
Компилятор встроенного языка ругается "Ошибка в выражении" на инструкцию "Кум = 0 = Не 1"
Воспроизведение
Открыть основную форму приложенной внешней обработки в конфигураторе любой базы. Увидеть в модуле метод
Процедура Команда1(Команда)
Кум = 0 = Не 1;
КонецПроцедуры
Выполнить проверку модуля.
Факт
Выводится ошибка
{ВнешняяОбработка.ВнешняяОбработкаяяя1.Форма.Форма4.Форма(4,11)}: Ошибка в выражении
Кум = 0 =<>> Не 1;
Ожидал
Ошибок не выводится
Аналогичная проблема и в языке запросов. Программа сообщает об ошибке при выполнении запроса
ВЫБРАТЬ 1 где Ложь = Не Истина
Предположение
Придумал возможное объяснение. Оператор "Не" имеет меньший приоритет, чем операторы сравнения (= и <>). Поэтому если "Не" поставить перед сравнением
ф = Не Ложь = Истина
то он применяется к результату сравнения, а не к левому операнду. А если поставить его сразу после знака сравнения то он должен примениться только к правому операнду сравнения
ф = Ложь = Не Истина
Поведение в этих случаях бы сильно различалось, хотя синтаксически очень похоже. Возможно поэтому решили запретить второй вариант.
Но в документации такого ограничения не встречал. Кажется синтаксис полностью соответствует документации.
Files
Related issues
Updated by Сергей Старых 5 months ago
- Related to Bug #989029: Исправлена ошибка команды "Выделить метод" при наличии инструкции "Возврат Не ..." added