
Правильное форматирование кода в 1С ускоряет понимание алгоритмов и снижает количество ошибок при доработках. Один из эффективных подходов – использование отступов в 4 пробела для каждого уровня вложенности. Это обеспечивает визуальное разделение блоков, особенно при работе с множественными условиями Если…Тогда и циклами Для…Цикл.
Использование единообразных наименований переменных значительно упрощает чтение кода. Рекомендуется сочетать CamelCase для функций и процедур и snake_case для локальных переменных. Конкретный пример: процедура РасчетСкидки, переменная сумма_скидки.
Комментарии должны пояснять не тривиальные участки кода. Форматирование комментариев в одну строку перед блоком кода помогает быстро находить ключевые моменты. Например, перед расчетом налогов можно вставить // Расчет НДС и акцизов.
При длинных выражениях удобно использовать разбиение на несколько строк с выравниванием по операторам. В 1С это снижает риск ошибок при копировании и редактировании, особенно в выражениях запросов или сложных вычислениях.
Автоматические инструменты форматирования, встроенные в платформу 1С, ускоряют работу, но важно сохранять контроль над логикой отступов и пробелов. Рекомендуется проверять форматирование после импорта кода из внешних источников и перед публикацией обновлений в общий репозиторий.
Форматирование кода в 1С: практические советы

Правильное форматирование кода в 1С повышает читаемость, облегчает поддержку и снижает риск ошибок. Ниже приведены конкретные рекомендации:
- Отступы: используйте 4 пробела для каждого уровня вложенности. Не применяйте табуляцию, чтобы избежать несоответствия в разных редакторах.
- Разделение блоков: отделяйте логические блоки кода пустой строкой. Например, между объявлением переменных, основным телом процедуры и блоками обработки исключений.
- Именование: для процедур и функций используйте глаголы с существительным: ЗаполнитьСправочникКлиентов(), РассчитатьСуммуЗаказа(). Для переменных – существительные с описанием типа: СуммаДокумента, СписокТоваров.
- Ограничение длины строки: не превышайте 120 символов на строку. При необходимости переносите выражения на следующую строку с дополнительным отступом на один уровень.
- Форматирование условий и циклов:
- if/else пишите в несколько строк для сложных условий:
Если Сумма > 1000 И Количество > 5 Тогда Сообщить("Большой заказ"); КонецЕсли; - Циклы Для и Пока отделяйте пустой строкой от остального кода.
СуммаДокумента = 1000; КоличествоТоваров = 5;
ЗаполнитьТаблицу( СписокТоваров, ДатаНачала, ДатаОкончания );
Применение этих практических правил упрощает командную работу, ускоряет поиск ошибок и повышает качество 1С-проектов.
Выравнивание блоков кода и логических операторов

