Прикладной код

Правила оформления кода

Правила оформления кода

Язык программирования СБИС используется для создания новых операций или изменения уже существующих.

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

Отступы

Отступы в прикладном коде используются, чтобы отделять программные блоки и представлять их в удобном для чтения виде. В СБИС отступ — это три подряд стоящих пробела.

  1. Не используйте табуляцию для создания отступа. Если в коде используется пробел и табуляция одновременно, то в редакторе появится предупреждение.
  2. Каждое выражение начинайте с новой строки.
  3. Логические блоки кода разделяйте пустой строкой.
  4. Каждая конструкция заканчивается точкой с запятой «;».

Скобки

В прикладном коде скобки нужны для создания объектов, указания свойств и параметров или выполнения операции. Для этого используются фигурные «{ }», круглые «( )» и квадратные «[ ]» скобки.

  1. Открывающую фигурную скобку указывайте в строке оператора.
  2. Текст, который содержится в фигурной скобке, начинайте со следующей строки с соответствующим отступом.
  3. Закрывающую фигурную скобку ставьте ровно под оператором.
  4. // хорошо
    if (Переменная1 > Переменная2) {
     ...
     Переменная1 = Переменная3;
     ...
    }
    
    // плохо
    if (Переменная1 > Переменная2) { ...Переменная1 = Переменная2;...
    }
    
  5. Не заключайте в круглые скобки возвращаемое значение.
  6. // хорошо
    return Сумма;
    // плохо
    return (Сумма);
    
  7. Выражение, которое заключено в круглых скобках, не должно отделяться от них пробелами.
  8. // хорошо
    if (Переменная1 > Переменная2)
     Проводка(Дата, '70', [Сотрудник], '50', Сумма);
    
    // плохо
    if ( Переменная1 > Переменная2 )
     Проводка( Дата, '70', [Сотрудник], '50', Сумма );
    

Переменные

Переменная — область памяти, которой задается имя. После объявления переменной в коде в нее можно поместить данные с помощью оператора присваивания «=». В дальнейшем при обращении к переменной в коде, можно получить ее значение.

  1. Имена переменных и функций должны быть содержательными. Например, имя «Перем1» не несет смысловой нагрузки, а по имени «ВидПлатежа» можно понять, для чего будет использоваться объявленная переменная.
  2. В названии переменной каждое осмысленное слово начинайте с заглавной буквы, например, «СтатьяРасхода».
  3. В имени переменной можно использовать префикс. Он означает тип данных переменной:
    • «п» — переменная;
    • «м» — массив;
    • «о» — объект.
  4. Не используйте символ «ё» в именах.
  5. При описании нескольких переменных оператор «let» укажите один раз, а переменные расположите в столбец.
  6. // хорошо
    var СтатьяРасхода1 = 1, 
        СтатьяРасхода2 = 2, 
        СтатьяРасхода3 = 3; 
    // плохо
    var переменная1 = 1, переменная2 = 2, переменная3 = 3; 
    // плохо
    var Переменная1 = 1; 
    var Переменная2 = 2; 
    var Переменная3 = 3;
    
  7. Символы условного оператора «?:» отделяйте пробелами.
  8. // хорошо
    var Итог = (Переменная1 < Переменная2) ? Переменная1 : Переменная2;
    
  9. Если переменной присваивается значение в виде длинного текста — используйте строковый оператор, а не символ «\».
  10. // хорошо
    var Переменная1 = 'Это очень длинная строка' + 'которая не помещается' + 'в строке редактора';
    // плохо
    var Переменная1 = 'Это очень длинная строка\которая не помещается\в строке редактора';
    

Выражения

Выражение — это операция или действие, которое производится над переменными.

  1. Любой оператор выделяйте пробелами с обеих сторон.
  2. Начинайте каждое выражение с новой строки.
  3. // хорошо
    Переменная1 = Переменная2 - Переменная3;
    Переменная4 = Переменная2 + Переменная1; 
    // плохо
    Переменная1=Переменная2-Переменная3;Переменная4=Переменная2+Переменная1; 
    
  4. Каждая конструкция должна заканчиваться символом «;».

