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

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

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

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

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

Отступы

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

  • Не используйте табуляцию для создания отступа. Если в коде используется пробел и табуляция одновременно, то в редакторе появится предупреждение.
  • Каждое выражение начинайте с новой строки.
  • Логические блоки кода разделяйте пустой строкой.
  • В конце каждой конструкции должен стоять символ «;».
  • Плохо:

    if(Переменная1>Переменная2){
            Переменная1 = Переменная3}
    Переменная1=Переменная2-Переменная3
    Переменная4=Переменная2+Переменная1
    

    Хорошо:

    if (Переменная1 > Переменная2) {
       Переменная1 = Переменная3;
    }
    Переменная1 = Переменная2 - Переменная3;
    Переменная4 = Переменная2 + Переменная1;
    

Скобки

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

  1. Открывающую фигурную скобку указывайте в строке оператора.
  2. Плохо:

    if (Переменная1 > Переменная2) 
    {
    Переменная1 = Переменная3;
    

    Хорошо:

    if (Переменная1 > Переменная2) {
       Переменная1 = Переменная3;
    }
    

  3. Текст, который содержится в фигурной скобке, начинайте со следующей строки с отступом.
  4. Плохо:

    if (Переменная1 > Переменная2) {Переменная1 = Переменная3;
    }
    

    Хорошо:

    if (Переменная1 > Переменная2) {
       Переменная1 = Переменная3;
    }
    Переменная1 = Переменная2 - Переменная3;
    Переменная4 = Переменная2 + Переменная1;
    

  5. Закрывающую фигурную скобку ставьте ровно под оператором.
  6. Плохо:

    if (Переменная1 > Переменная2) { 
       Переменная2 = Переменная3;
       Переменная1 = Переменная2;}
    

    Хорошо:

    if (Переменная1 > Переменная2) {
       Переменная1 = Переменная3;
    }
    

  7. Не заключайте в круглые скобки возвращаемое значение.
  8. Плохо:

    return (Сумма);
    

    Хорошо:

    return Сумма;
    

  9. Выражение, которое заключено в круглых скобках, не должно отделяться от них пробелами.
  10. Плохо:

    if ( Переменная1 > Переменная2 )
     ФорматДеньги( Сумма, 'полный', false );
    

    Хорошо:

    if (Переменная1 > Переменная2)
       ФорматДеньги(Сумма, 'полный', false);
    

Переменные

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

  1. Имена переменных и функций должны быть содержательными. Например, по имени «ВидПлатежа» можно понять, для чего будет использоваться переменная, а по имени «Перем1» — нет.
  2. Плохо:

    let Перем1 = 'Наличный', 
        Перем2 = 'Безналичный', 
        Перем3 = 'Смешанный'; 
    

    Хорошо:

    let ВидПлатежа1 = 'Наличный', 
        Видплатежа2 = 'Безналичный', 
        ВидПлатежа3 = 'Смешанный'; 
    

  3. В названии переменной каждое слово начинайте с заглавной буквы, например, «СтатьяРасхода».
  4. В имени переменной можно использовать префикс. Он означает тип данных переменной:
    • «п» — переменная;
    • «м» — массив;
    • «о» — объект.

    Например, «пСтоимость», «мНоменклатура».

  5. Не используйте символ «ё» в именах.
  6. При описании нескольких переменных оператор «let» укажите один раз, а переменные расположите в столбец.
  7. Плохо:

    let Переменная1 = 1; 
    let Переменная2 = 2; 
    let Переменная3 = 3; 
    

    Хорошо:

    let Переменная1 = 1, 
        Переменная2 = 2, 
        Переменная3 = 3; 
    

  8. Символы условного оператора «?:» отделяйте пробелами.
  9. Плохо:

    let Итог = (Переменная1 < Переменная2)?Переменная1:Переменная2;
    

    Хорошо:

    let Итог = (Переменная1 < Переменная2) ? Переменная1 : Переменная2;
    

  10. Если переменной присваивается значение в виде длинного текста, используйте строковый оператор, а не символ «\».
  11. Плохо:

    var Переменная1 = 'Это очень длинная строка\которая не помещается\в строке редактора';
    

    Хорошо:

    var Переменная1 = 'Это очень длинная строка' + 'которая не помещается' + 'в строке редактора';
    

Выражения

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

  1. Любой оператор выделяйте пробелами с обеих сторон.
  2. Плохо:

    Переменная1=Переменная2-Переменная3;
    

    Хорошо:

    Переменная1 = Переменная2 - Переменная3;
    

  3. Начинайте каждое выражение с новой строки.
  4. Плохо:

    Переменная1=Переменная2;Переменная4=Переменная3;
                                                    
    

    Хорошо:

    Переменная1 = Переменная2 - Переменная3;
    Переменная4 = Переменная2 + Переменная1; 
    

  5. Каждая конструкция должна заканчиваться символом «;».
  6. Плохо:

    Переменная1 = Переменная2 - Переменная3
    Переменная4 = Переменная2 + Переменная1
    

    Хорошо:

    Переменная1 = Переменная2 - Переменная3;
    Переменная4 = Переменная2 + Переменная1; 
    

Комментарии

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

  1. Если вы используете функции определения аналитик, статей дохода или расхода, обязательно указывайте в комментарии название этой аналитики.
  2. Плохо:

    ВидПлатежа = НайтиАналитику('ВидыНП', 'НПОб'); // обычный платеж
    

    Хорошо:

    ВидПлатежа = НайтиАналитику('ВидыНП', 'НПОб'); // НПОб — обычный платеж
    

  3. Многострочные комментарии оформляются с помощью конструкции:

    /*
    Текст комментария.
    */
    

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

  4. Плохо:

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

    Хорошо:

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

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

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

Оператор «if...else»

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

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

    if( test ){
       return false;
    }
    

    Хорошо:

    
    

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

    if (test) {
       return false;
    }
    else {
       return true;
    }
    

    Хорошо:

    if (test) {
       return false;
    } else if (something) {
       return true;
    }
    

Оператор «switch»

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

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

Плохо:

let ТипКонтрагента = Контрагент.Тип;
switch (ТипКонтрагента) {
   case '0': return 'Орг'; // Орг — организация
   case '1': return 'ИП';
   case '2': return 'ФЛ';
default:  return break;
}

Хорошо:

let ТипКонтрагента = Контрагент.Тип;
switch (ТипКонтрагента) {
   case '0':
      return 'Орг'; // Орг — организация
   case '1':
      return 'ИП';
   case '2':
      return 'ФЛ';
   default:
      return break;
}

Функции

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

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