К основному содержанию
A1sCode
Быстрый старт
Архитектура8 минут

Читаемый код 1С начинается
не с сокращения строк

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

Главный тезисЧитаемость — это не минимальное число строк, а минимальное расстояние от бизнес-решения до его выражения в коде.

В 1С легко получить короткую процедуру, которая всё равно требует от читателя восстановить половину контекста: что именно создаётся, что считается успехом, можно ли повторить запуск и где заканчивается одна бизнес-операция.

01

Проблема — не длина, а инфраструктурный шум

Служебный код неизбежен: нужно создать объект, заполнить реквизиты, перенести строки, записать, провести и обработать ошибку. Проблема появляется, когда эти действия занимают всё поле зрения, а намерение остаётся только в голове автора.

Читатель видит механизм раньше, чем понимает решение.

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

02

Три слоя читаемого сценария

1

Намерение

Какой бизнес-результат должен появиться после выполнения?

2

Контракт

Какие данные обязательны, что считается допустимым повтором и где границы операции?

3

Исполнение

Какая последовательность действий гарантирует заявленный результат?

Когда эти слои различимы, код можно читать сверху вниз. Комментарий не пересказывает синтаксис, а фиксирует решение и ограничение. Цепочка методов показывает исполнение, не смешивая его со служебными деталями.

03

Один сценарий — одна видимая операция

Ниже код создаёт документ, загружает подготовленные строки и проводит его. Наведите на смысловую строку или цветной токен: компонент покажет роль элемента, а не просто его тип.

Подготовить и провести документнамерение → данные → результат BLOG
// Намерение: провести полностью подготовленный документ
// Контракт: шапка и строки готовы до вызова Post
A1sDocs.On("РеализацияТоваровУслуг",
    A1sDS.Of(
        "Дата", ТекущаяДата(),
        "Контрагент", Контрагент))
    .LoadRows("Товары", Строки)
    .Post();
Что изменилось в чтении?

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

04

MILA-комментарий не объясняет очевидное

Комментарий // загружаем строки почти ничего не добавляет: это уже видно из LoadRows. Полезный комментарий отвечает на вопрос, которого нет в синтаксисе.

Слабый комментарий// Проводим документ

Повторяет ближайший вызов.

MILA-комментарий// Контракт: строки готовы до Post

Фиксирует границу и предотвращает частично выполненный сценарий.

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

05

Критерий готовности

Перед тем как считать сценарий читаемым, достаточно проверить четыре вопроса:

  1. 01
    Результат понятен до деталей?

    Читатель может одним предложением назвать итог операции.

  2. 02
    Входной контракт видим?

    Обязательные данные и значения по умолчанию не спрятаны в середине процедуры.

  3. 03
    Граница операции явная?

    Понятно, в какой момент состояние считается полностью подготовленным.

  4. 04
    Комментарий добавляет причину?

    Он описывает намерение или ограничение, а не дублирует имя метода.

Если на эти вопросы можно ответить без мысленного исполнения каждой строки, код уже работает как документация решения.

Дальше по теме

Посмотрите сценарии A1sCode в формате «задача → контракт → код»

Открыть практические сценарии