Перенос параметров при вызове процедур, функций, методов
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Параметры процедур, функций, методов переносятся следующим образом:
- каждый параметр начинается с новой строки;
- все параметры выравниваются по началу первого параметра;
- закрывающая скобка и разделитель операторов ";" пишутся в той же строке, что и последний параметр.

Пример

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

 

Перенос условий в Если…КонецЕсли

Сложные логические условия в Если…КонецЕсли, состоящие из большого числа выражений (но это само по себе - плохо) переносятся следующим образом:
- каждое условие пишется на отдельной строке:
- логические операторы И, ИЛИ ставятся ПЕРЕД условием;
- все условия выравниваются по началу первого условия, без учета логического оператора;
- Тогда пишется на той же строке, что и последнее условие.

Пример

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

 








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

Длинные арифметические выражения переносятся следующим образом:
- в одной строке может находиться более одного операнда;
- знаки операции пишутся ПЕРЕД операндом (а не в конце предыдущего операнда);
- операнды выравниваются по началу первого операнда, без учета знаков операций.

Пример

ВременнаяСтрока = ВременнаяСтрока + ", НП (в т. ч.): " + обФорматСумм(Спецификация.Итог("СуммаНП"));

 

Оформление конструкций встроенного языка. Общие требования

Следует отделять друг от друг пробелами:
- ключевые слова;
- вызовы процедур и функций
- параметры процедур и функций внутри скобок;
- операторы;
- имена переменных;
- константы;
- знак "=", знаки арифметических операций "+", "-", "*"», "/"».

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

 

  Выравнивание операторов присваивания При следовании друг за другом нескольких "однотипных" операторов присваивания, допускается выравнивать их следующим образом:
Длг.ПолноеИмяФайла = ИмяФайла; Длг.Каталог = ИмяПути; Длг.Заголовок = "Выберите файл со списком запросов"; Длг.Фильтр = "Файлы запросов (*.sel)|*.sel|Все файлы (*.*)|*.*"; Длг.Расширение = "sel";


Еще пример:

ОбластьЗаголовка.Шрифт = Новый Шрифт(ОбластьЗаголовка.Шрифт, , , Истина, , ,); ОбластьЗаголовка.ЦветФона = Новый Цвет(255, 255, 0); ОбластьЗаголовка.ГраницаСнизу = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);


Однако не следует выравнивать операторы одинаково по всему модулю - вполне допустимо делать различное выравнивание для разных групп расположенных рядом операторов.

Неправильно:

//операторы в функции НайтиСоздатьЕдиницу(), выделенные жирным шрифтом, //не надо было выравнивать так же, как и аналогичные операторы в функции НайтиСоздатьВалюту(). Функция НайтиСоздатьВалюту(Код, Наименование, НаименованиеПолное, ПараметрыПрописиНаРусском) … СправочникОбъект.Код = Код; СправочникОбъект.Наименование = Наименование; СправочникОбъект.НаименованиеПолное = НаименованиеПолное; СправочникОбъект.ПараметрыПрописиНаРусском = ПараметрыПрописиНаРусском; … КонецФункции Функция НайтиСоздатьЕдиницу(Код, Наименование, НаименованиеПолное) … СправочникОбъект.Код = Код; СправочникОбъект.Наименование = Наименование; СправочникОбъект.НаименованиеПолное = НаименованиеПолное; … КонецФункции


Правильно:

Функция НайтиСоздатьВалюту(Код, Наименование, НаименованиеПолное, ПараметрыПрописиНаРусском) … СправочникОбъект.Код = Код; СправочникОбъект.Наименование = Наименование; СправочникОбъект.НаименованиеПолное = НаименованиеПолное; СправочникОбъект.ПараметрыПрописиНаРусском = ПараметрыПрописиНаРусском; … КонецФункции Функция НайтиСоздатьЕдиницу(Код, Наименование, НаименованиеПолное) … СправочникОбъект.Код = Код; СправочникОбъект.Наименование = Наименование; СправочникОбъект.НаименованиеПолное = НаименованиеПолное; … КонецФункции

 

 

Заголовки процедур и функций (кроме обработчиков)

Процедуры и функции (кроме обработчиков) должны предваряться заголовком.
Заголовок размещается перед объявлением процедуры (функции)и поясняет назначение и использование функции (процедуры).

Заголовок имеет следующий формат:

// Первый абзац описания процедуры (функции) // продолжение первого абзаца описания процедуры (функции) // продолжение первого абзаца описания процедуры (функции). // // Второй и последующие абзацы описания процедуры (функции) // продолжение второго и последующих абзацев описания процедуры (функции) // продолжение второго и последующих абзацев описания процедуры (функции). // // Параметры: // ПараметрОдин – Тип.Вид – описание параметра. // продолжение описания параметра. // ПараметрДва – Тип.Вид – описание параметра. // продолжение описания параметра. // // Возвращаемое значение: // Нет.