Комментарии

Комментарий — это текстовое пояснение, которым сопровождается действие или операция в коде. В редакторе комментарий отделяется от текста символом «//».

  1. Используйте комментарии, чтобы пояснить, зачем в коде используется переменная или операция.
  2. Если вы используете функции определения аналитик, статей дохода или расхода — обязательно указывайте в комментарии название этой аналитики.
  3. // xорошо
    ВидПлатежа = НайтиАналитику('ВидыНП', 'НПОб'); // НПОб — обычный платеж
    // плохо
    ВидПлатежа = НайтиАналитику('ВидыНП', 'НПОб'); // обычный платеж
    
  4. Многострочные комментарии оформляются с помощью конструкции:
    /*
    Текст комментария.
    */

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

  5. // Хорошо.
    /*
    Описание алгоритма работы функции.
    Поясняются причины выбора данного решения.
    */
    function make(tag) {
     ...
     return element;
    }
    // Плохо.
    // Описание алгоритма работы функции.
    // Поясняются причины выбора данного решения.
    function make(tag) {
     ...
     return element;
    }
    

Условные операторы

Условные операторы позволяют пропустить действие или перейти к оператору, в зависимости от значения логического выражения. Также их называют операторами «ветвления».

Оператор «if»

Оператор «if» — базовый условный оператор, который позволяет редактору прикладного кода выполнять операции в зависимости от указанного условия.

Используйте пробел перед и после условия.

// Не ставьте пробел между условием и круглыми скобками
if (test) {
   return false;
}
//Хорошо



if(test){
   return false;
}
// Плохо

if( test ){
   return false;
}
// Плохо

if(test) {
   return false;
}
// Плохо

Размещайте else в одной строке с закрывающей скобкой.

// Хорошо.
if (test) {
   return false;
} else if (something) {
   return true;
}
// Плохо.
if (test) {
   return false;
}
else {
   return true;
}
// Плохо.
if (test) {
   return false;
}else{
   return true;
}

Оператор «switch»

Оператор ветвления «switch» используется, если все варианты действий зависят от значения одной переменной.

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

// хорошо
let ТипПлатежа = 'НПоб';
switch (ТипПлатежа) {
   case '0':
      return НайтиАналитику('ВидыНП', 'НПОб'); // НПОб — обычный платеж
   case '1':
      return НайтиАналитику('ВидыНП', 'НПП'); // НПП — Пени
   case '2':
      return НайтиАналитику('ВидыНП', 'НППроц'); // НППроц — проценты
   case '3':
      return НайтиАналитику('ВидыНП', 'НПШтф'); // НПШтф — штрафы
   default:
      return Нет;
}

// плохо
let ТипПлатежа = 'НПоб';
switch (ТипПлатежа) {
   case '0': return НайтиАналитику('ВидыНП', 'НПОб'); // НПОб — обычный платеж
   case '1': return НайтиАналитику('ВидыНП', 'НПП'); // НПП — Пени
   case '2': return НайтиАналитику('ВидыНП', 'НППроц'); // НППроц — проценты
   case '3': return НайтиАналитику('ВидыНП', 'НПШтф'); // НПШтф — штрафы
   default:  return Нет;
}

Функции

Функции в прикладном коде СБИС нужны для настройки бизнес-процессов, расчета мотивации сотрудников или редактирования печатных форм.

  1. Название пользовательской функции не должно совпадать с названием функции СБИС. Даже если у нее другое количество параметров.
  2. После названия и перед телом функции добавляйте комментарий: краткое описание этой функции, что она делает, ее особенности.
  3. Определяйте в функции все используемые локальные переменные. Это нужно для того, чтобы случайно не изменить существующие глобальные переменные. Для описания локальной переменной используйте оператор «let».
  4. Описывайте переменные рядом с местом их первого использования, а не все в самом начале.
  5. Если переменная используется только внутри блока или цикла, а после этого не используется — определяйте ее внутри этого блока.
  6. Если в функцию нужно передать глобальную переменную, объявите ее с помощью оператора «let». При этом, оператор и переменную расположите выше описания функции в коде.