В 1С критично важна читаемость кода, особенно при работе с вложенными блоками. Используйте единообразное отступление для всех блоков: стандарт – 4 пробела на уровень вложенности. Например, условные конструкции и циклы должны иметь одинаковое выравнивание независимо от глубины вложенности.
Для логических операторов рекомендуется располагать каждый оператор на новой строке при сложных условиях. Это облегчает анализ выражений. Пример правильного выравнивания:
Если (Заказ.Статус = «Новый» И
Заказ.Сумма > 1000) Тогда
Такой подход снижает риск пропуска операторов и упрощает дебаг.
При многострочных вычислениях и присваиваниях выравнивайте знаки равенства и операторы по вертикали. Это улучшает визуальное восприятие зависимостей и предотвращает ошибки при изменении формул. Пример:
СуммаНалога = Товары.Сумма * 0.2;
ИтоговаяСумма = Товары.Сумма + СуммаНалога;
Функции и процедуры выравнивайте так, чтобы открывающий и закрывающий блоки совпадали по отступу, а внутренние строки – на один уровень глубже. Для вложенных условий используйте дополнительный отступ только для блоков, не для самой конструкции.
Следите за выравниванием логических операторов И и ИЛИ в больших выражениях. Расположение операторов в начале строки повышает читаемость и облегчает добавление новых условий без изменения всей структуры.
Использование отступов для читаемости вложенных конструкций
В 1С отступы критически важны для визуального выделения блоков кода и понимания логики вложенных конструкций. Рекомендуется использовать 4 пробела или один таб для каждого уровня вложенности.
При работе с условными операторами Если…Тогда…Иначе каждый блок кода внутри условий следует смещать на один уровень отступа. Например:
Если Состояние = «Активен» Тогда
ОбновитьДанные();
Иначе
УдалитьДанные();
КонецЕсли;
Для циклов Для…Цикл и Пока…Цикл применяйте тот же принцип: каждая внутренняя операция сдвигается относительно строки с циклом. Это уменьшает визуальный шум и позволяет быстрее выявлять ошибки вложенности.
Сложные конструкции с несколькими уровнями вложенности рекомендуется визуально разделять пустой строкой между логическими блоками. Например, в блоке с несколькими Если внутри цикла:
Для Каждого Элемент Из Список Цикл
Если Элемент.Сумма > 1000 Тогда
ОтправитьУведомление(Элемент);
КонецЕсли;
Если Элемент.Статус = «Закрыт» Тогда
Архивировать(Элемент);
КонецЕсли;
КонецЦикла;
Использование одинакового количества пробелов на каждом уровне и визуальное разделение блоков повышает скорость анализа кода, снижает количество ошибок при редактировании и облегчает командную работу. Автоматические форматировщики 1С могут настроить отступы, но важно сохранять логическую структуру, а не только выравнивание по левому краю.
Отступы также помогают при интеграции с системами контроля версий: различие между уровнями вложенности сразу заметно в диффах, что ускоряет ревью кода.
Правильное оформление комментариев в процедурах и функциях

Комментарии в 1С должны не дублировать код, а пояснять логику и намерения разработчика. Для процедур и функций рекомендуются следующие правила:
1. Комментарий перед процедурой или функцией:
| Элемент | Пример |
|---|---|
| Описание назначения | // Выполняет проверку корректности данных пользователя |
| Параметры | // Параметры: UserData — структура с полями Name, Email, Age |
| Возвращаемое значение | // Результат: Истина, если данные корректны; Ложь — иначе |
2. Внутри процедуры/функции комментарии должны объяснять нестандартные решения и важные шаги алгоритма:
| Ситуация | Пример комментария |
|---|---|
| Ветвление с необычным условием | // Проверяем Email на наличие домена из списка доверенных |
| Использование сложных конструкций 1С | // Формируем временный массив для сортировки без изменения исходных данных |
| Вызовы внешних методов | // Вызываем внешний сервис для проверки валидности номера телефона |
3. Рекомендуемый стиль:
| Правило | Пример |
|---|---|
| Однострочные комментарии | // Объявление переменной счетчика |
| Блочные комментарии | /* Проверка всех полей формы:
— Name обязательное — Email форматируется — Age >= 18 */ |
| Комментарии на той же строке | Сумма = Количество * Цена; // вычисляем итоговую стоимость |
4. Практические рекомендации:
| Совет | Пример |
|---|---|
| Избегать тривиальных комментариев | // Увеличение счетчика → вместо этого пояснять зачем счетчик |
| Обновлять комментарии при изменении кода | // Ранее проверка на пустой Email, теперь проверка на домен |
| Использовать единый стиль в проекте | // Все функции документируются блоком перед началом кода |
Разделение длинных строк и выражений на несколько строк

