Добрый день.
В последнее время заметил что стал часто пропускать точку с запятой перед операторной скобкой пример:

```1c
    Если Условие Тогда
    Оператор1;
    Оперетор2
    Иначе
    Оператор4
    КонецЕсли;
```

Собственно вопрос такой, на что влияет точка с запятой перед операторной скобкой.
Единственное что нашёл в интернете:
Точку с запятой ставить надо, так как вдруг потом надо будет дописать что-нибудь и у оператора у которого нет точки с запятой, она уже будет нужна.

Хотелось бы услышать мнения. Ставить или нет точку с запятой и почему.
Спасибо.
---
Судя по ответам. Главная проблема почти у всех, кто встречает такой код это его последующая доработка, хотя на мой взгляд это всё субъективно, но большинство считает, что так лучше не писать.
Единственное что действительно можно считать проблемой, это заимствование в расширении такого когда, когда приходится писать, что нибудь типа:

```1c
    Если Условие Тогда
    Оператор1;
    Оперетор2
    #Вставка
    ;
    Оператор4;
    #КонецВставки
    Иначе
    Оператор4
    КонецЕсли;
```

Что становиться не очень читабельным.
Всем спасибо.
---
а того что уже нашли мало?
---
Просто интересно узнать мнения.
---
а следующий программист посмотрел на это и грит потом, что за Гов**код.
---
Не уверен что отсутствие точки с запятой признак гов***кода.
---
А в чем проблема поставить?
---
это новое направление - анти индусский код. Там платили за количество символов, тут лень.
---
Проблем нет, просто заметил, что в последнее время стал пропускать.
Да и вроде как пустой оператор, может на что-нибудь влияет.
---
Да все уже сказано - потребуется потом кому-то дописать код в процедуру, потребуется за вами доделывать. Делайте нормально сразу.
---
Или если расшрирять через ИзменениеИКонтроль, то придется эту строку ставить в #Удаление, и дублировать её во #Вставка (но уже с точко-запятой). А можно было бы и обойтись
Элементарное неуважение к коллегам, как по мне.
---
Полностью согласен.
Я не говорил, что принципиально не ставлю точку с запятой, а то что стал замечать за собой. Вот и задумался, а так ли это страшно. Теперь буду внимательнее
---
Или если расшрирять через ИзменениеИКонтроль, то придется эту строку ставить в #Удаление, и дублировать её во #Вставка (но уже с точко-запятой). А можно было бы и обойтись
Чисто технически это не обязательно. Можно не удалять, а во Вставка начать с ;
Точка с запятой может располагаться и на другой строке кода.
Но да, это лишний напряг. И самое главное, возможность появления не информативной ошибки.
---
доделыватьОфигеть, доделыватели всю клавиатуру стерли на символе ";" )))
---
а меня интересует что вы делаете с этим громадным свободным временем, которое у вас высвобождается не ставя точки с запятыми
---
С точки зрения синтаксиса, эту точку с запятой ставить не нужно. Но уже упомянули про (12). Но это уже относиться не к синтаксису, а, скажем, к культуре разработки в эпоху расширений.
---
Логически она там не нужна. Ибо "Иначе", "КонецЕсли", "КонецЦикла", etc уже завершают блок.
Если нравится - ставьте.

По поводу "Красивости" кода: с псевдонимами "РегистрСведенийВременноПребывающиеПринятыеПоДолгосрочнымДог­оворамСрезПоследних" тоже работать не ахти как удобно, но терпят, чтобы "другим было понятно". Хотя другие так же мучаются))
---
Собственно вопрос такой, на что влияет точка с запятой перед операторной скобкой. На отношения между программистами. ;-)