или

// Тип.Вид – описание возвращаемого значения // продолжение описания возвращаемого значения.


или

// Значение1 – описание случая 1 // продолжение описания случая 1. // Значение2 – описание случая 2 // продолжение описания случая 2. // <Функция (Процедура)> ИмяПроцедурыФункции(ПараметрОдин, Знач ПараметрДва, ПараметрТри=0,…) <пустая строка> Перем Переменная1; <пустая строка> Операторы; <пустая строка> КонецПроцедуры или КонецФункции // ИмяПроцедурыФункции() <пустая строка>

 

Секция «Описание»
Может присутствовать в заголовке функции (процедуры), если требуется дополнительное разъяснение назначения и принципов работы функции (процедуры), а комментариев, присутствующих в тексте функции (процедуры), недостаточно.

// Первый абзац описания процедуры (функции) // продолжение первого абзаца описания процедуры (функции) // продолжение первого абзаца описания процедуры (функции). // // Второй и последующие абзацы описания процедуры (функции) // продолжение второго и последующих абзацев описания процедуры (функции) // продолжение второго и последующих абзацев описания процедуры (функции).


Первый абзац описания всегда начинается через один пробел после символов комментария. Вторая и последующие строки первого абзаца также начинаются через 1 пробел.
Второй и последующие абзацы описания начинаются с красной строки: первая строка начинается через 2 пробела после символов комментария, вторая и последующие строки - через один пробел.
В конце абзаца всегда ставиться точка, даже если это один абзац и занимает одну строку.

Описание функции (процедуры) должно пояснять не только, ЧТО она делает, но и ЗАЧЕМ.
НЕ следует вставлять в описание рассказ про возвращаемое значение - для этого предназначена секция "Возвращаемое значение".

Описание функции (процедуры) составляется по правилам русского языка: каждое предложение начинается с большой буквы и заканчиваются точкой. Следует проверять текст на отсутствие синтаксических и грамматических ошибок.
Пример плохого описания функции

// Эта функция проверяет спецификацию документа на дубли товара Функция ПроверкаДублейСтрок(Конт) Экспорт СписокТоваров=СоздатьОбъект("СписокЗначений"); …


Пример хорошего описания функции

// Функция проверяет многострочную часть документа на наличие строк, // содержащих одинаковый товар, с целью последующего объединения. Такие строки // должны быть «слиты» в одну.

 

Настоятельно рекомендуется в заголовках не превышать длину строки в 80 символов.

Секция "Параметры".
Обязательно должна присутствовать, если у процедуры или функции есть параметры. Если их нет, секция может быть пропущена.

// // Параметры: // <Параметр1> - тип и описание параметра 1 // продолжение описания параметра 1 // <Параметр2> - тип и описание параметра 2 // продолжение описания параметра 2 и так далее.

 

Ключевое слово "Параметры" должно оканчиваться двоеточием.
В секции "Параметры" описание собственно параметров должно начинаться со следующей строки после названия секции. Каждый параметр описывается на отдельной строке, между "//" и именем параметра вставляются 2 пробела, описание заканчивается точкой.

Если описание параметра или параметров занимает несколько строк, начало описания параметра выравнивается по 20 позиции (не считая тире, то есть тире начинается с 18 позиции строки).
Если имя параметра короче - описание все равно выравнивается по 20 позиции. Если имя параметра длиннее - первая строка пишется с той позиции, где получится, остальные выравниваются по 20 позиции. Выравнивание выполняется пробелами.
Пример:

// Параметры: // ПараметрСОченьДлиннымИменем - описание параметра с очень длинным именем, // которое может занимать одну и более строк, текст в этой // и последующих строках начинается с 20 позиции // КорИмя - имя этого параметра - короткое, поэтому выравнивать его // следует по 20 позиции.

 

Секция "Возвращаемое значение"
Обязательно должна присутствовать в заголовке функции. Для процедур эта секция может отсутствовать.

// // Возвращаемое значение: // <Описание возвращаемого значения или слово "Нет">.

 

Описание возвращаемого значения должно начинаться со следующей строки после названия секции. Описание начинается с большой буквы, между символами "//" и красными строками абзацев описания вставляются 2 пробела.
В конце описания или после слова "Нет" ставится точка, как в конце предложения.
Если возвращаемых значений - несколько, описание каждого возвращаемого значения начинается с новой строки.

// Возвращаемое значение: // Истина - найден реквизит с переданным именем; // Ложь - не найден реквизит с переданным именем.


Расположение и выравнивание текста - как при описании параметров (см. выше).

Конец процедуры и функции
Если текст процедуры (функции) занимает более одного экрана, то в строке с операторами КонецПроцедуры, КонецФункции должен быть комментарий с именем процедуры (функции).
В конце процедуры (функции), после ключевого слова КонецПроцедуры (КонецФункции) после 1 пробела ставится символ комментария "//" и еще через пробел повторяется имя процедуры (функции), после имени процедуры (функции) ставятся пустые скобки.