В 1С длинные строки и сложные выражения значительно снижают читаемость кода. Разделение их на несколько строк помогает ускорить понимание и упрощает поддержку. Основное правило – разрывать строку логически, сохраняя целостность выражения.
При работе с SQL-запросами внутри 1С рекомендуется переносить каждый ключевой элемент на новую строку. Например, SELECT, FROM, WHERE, JOIN и условия фильтрации должны начинаться с новой строки. Это облегчает сравнение и поиск ошибок.
Для длинных арифметических или логических выражений используйте перенос после оператора. Например, знак «+», «-», «*», «/», «AND», «OR» переносится на новую строку, а не остается в конце предыдущей. Такой подход улучшает визуальное восприятие и снижает вероятность пропуска оператора.
Пример разделения логического выражения:
Если (СуммаДокумента > 10000 И
ДатаДокумента >= НачалоМесяца(ТекущаяДата()) И
ТипДокумента = Перечисления.ТипыДокументов.Заказ) Тогда
Для длинных вызовов методов можно переносить каждый параметр на новую строку. Если метод принимает более двух аргументов, каждый аргумент ставится на отдельной строке с выравниванием по открывающей скобке.
Пример с методом:
Результат = РаботаСФайлом.Записать(
ИмяФайла,
СтруктураПараметров.Получить("Параметр1"),
СтруктураПараметров.Получить("Параметр2")
);
Таблица рекомендаций по разделению длинных строк:
| Тип выражения | Рекомендация по переносу |
|---|---|
| Логические условия | Переносить после оператора (AND, OR), каждое условие на новой строке |
| Арифметические выражения | Перенос после оператора (+, -, *, /), выравнивание по предыдущему уровню вложенности |
| SQL-запросы | Каждое ключевое слово на новой строке (SELECT, FROM, WHERE, JOIN) |
| Вызовы методов с параметрами | Каждый параметр на новой строке, выравнивание по скобке метода |
| Структуры и массивы | Каждый элемент на новой строке, особенно при длинных списках |
Соблюдение этих правил снижает количество ошибок при редактировании кода и делает его более понятным для командной работы.
Согласованное именование переменных и объектов

В 1С переменные и объекты следует именовать так, чтобы название отражало их тип и назначение. Для булевых переменных используйте префикс `Есть` или `Использовать`, например: `ЕстьПраваНаРедактирование`, `ИспользоватьСкидку`. Для числовых переменных – `Количество`, `Сумма`, `Цена` с указанием контекста: `КоличествоТоваровНаСкладе`, `СуммаОплатыЗаМесяц`.
Объекты объектов 1С (Документы, Справочники, Регистры) лучше именовать по функционалу: `ДокументРеализацияТоваров`, `СправочникКонтрагенты`, `РегистрНакопленияПродажи`. Для коллекций используйте множественное число: `Сотрудники`, `ТоварыНаСкладе`.
Используйте единый стиль именования: `CamelCase` для переменных и объектов с сочетанием букв верхнего регистра для новых слов, например `НомерДокумента`, `ДатаОтгрузки`. Константы и реквизиты можно выделять префиксом `Код` или `ID`, например: `КодСклад`, `IDСотрудника`.
Имена процедур и функций должны начинаться с глагола, отражающего действие: `ПолучитьДанныеСотрудника`, `ЗаписатьДокументПродажи`. Если функция возвращает логическое значение – используйте вопросы: `ЕстьДоступКОтчету`, `МожноРедактироватьДокумент`.
Не используйте сокращения без строгой необходимости. Сокращение допустимо только если оно общеупотребительное и однозначное: `Адрес` вместо `Адр`, `Контрагент` вместо `Ктрг`. Избегайте транслитерации, например `Summa` или `Kolvo`, вместо этого используйте `Сумма` и `Количество`.
Для локальных переменных в процедурах и функциях рекомендуется добавлять контекст процедуры, если переменная может быть неоднозначной: `ТекущийКонтрагент`, `ВыбранныйДокумент`, `ОбновляемаяСтрокаТаблицы`.
Согласованное именование упрощает поиск и сопровождение кода, снижает количество ошибок при изменении логики и повышает читаемость при командной разработке.
Применение стандартных шаблонов форматирования в 1С:Предприятие