И мерещится мне, что если бы вам приходилось регулярно расставлять точки с запятыми после других программистов, то тон ветки был бы сааавсем другим! :-)
---
В таких конструкциях тоже не ставлю ";"
```1c
    Если РезультатЗапроса.Пустой() Тогда
    Возврат
    КонецЕсли;
```
---
Ну, после возврата уже точно никогда ничего дописано не будет - ни в основном коде, ни в расширяемом ))
---
В паскалях еще такое было, что завершение блока само по себе "точка с запятой". Я, например, к этому нормально отношусь. И если коллега не может при необходимости поставить этот символ, то хреновый он коллега. Это как в запросе запятые перед элементами выборки ставить, чтобы коллегу не обидеть, ибо перед ИЗ запятая приведет к ошибке )))
---
Это тоже самое, что соседи, что не выкидывают мусор в мусорку, а бросают в подъезде. Если другие соседи не могут донести чужой мусор до мусорки, они хреновые соседи.
У вас такая же логика, такого же уровня.

Делай свою работу нормально, чтобы за тобой не приходилось переделывать другим.
---
Если что-то попадает в расширение это уже переделка. А лепить точки с запятой там где они излишни на случай чтоб при заимствовании в расширение копипастить не пришлось тоже не слишком рационально. А вдруг не заимствуют а я тут точек с запятыми налепил?
---
А вдруг не заимствуют а я тут точек с запятыми налепил?
Простая логика:
- есть точка с запятой и заимствуют в расширение - проблемы ни у кого нет
- есть точка с запятой и НЕ заимствуют в расширение - проблемы ни у кого нет
- нет точки с запятой и заимствуют в расширение - есть проблема
- нет точки с запятой и НЕ заимствуют в расширение - нет проблемы

Зачем создавать проблему на пустом месте, если можно ее не создавать? Поставить ";" не такая и сложная задача.

Я не говорю, что это прям критичная проблема, если ее не будет, если разработчик забыл случайно поставить ";". Другой может это исправить. Я против целенаправленного подхода "не ставить ";" там где можно ее не ставить", т.к. это потенциально приведет к ошибке в будущем.
---
В Pascal оператор ";" назывался "пустой оператор" и служил для разделения операторов.
Там можно было по несколько точек с запятой подряд ставить: и всё работало.

Критично было только в случае нескольких вложенных if

if условие1 then оператор1 if условие2 then оператор2; else оператор3

Выделенный оператор указывал, что else к первому if
---
В Pascal оператор ";" назывался "пустой оператор" и служил для разделения операторов.
Там можно было по несколько точек с запятой подряд ставить: и всё работало.Так 1С - это процедурная копия паскаля можно сказать. И точки с запятой тоже можно ставить сколько хошь.
---
Все языки программирования в чём-то схожи. Элементы Pascal, разработанного для изучения программирования можно увидеть в любом языке программирования. Но это не значит, что этот язык копия Pascal.

Отличий много: строгая типизация, по циклам несовпадение (for ... to ... downto, repeat ... until ...), простой/составной оператор, etc.

Может создатели языка 1С и вдохновлялись Pascal, но язык получился сильно другой.

PS Цикла "Repeat оператор Until условие" в 1С явно не хватает.
---
Я 1С вижу больше VB чем Pascal
---
Делайте - не возражаем.....
(26) Цикла "Repeat оператор Until условие" в 1С явно не хватает.

Есть же цикл "Пока Условие Цикл", чем не замена?
---
Ну это не прямая замена, Repeat Until гарантированно хотя бы раз выполнится, Пока это аналог While.
Но, строго говоря, "явно не хватает", для меня более чем не явно)
---
Есть же цикл "Пока Условие Цикл", чем не замена?

Функционально - замена, жить можно. Но в Repeat ... Until постусловие. Т.е. до цикла не надо "инициализировать" условие. Компактней код получается и не приходится одно и то же в двух местах писать/вызывать.
---
Судя по ответам. Главная проблема почти у всех, кто встречает такой код это его последующая доработка, хотя на мой взгляд это всё субъективно, но большинство считает, что так лучше не писать.
Единственное что действительно можно считать проблемой, это заимствование в расширении такого когда, когда приходится писать, что нибудь типа:

```1c
    Если Условие Тогда
    Оператор1;
    Оперетор2
    #Вставка
    ;
    Оператор4;
    #КонецВставки
    Иначе
    Оператор4
    КонецЕсли;
```

Что становиться не очень читабельным.
Всем спасибо.