Перейти к содержанию
#std444

Перенос выражений

1.

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

2.

Длинные арифметические выражения переносите по правилам:

  • в одной строке может быть больше одного операнда;
  • знак операции при переносе ставьте в начале новой строки;
  • операнды новой строки выравнивайте либо стандартным отступом, либо по началу первого операнда без учета знаков операции.

Правильно

СуммаДокумента = СуммаБезСкидки
                 + СуммаРучнойСкидки
                 + СуммаАвтоматическойСкидки;

Правильно

СуммаДокумента = СуммаБезСкидки
    + СуммаРучнойСкидки
    + СуммаАвтоматическойСкидки;
3.1.

Длинные строковые константы переносите с помощью символа перевода строки |.

Правильно

ТекстЗапроса =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |   ЗаметкиПоПредмету.КоличествоЗаметок КАК КоличествоЗаметок
    |ИЗ
    |   РегистрСведений.ЗаметкиПоПредмету КАК ЗаметкиПоПредмету
    |ГДЕ
    |   ЗаметкиПоПредмету.Предмет = &Предмет";

Правильно

ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    НСтр("ru = 'Обновление адресного классификатора не требуется.
               |В программе уже загружены актуальные адресные сведения от %1.'"),
    Формат(ДатаПоследнегоОбновленияКЛАДР, "ДЛФ=D"));

ПоказатьПредупреждение(, ТекстПредупреждения);

Не переносите строки, содержащие текст сообщения пользователю (объект СообщениеПользователю).

3.2.

При конкатенации строк используйте + в начале новой строки, как и в арифметических выражениях.

Правильно

ПоляОтбора = "Номенклатура,Характеристика,Склад"
    + ДополнительныеПоляОтбора;
3.3.

При конкатенации длинных строк допускается ставить + в конце строки, чтобы не ломать общее форматирование текста.

Правильно

ТекстЗапроса = ТекстЗапроса +
    "ВЫБРАТЬ
    |   Номенклатура.Ссылка КАК Ссылка
    |ИЗ
    |   Справочник.Номенклатура КАК Номенклатура";
4.

Параметры процедур, функций и методов переносите по правилам:

  • параметры выравнивайте по началу первого параметра или используйте стандартный отступ;
  • закрывающую скобку ) и разделитель операторов ; ставьте в строке с последним параметром;
  • также допустим формат, который предлагает автоформатирование конфигуратора.

Правильно

ИменаДокументов.Добавить(Метаданные.Документы.СтрокаВыпискиРасход.Имя,
    Метаданные.Документы.СтрокаВыпискиРасход.Синоним);

Правильно

ИменаДокументов.Добавить(
    Метаданные.Документы.СтрокаВыпискиРасход.Имя,
    Метаданные.Документы.СтрокаВыпискиРасход.Синоним);

Правильно

ИменаДокументов.Добавить(Метаданные.Документы.СтрокаВыпискиРасход.Имя,
                         Метаданные.Документы.СтрокаВыпискиРасход.Синоним);
5.

Сложные условия в Если ... ИначеЕсли ... КонецЕсли переносите по правилам:

  • каждое элементарное условие начинайте с новой строки, если выражение длиннее 120 символов;
  • операторы И и ИЛИ ставьте в начале строки;
  • условия выравнивайте стандартным отступом или по началу первого условия без учета логических операторов.

Правильно

Если (ВидОперации = Перечисления.ВидыОперацийПоступлениеМПЗ.ПоступлениеРозница)
    ИЛИ (ВидОперации = Перечисления.ВидыОперацийПоступлениеМПЗ.ПоступлениеРозницаКомиссия) Тогда
    Возврат Истина;
КонецЕсли;

Правильно

Если ((СтруктураМодуля[Индекс].Блок = Перечисления.ТипыБлоковМодулей.ЗаголовокПроцедуры)
    ИЛИ (СтруктураМодуля[Индекс].Блок = Перечисления.ТипыБлоковМодулей.ЗаголовокФункции))
    И (Найти(ВРег(СтруктураМодуля[Индекс].Текст), КлючБлока) > 0) Тогда
    ...
КонецЕсли;
6.

Используйте автоформатирование текста программного модуля.

Подсказка

В конфигураторе:

  • сочетанием Alt+Shift+F
  • или через меню Текст -> Блок -> Форматировать.

В EDT:

  • сочетанием Ctrl+Shift+F
  • или нажать правую кнопку мыши и выбрать Source (Исходный код) -> Format (Форматировать).
Проверки

#bslls:IncorrectLineBreak

#acc:101 #acc:102 #acc:103

Источник

https://its.1c.ru/db/v8std#content:444