КонецПроцедуры // ИмяПроцедуры() или КонецФункции // ИмяФункции()

 

После оператора КонецПроцедуры, КонецФункции должна оставляться пустая строка.

КонецПроцедуры // Сформировать() <пустая строка>

 

Для процедур и функций, которые:
- назначаются обработчикам событий элементов управления динамически из встроенного языка (с использованием объекта Действие)
- подключаются в качестве обработчиков ожидания
- используются в тексте кода встроенного языка, который выполняется при помощи оператора Выполнить()
необходимо в комментариях отражать где используется данная процедура(функкция).

Например:
// Процедура назначается динамически действию кнопки командной панели КоманднаяПанельформы.КнопкиДействий.Кнопка
или
// Функция подключается в качестве обработчика ожидания для автополучения электронных писем

 












































Обработчики событий

Обработчики событий сводятся в одну секцию модуля.
Обработчики событий должны иметь секцию "Описание". Описание размещается в соответствии с общими требованиями к заголовкам процедур, перед объявлением процедуры обработчика.
Первый абзац описания обработчика события должен включать фразу:

// Обработчик события <имя события> <вид реквизита/объекта> <имя реквизита/объекта>.


Описание может пояснять выполняемые в обработчике действия.
Пример описания обработчика события

// Обработчик события ПриВыводеСтроки табличной части Спецификация. // Формирует данные в колонке "Всего". // Процедура СпецификацияПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) <пустая строка> Перем Переменная1; <пустая строка> Операторы; <пустая строка> КонецПроцедуры // СпецификацияПриВыводеСтроки()

 





Комментарии в модулях

Тексты модулей должны содержать комментарии.
Комментарии могут быть:
- к модулю в целом - в этом случае они располагаются в начале модуля (заголовок модуля);
- к оператору (операторам).

Комментарии могут быть длинными и короткими.

Длинные комментарии.
Длинные комментарии занимают отдельную строку или несколько строк. Они должны располагаться ПЕРЕД комментируемым оператором или группой операторов. Длинные комментарии составляются по правилам русского языка, то есть должны начинаться с большой буквы и заканчиваться точкой. Следует проверять текст комментария на отсутствие грамматических и синтаксических ошибок.
Текст длинного комментария должен быть выровнен по левой границе комментируемого оператора (первого оператора группы операторов).
Межу символами комментария "//" и текстом комментария должен быть пробел.
При длине строки комментария более 80 символов можно начинать делать переносы. Строки не должны быть длиннее 120 символов.
Пример.

// комментарий // комментарий оператор; // комментарий // комментарий оператор; оператор; оператор;

 

Перед первой строкой комментария должна быть пустая строка и после последнего комментируемого оператора должна быть пустая строка. Это может быть одна и та же строка.
Пример:

<пустая строка> // комментарий // комментарий оператор; оператор; оператор; <пустая строка> // комментарий // комментарий оператор; оператор; … Короткие комментарии Короткие комментарии могут располагаться в той же строке, что и оператор. Короткий комментарий должен начинаться с маленькой буквы и не должен заканчиваться точкой. При длине строки более 80 символов можно начинать делать переносы. Строки не должны быть длиннее 120 символов. Пример: оператор; // комментарий

 

Как правило, короткий комментарий должен занимать одну строку. Если короткий комментарий занимает более одной строки, его можно переносить на следующую строку. Начало второй и последующих строк короткого комментария выравнивается по левой границе первой строки. Оператор, следующий за комментируемым оператором, в этом случае должен начинаться с первой свободной строки.
Пример:

оператор1; // комментарий // продолжение комментария // продолжение комментария оператор2; // комментарий

 

Содержание и оформление комментариев.
Комментарии должны быть достаточно пространными, чтобы пояснять работу комментируемого оператора (операторов) или назначение объявляемой переменной. Текст комментария должен быть формальным, не содержать эмоций и слэнга.
Например:
вместо «статиков» следует использовать «надписи» или «информационные строки»;
вместо «контрол» следует использовать «элемент управления».

Комментарии составляются по правилам русского языка.
Как правило, из предложений состоят длинные комментарии. Предложения в комментариях начинаются с большой буквы и заканчиваются точкой. Знаки препинания расставляются по правилам русского языка.
Названия объектов конфигурации, реквизитов, элементов управления форм пишутся в кавычках.
Слово «счет-фактура» пишется через дефис, склоняются обе части слова: счету-фактуре, счетов-фактур, счетом-фактурой.

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

// Вызывается из "при открытии" этой формы и из "после записи" формы счета-фактуры.


Правильно:

// Вызывается из обработчика ПриОткрытии этой формы и из обработчика ПослеЗаписи формы счета-фактуры.

 

 




















Дата: 2018-11-18, просмотров: 380.