Почему, если не закрывать строчки цикла знаком ";" в языке 1С, синтаксическая ошибка не обнаруживается и код прекрасно работает?

Код, написанный без использования точек с запятой

Код автора курса

Код, написанный без использования точек с запятой (рис. 1)

Код автора курса, содержащий ";" (рис. 2)

Автор курса часто использует точку с запятой, исходя из правил синтаксиса, но я убедился, что и без них всё работает, хотя по опыту других языков программирования знаю, что часто строчку нужно закрывать ";"


Ответы (1 шт):

Автор решения: Sagittarius

В данном случае у тебя не возникает ошибки, так как твоя конструкция крайняя в процедуре. Если не ставить точку с запятой в самой последней строчке кода в процедуре/функции - программа не будет ругаться.

Если сделать так, то поругается:

Процедура Пример()
    
    Если Истина Тогда
        Сообщить("Пример 1");
    КонецЕсли

    Если Истина Тогда
        Сообщить("Пример 2");
    КонецЕсли;
    
КонецПроцедуры

Вот так не поругается:

Процедура Пример()
    
    Переменная1 = 10;
    
    Если Истина Тогда
        Сообщить("Пример 2");
    КонецЕсли;
    
    Переменная1 = 10
    
КонецПроцедуры
→ Ссылка