Область применения: управляемое приложение, мобильное приложение, обычное приложение.
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. Тексты больших процедур и функций можно разбивать на отдельные сворачиваемые области. При этом имена областей должны удовлетворять требованиям стандарта Правила образования имен переменных
Для автоматического форматирования кода можно воспользоваться обработкой автоформатирования кода и локализации.