Область применения: управляемое приложение, мобильное приложение, обычное приложение.
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 символов следует использовать переносы. Строки длиннее 120 символов делать не рекомендуется, за исключением тех случаев, когда перенос невозможен (например, в коде определена длинная строковая константа, которая выводится без переносов в окно сообщений с помощью объекта СообщениеПользователю).
См. также: Перенос выражений.
7.1. Тексты модулей могут содержать комментарии. Комментарии должны быть достаточно понятными, чтобы пояснять работу модуля или комментируемого оператора. Тексты комментариев должны составляться по правилам русского языка, в деловом стиле, быть эмоционально сдержанными и не содержать слов, не относящихся к функциональности программы.
7.2. Небольшие комментарии пишутся в конце строки, которую комментируют, например:
НайденныеОшибки.Колонки.Добавить("Номер"); // для совместимости
7.3. Большие комментарии или комментарии к фрагменту кода пишутся перед комментируемым кодом в отдельной строке. Текст выравнивается по левой границе комментируемого фрагмента. Между символами комментария "//" и текстом комментария должен быть пробел.
// Инициализируем переменные для выполнения расчетов, // которые выполняются далее по тексту модуля. ТекущаяДата = ОбщегоНазначения.ПолучитьРабочуюДату(); ТекущийГод = Год(ТекущаяДата); ТекущийМесяц = Месяц(ТекущаяДата); ТекущаяНеделя = НеделяГода(ТекущаяДата); ТекущийДень = День(ТекущаяДата);
8. Тексты больших процедур и функций можно разбивать на отдельные сворачиваемые области. При этом имена областей должны удовлетворять требованиям стандарта Правила образования имен переменных
Для автоматического форматирования кода можно воспользоваться обработкой автоформатирования кода и локализации.