Стандартные шаблоны форматирования в 1С:Предприятие позволяют поддерживать единообразие кода и ускоряют процесс разработки. Они включают настройки отступов, разрывы строк, правила оформления блоков и операторов.
Для применения шаблона в конфигураторе выполните следующие действия:
- Откройте конфигуратор и перейдите в меню Сервис → Настройки → Шаблоны форматирования.
- Выберите один из встроенных шаблонов: 1C:Enterprise Default, Compact, Readable.
- Настройте параметры конкретного шаблона, если требуется: размер табуляции, перенос длинных строк, стиль размещения операторов Если и Для.
- Сохраните изменения и примените шаблон к выбранным объектам конфигурации через Форматировать код (Ctrl+Shift+F).
Рекомендуемые практики при использовании шаблонов:
- Использовать один шаблон для всей конфигурации, чтобы исключить различия в стилях между разработчиками.
- Проверять форматирование после массового копирования кода из внешних источников, так как шаблон может не применяться автоматически.
- Для модулей с большим количеством вложенных блоков включить опцию Отступы по уровню вложенности, чтобы улучшить читаемость.
- Регулярно обновлять шаблоны при изменении стандартов оформления в проекте, особенно при работе в команде.
- Использовать встроенный просмотр изменений форматирования, чтобы оценивать влияние шаблона перед сохранением.
Следование этим правилам обеспечивает чистый, структурированный код, облегчает поддержку и снижает вероятность ошибок при интеграции модулей.
Автоматические инструменты и плагины для проверки стиля кода

Встроенный анализатор 1С позволяет автоматически проверять форматирование процедур, функций и объектов метаданных на соответствие правилам оформления. Он выявляет лишние пробелы, несоответствие отступов и нарушения длины строк, а также предупреждает о некорректном использовании ключевых слов.
Для более гибкого контроля рекомендуется использовать плагин 1C:Lint. Он интегрируется с конфигуратором и VS Code, анализирует синтаксис и стиль кода, формирует подробные отчёты с указанием строк и типов ошибок. Настройки плагина позволяют создавать собственные правила форматирования под корпоративные стандарты.
Еще один инструмент – 1C:Formatter. Он автоматически приводит код к заданному стилю: корректирует отступы, форматирует циклы и условия, стандартизирует комментарии. Поддерживает массовую обработку файлов и может применяться как при сохранении объектов, так и в отдельной проверке всего проекта.
Использование этих инструментов сокращает количество ручных правок и повышает читаемость кода. Комбинированное применение встроенного анализатора и сторонних плагинов позволяет создать эффективный процесс постоянной проверки стиля на уровне всего проекта.
Вопрос-ответ:
Почему важно выравнивать отступы в коде 1С?
Выравнивание отступов делает структуру кода более наглядной и облегчает чтение как для автора, так и для коллег. Правильно выставленные отступы помогают быстро определить блоки условий, циклов и процедур, а также снижают риск ошибок при изменении кода.
Как правильно форматировать длинные условия в 1С?
Длинные условия лучше разбивать на несколько строк, выравнивая логические операторы. Например, каждый оператор ИЛИ или И может начинаться с новой строки с отступом, соответствующим уровню вложенности. Это делает проверку условий более прозрачной и уменьшает вероятность пропуска ошибок.
Какие правила стоит соблюдать при оформлении комментариев в 1С?
Комментарии должны быть краткими, но информативными. Лучше размещать их над блоком кода, который поясняется, а не внутри строки. Следует избегать комментариев, дублирующих очевидное действие, и сосредоточиться на объяснении логики, нестандартных решений или ссылок на требования.
Нужно ли ставить пробелы вокруг операторов в выражениях 1С?
Да, пробелы вокруг операторов повышают читаемость. Например, запись a+b менее наглядна, чем a + b. Это правило особенно полезно при сложных арифметических и логических выражениях, так как позволяет сразу видеть структуру формулы.
Как организовать длинные процедуры в 1С для удобного чтения?
Длинные процедуры лучше разбивать на вспомогательные подпрограммы или функции с понятными названиями. Также полезно отделять логические блоки пустыми строками и группировать действия по смыслу. Такой подход упрощает поддержку кода и позволяет быстрее ориентироваться в его структуре.
Почему важно соблюдать единый стиль отступов и пробелов в коде 1С?
Единообразие отступов и пробелов позволяет быстрее воспринимать структуру кода и понимать вложенность блоков. Когда код написан с хаотичными отступами, чтение становится затруднительным, увеличивается вероятность пропустить ошибки. Например, одинаковое использование табуляций или пробелов для отступов помогает сразу видеть границы условных операторов, циклов и процедур. Кроме того, при совместной работе нескольких разработчиков одинаковый стиль облегчает внесение изменений и уменьшает количество конфликтов при объединении изменений в системе контроля версий.
