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

#std456

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

1. Тексты модулей должны быть написаны на русском языке. 

Исключение составляют веб-сервисы, имена методов и параметров которых рекомендуется задавать на английском языке (например, метод TestConnection веб-сервиса EnterpriseDataExchange), а также различные идентификаторы сторонних информационных систем, например, названия полей «внешних» структур данных, которые программно обрабатываются в коде.

1.1. В текстах модулей не допускается использовать букву "ё".

Исключения составляют интерфейсные тексты, выводимые пользователю в сообщениях, формах и справке, где употребление буквы «ё» в ряде случаев допустимо. Подробнее см. Тексты.

1.2. Кроме того, в текстах модулей не допускается использовать неразрывные пробелы и знак минус "-" в других кодировках (короткое, длинное тире и т.п.).

Такие символы часто оказываются в тексте модулей при копировании из офисных документов и приводят к ряду сложностей при разработке. Например, не работает поиск фрагментов текста, включающих «неправильные» минусы и пробелы; некорректно выводятся подсказки типов параметров процедур и функций в конфигураторе и расширенная проверка в 1С:EDT; указание «неправильного» минуса в выражениях приведет к синтаксической ошибке.

Методическая рекомендация (полезный совет)

2. Программные модули не должны иметь неиспользуемых процедур и функций.

3. Программные модули не должны иметь закомментированных фрагментов кода, а также фрагментов, которые каким-либо образом связаны с процессом разработки (отладочный код, служебные отметки, например, TODO, MRG и т.п.) и с конкретными разработчиками этого кода. Например, недопустимо оставлять подобные фрагменты в коде после завершения отладки или рефакторинга:

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

также неправильно:

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

Правильно: после завершения отладки или рефакторинга удалить обработчик ПередУдалением из кода.

Неправильно в текстах запросов использовать комментарии для их модификации:

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

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

О модификации текстов запросов смотрите п.6 стандарта Оформление текстов запросов

4. Тексты модулей оформляются по принципу "один оператор в одной строке". Наличие нескольких операторов допускается только для "однотипных" операторов присваивания, например:

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

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

Размер табуляции - стандартный, 4 символа.

5.1. С крайней левой позиции должны начинаться только:

5.2. Процедуры НачатьТранзакцию и ЗафиксироватьТранзакцию не являются операторными скобками, поэтому текст внутри этих процедур не сдвигается.

6. При длине строки более 120 символов следует использовать переносы (табуляция занимает 4 символа, согласно п.5). Строки длиннее 120 символов делать не рекомендуется, за исключением тех случаев, когда перенос невозможен - например, в коде определена длинная строковая константа, которая выводится без переносов в окно сообщений с помощью объекта СообщениеПользователю.

См. также: Перенос выражений.

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

7.2. Небольшие комментарии пишутся в конце строки, которую комментируют, например:

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

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

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

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

Для автоматического форматирования кода можно воспользоваться обработкой автоформатирования кода и локализации.

См. также