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

Тексты модулей

1.

Пишите код на русском языке.

На английском языке можно писать имена веб-сервисов, названия их методов и параметров. Еще на английском можно писать название полей внешних структур данных.

В стандарте не указано

Вместо обращений к полям внешних структур на английском лучше обращаться к ключам через строковые литералы. Так будет очевидно, что внешний ключ именно внешний.

Неправильно

Количество = Результат.Count;

Правильно

Количество = Результат["Count"];
1.1.

Не используйте букву ё в коде программы. Используйте ё в том, что выводится пользователю: текстах, справке, если без ё будет неправильное прочтение слова.

В стандарте не указано

Если использовать букву ё то очень сложно искать по кодовой базе. Придется искать во всех вариантах написания.

BSLLS:YoLetterUsage

1.2.

Не используйте в коде программы неразрывные пробелы   и знак минус - − в других начертаниях (короткое –, длинное тире —).

При копировании текста из офисных документов такие символы часто оказываются в тексте модулей и приводят к проблемам:

  • Не работает поиск фрагментов текста
  • Ошибается подсказка типов параметров процедур и функций в конфигураторе и в 1С:EDT
  • Минуса в выражениях приводят к синтаксической ошибке
2.

Удаляйте мертвый код. Программа должна содержать только используемые процедуры и функции. Неиспользуемые - удалите.

3.

Удалите закомментированный код и код связанный с процессом разработки (отладочный код, служебные отметки: TODO, MRG).

Неправильно

Процедура ПередУдалением(Отказ)
//    Если Истина Тогда
//        Сообщение("Для отладки");
//    КонецЕсли;
КонецПроцедуры

Неправильно

Процедура ПередУдалением(Отказ)
    Если Истина Тогда
        // Иванов: доделать 
    КонецЕсли;
КонецПроцедуры

Правильно

Удалить обработчик ПередУдалением

Не используйте комментарии в текстах запросов для патча запросов

Неправильно

ТекстЗапроса = 
    "ВЫБРАТЬ
    |   Контрагенты.Ссылка КАК Ссылка
    |// ПОМЕСТИТЬ Контрагенты
    |ИЗ
    |   Справочник.Контрагенты КАК Контрагенты"
;

Если ВыгрузитьВоВременнуюТаблицу Тогда
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "// ПОМЕСТИТЬ", "ПОМЕСТИТЬ");
КонецЕсли;

Оформление текстов запросов #std437

4.

Пишите один оператор на одной строке.

Правильно

НачальныйИндекс = 0;
Индекс = 0;
Результат = 0;

На одной строке несколько операторов можно писать для простых операторов присваивания

Сомнительно, но ОК

НачальныйИндекс = 0; Индекс = 0; Результат = 0;
5.

Код программы оформляйте отступом. Для отступа используется табуляция, а не пробелы. Размер табуляции: 4 символа.

В конфигураторе можно сменить размер табуляции. Код надо оформлять так, чтобы при смене размера табуляции выравнивание сохранялось.

5.1.

С крайней левой позиции без отступов пишем:

  • операторы Процедура, КонецПроцедуры, Функция, КонецФункции
  • заголовки (описания) процедур и функций
  • объявление переменных модуля
  • код вне процедур и функций
  • директивы компилятора &НаКлиенте, &НаСервере...
  • аннотации &Перед, &После...
  • инструкции препроцессора #Если Сервер Тогда, #Область...

В стандарте не указано

Автоматическое форматирование платформы не выравнивает директивы препроцессора по левому краю. После автоформатирования придется довыравнивать руками.

5.2.

Текст внутри блока процедур НачатьТранзакцию() и ЗафиксироватьТранзакцию() не сдвигается.

6.

Длина строки: 120 символов. Табуляция считается за 4 символа.

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

В стандарте не указано

Ограничение длины строк важно. Когда выполняем сравнение модулей, особенно для трехстороннего сравнения: приходится высматривать сразу три редактора кода. Даже широкие экраны не помогут при более 120 символах.

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

7.1.

Тексты комментариев должны составляться:

  • по правилам русского языка
  • в деловом стиле
  • быть эмоционально сдержанными
  • не содержать слов, не относящихся к функциональности программы

В стандарте не указано

Чтобы научиться писать хорошие комментарии прочитайте

  • Роберт Мартин, Чистый код, Глава 4. Комментарии
  • Стив Макконнелл, Совершенный код, Раздел 32. Самодокументирующийся код
7.2.

Небольшие комментарии пишите в конце строки

Правильно

НайденныеОшибки.Колонки.Добавить("Номер"); // для совместимости
7.3.

Большие комментарии или комментарии к фрагменту кода пишите перед кодом отдельной строкой. Текст выравнивайте по левому краю. Между символами комментария // и началом комментария должен быть пробел.

Правильно

// Инициализируем переменные для выполнения расчетов,
// которые выполняются далее по тексту модуля.
ТекущаяДата = ОбщегоНазначения.ПолучитьРабочуюДату(); 
ТекущийГод = Год(ТекущаяДата); 
ТекущийМесяц = Месяц(ТекущаяДата); 
ТекущаяНеделя = НеделяГода(ТекущаяДата); 
ТекущийДень = День(ТекущаяДата);
8.

Тексты больших процедур и функций разбивайте на отдельные сворачиваемые области. Имена областей называются так же, как имена переменных из стандарта правила образования имен переменных

см. также
Источник

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