Что такое ADR, и почему он нужен даже команде из одного человека

18.06.26

Управление ИТ - Стандарты и документация

Про то, как перестать терять знания о принятых архитектурных решениях. Разбираю, что такое Architecture Decision Record (ADR) и как начать вести его буквально сегодня.

Подниму тему, которую на Инфостарте, кажется, еще не обсуждали. В большом мире разработки про ADR пишут уже лет десять, а у нас в 1С-сообществе про него почти не слышно. И зря.

Сейчас объясню, почему.

 

Знакомая история?

 

Приходит к вам коллега (или вы сами через год) и спрашивает: «А почему вот этот обмен у нас сделан через HTTP-сервис, а не через типовую синхронизацию? И почему данные складываем в регистр сведений, а не в справочник?»

Вы смотрите на код. Код рабочий, понятный, имена говорящие (комментариев, разумеется, нет - мы же не варвары). Но почему было принято именно такое решение - не помнит никто. Автор уволился, задача в трекере закрыта и неинформативна, переписка в чате утонула, а тот, кто все помнил, ушел на пенсию. Остался только результат. Причины испарились.

И тут начинается самое интересное. Новый разработчик смотрит на «странное» решение, не понимает его мотивов, и одно из двух:

  • либо аккуратно обходит его стороной, делая костыли вокруг («ну раз так сделано, значит, наверное, зачем-то надо»);
  • либо смело переделывает «как правильно» - и через неделю выясняется, что наступил ровно на те грабли, от которых исходное решение как раз и защищало.

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

ADR - это лекарство ровно от этой болезни.

 

Что такое ADR

 

ADR расшифровывается как Architecture Decision Record - запись об архитектурном решении.

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

Одно решение - один документ. Документы складываем рядом с кодом, нумеруем по порядку и больше не трогаем (об этом ниже, это важный момент).

Сам код отвечает на вопрос «как это работает». ADR отвечает на другой вопрос - «почему мы решили сделать именно так».

Почувствуйте разницу:

  • Документация описывает, как устроена система сейчас.
  • ADR описывает, почему она устроена именно так, и какие альтернативы мы отвергли.

 

Кто это придумал

 

Чтобы сразу снять вопрос «а кто это вообще придумал и можно ли этому доверять».

ADR - давно устоявшаяся индустриальная практика. С конкретными авторами, со стандартными форматами. Появилась она не вчера.

  • Майкл Нюгард (Michael Nygard), 2011 - статья «Documenting Architecture Decisions». Это канонический первоисточник, именно здесь сформулирован тот самый формат, который мы разбираем ниже. Хотите прочитать что-то одно про ADR в оригинале - читайте эту статью.
  • ThoughtWorks Technology Radar - авторитетный отраслевой «радар технологий» от большой международной IT-компании. Именно он в свое время вывел ADR в мейнстрим, присвоив практике статус «Adopt» (рекомендовано к повсеместному применению). После этого про ADR заговорили все.
  • MADR (Markdown Architectural Decision Records) и репозиторий Joel Parker Henderson - это уже про готовые шаблоны. MADR — популярный формат записи ADR в markdown. Огромная коллекция шаблонов, примеров и ссылок собрана в репозитории Joel Parker Henderson, а «домашняя страница» практики со стандартными шаблонами живет на adr.github.io.

Велосипед изобретать не нужно. Есть первоисточник, есть готовые шаблоны на любой вкус - от минималистичного нюгардовского до развернутого MADR. Берете и применяете.

 

Как выглядит ADR

 

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

Заголовок. Номер и краткая суть. Например: "ADR-0012: Адресное хранение на штатном ячеистом складе ERP, без отдельной WMS".

Статус. Одно из: "Предложено", "Принято", "Отклонено", "Устарело", "Заменено на ADR-NNNN". Статус - это вся «жизнь» решения. Решение приняли - статус «Принято». Через два года отказались - документ не удаляем, ставим «Устарело» и пишем новый ADR со ссылкой на старый.

Контекст. Что происходит, какая задача стоит, какие ограничения. Тут описываем ситуацию максимально полно: какая версия платформы, какие требования бизнеса, что у нас уже есть, чего нельзя трогать.

Решение. Что именно мы решили сделать. Коротко и однозначно.

Последствия. Что мы получаем и чем за это платим. Тут самая ценная часть - перечислить минусы. Любое архитектурное решение - это компромисс. Идеальных решений не бывает, бывают подходящие под контекст.

Иногда добавляют еще секцию Рассмотренные альтернативы - что еще мы обдумывали и почему отказались. Лично я считаю эту секцию чуть ли не самой полезной: именно она спасает будущего разработчика от соблазна «а давайте переделаем как правильно».

 

Пример из жизни

 

Возьму конкретный пример. Ситуация знакома всем, кто внедрял складской учет: на складе бардак, и встает вопрос - отдельная WMS-система или штатные возможности ERP?

# ADR-0012: Адресное хранение на штатном ячеистом складе ERP, без отдельной WMS

## Статус
Принято (2026-02-10)

## Контекст
На складе бардак: товар ищут вручную, новички не знают, где что лежит.
Бизнесу нужно прежде всего знать, в какой ячейке находится конкретный товар. Сложные складские процессы на текущем объеме не требуются.
Уже внедрена 1С:ERP 2.5.22.137, склад работает в той же базе.

## Решение
Включаем и настраиваем типовой механизм адресного (ячеистого) хранения в 1С:ERP. Отдельную WMS-систему не внедряем.

## Последствия
+ Не плодим еще одну систему и интеграцию с ней - меньше точек отказа и ниже стоимость владения.
+ Адресный склад работает «из коробки», данные о ячейках - в той же базе, отдельный обмен не нужен.
+ Решаем главную задачу бизнеса: всегда видно, где лежит товар.
- Функционально беднее полноценной WMS (тонкое управление складскими процессами, сложные алгоритмы отбора).
- Нужно дорабатывать рабочие места кладовщиков, штатные не всем удобны.

## Рассмотренные альтернативы
- Отдельная WMS (например, класса Axelot) - отклонено: избыточно для текущих задач.
Управлять складскими процессами бизнесу пока не нужно, а интеграция и сопровождение второй системы стоят дорого.

Полстранички. Пять минут на написание. А теперь представьте, что через год новый разработчик (или новый РП, который рвется «внедрить уже нормальную WMS») открывает этот файл - и ему не нужно никого допрашивать. Он сразу видит, что вопрос WMS уже обдумывали, на каких объемах решение принималось и при каких условиях его стоит пересмотреть.

 

 

Архитектор - это тот, кто принимает решения

 

Отвлечемся от файлов и шаблонов. Кто вообще все это пишет?

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

А теперь смотрите, что получается. Если работа архитектора - это принятие решений, то ADR - буквально материальный результат его труда. Зафиксированное решение. Та самая «деталь», которую архитектор произвел на свет.

Подумайте: у разработчика результат работы виден и осязаем - это коммиты и работающий функционал, который можно потыкать. А что предъявить архитектору? «Я тут подумал и решил, что обмен надо делать вот так»? Решение, которое нигде не записано, - это решение, которого как будто и не было. Его нельзя ни перечитать, ни оспорить, ни передать, ни вспомнить через год.

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

Так что для архитектора ADR — естественная форма того, что он и так делает каждый день. Никакая не обязанность сверху. Просто перестаем выбрасывать результат в воздух и начинаем его сохранять.

 

Почему это особенно актуально для 1С

 

Знаете, что я заметил? В мире 1С особенно много решений, которые принимаются «по умолчанию» и потом удивляют новичков.

  • Дорабатывать типовую или делать расширение?
  • Одно большое расширение или много маленьких? (это решение потом аукнется отдельными приключениями)
  • Отказаться от хранилища в пользу git, работать в конфигураторе или EDT?
  • Свой регистр или подсистема из БСП?

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

У нас вообще не принято фиксировать «почему». Выгружать конфигурацию в git умеем, CI настраиваем, автотесты гоняем, рассказываем на инфостарте, какие мы крутые. А сам процесс принятия решений остается устным фольклором, который передается от старожила к новичку у виртуального костра. ADR превращает этот фольклор в письменность.

 

Где хранить ADR

 

Тут моя позиция простая: храните ADR рядом с кодом, в git.

Раз уж мы выгружаем конфигурацию в репозиторий (а вы ведь выгружаете, правда?), то заведите там папку docs/adr/ и складывайте туда обычные markdown-файлы:

docs/adr/

  0001 Выбор механизма обмена.md

  0002 Отказ от хранилища.md

  0003 Структура расширений.md

  ...

 

Почему именно так, а не в Confluence, не в вики, не в Notion и не в «общей папке на сервере»:

- ADR лежит там же, где код, и попадает к разработчику вместе с командой git clone. Никуда ходить не надо.

- ADR версионируется вместе с кодом. По истории git видно, когда и в каком контексте появилось решение.

- Markdown читается откуда угодно - хоть в браузере на GitHub/GitLab, хоть в VS Code, хоть просто в блокноте.

- Не требует покупки и внедрения еще одной системы.

Если хочется автоматизации — есть утилиты adr-tools (создание новой записи одной командой) и Log4brains (собирает из ваших markdown-файлов статический сайт со всеми решениями). Но это уже опционально. Начать можно вообще без инструментов, с одного текстового файла.

А есть ли что-то родное, прямо внутри 1С? Да. Если хотите вести ADR, не выходя из экосистемы 1С, посмотрите подсистему АрхиТопос - православный инструмент для архитектора прямо в конфигурации 1С. Среди прочего там есть справочник «Реестр архитектурных решений», по сути та же концепция ADR: он позволяет фиксировать и документировать архитектурные решения по информационной системе или проекту. Подход тут другой, решения хранятся внутри базы, а не в git-репозитории. У этого есть и плюсы (все под рукой у архитектора в привычном интерфейсе, доступно аналитикам без git), и минусы (ADR живет отдельно от исходников и не едет вместе с git clone).

Что вам ближе, git-way или 1С-way, решайте сами. Главное - чтобы решения вообще фиксировались, а уж чем именно, дело десятое.

 

«Это же лишняя бюрократия!»

 

Собрал возражения.

«У нас нет времени на писанину». На написание ADR уходит 5-10 минут. Решение вы все равно уже обдумали и обсудили - остается записать то, что и так звучало вслух. Сравните это с часами, которые потом уходят на археологические раскопки «а почему тут так?».

«И так все знают, зачем документировать очевидное». Все знают - сегодня. Через год половина команды сменится, а оставшаяся половина забудет. «Очевидное» - это самое опасное слово в разработке. То, что очевидно автору в момент написания, абсолютно неочевидно тому, кто читает код через два года в шесть вечера в пятницу.

«У нас же есть задачи в трекере». Задача в трекере описывает, что надо сделать. Она не описывает, почему выбран именно такой способ, и почти никогда не содержит отвергнутых альтернатив. Трекеры к тому же меняются (вспомните, сколько раз вы мигрировали с одной системы на другую - и где теперь те старые задачи?). А ADR живет вместе с кодом ровно столько, сколько живет код.

«Это для больших команд, а я один». Вот тут самое интересное. «Команда из одного человека» - это команда из вас сегодняшнего и вас через год. И поверьте, "вы через год" - совсем другой человек, который смотрит на ваш сегодняшний код с искренним недоумением. ADR - это письмо самому себе в будущее.

 

Чего ADR не заменяет

 

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

ADR не отменяет:

  • проектную документацию и ТЗ
  • описание API и справку по функциям
  • пользовательские инструкции
  • схемы интеграций и регламенты эксплуатации

ADR фиксирует только архитектурные решения - те, что трудно и дорого изменить потом. Заводить ADR на каждый чих не надо. Переименовали реквизит -не ADR. Выбрали стратегию обмена между базами - вот это ADR. Чутье на значимость решения придет быстро.

 

С чего начать прямо сегодня

 

Не надо ждать понедельника и одобрения начальства. Сделайте так:

1. Заведите в репозитории папку docs/adr/.

2. Скопируйте шаблон из этой статьи в файл "0001-template.md" (или возьмите готовый, форматов в интернете полно).

3. Вспомните последнее серьезное архитектурное решение в вашем проекте и опишите его задним числом. Прямо сейчас, по горячим следам.

4. Договоритесь с собой (и командой, если она есть) - следующее значимое решение фиксируем сразу.

Все. Никакого внедрения, никакого нового софта. Один markdown-файл — и вы уже на шаг впереди подавляющего большинства 1С-проектов.

 

Заключение

 

Мы, 1С-ники, научились многому: выгружать в git, делать ревью, строить CI/CD. И при этом продолжаем терять самое ценное - причины наших решений.

Код храним бережно, а мотивы выбрасываем.

ADR - дешевый (буквально полстранички и пять минут) способ перестать это делать. Он не требует ни денег, ни разрешения. Только привычки.

Попробуйте завести хотя бы один ADR на ваш текущий проект. А через год напишите, пригодилось или нет. Интересно, приживется ли эта практика в нашем 1С-мире.

А пока расскажите в комментариях: вы фиксируете причины своих архитектурных решений? Или тоже полагаетесь на устный фольклор и память старожилов?

Архитектура ADR

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Стандарты и документация Россия Бесплатно (free)

Продолжаю разбирать профстандарты. Беру стандарт «Архитектор программного обеспечения» (06.003) и сверяю с тем, кого у нас в 1С зовут архитектором. Зовут кого угодно - спеца по производительности, тимлида, ревьювера, самого опытного на проекте, - но почти никогда того, кто на самом деле делает работу архитектора. А она одна: принимать архитектурные решения и отвечать за них.

06.07.2026    561    4    ardn    9    

9

Компетенции и навыки Стандарты и документация Программист Россия Бесплатно (free)

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

22.06.2026    4347    14    ardn    46    

24

Стандарты и документация Бесплатно (free)

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

18.06.2026    401    0    YA_826532418    3    

3

Работа с требованиями Стандарты и документация Россия Бесплатно (free)

“Не хотим заполнять документ вручную, пусть он сам откуда-то подтянет данные, заполнится и запишется” — звучит понятно только до тех пор, пока разработчик не начнет задавать вопросы. Откуда подтянуть? При каких условиях? Что делать, если данных нет? Кто имеет право запускать сценарий? Что должно попасть в другую базу 1С после согласования? Разбираем, почему мутная задача всегда становится дорогой, какие требования нужны 1С-разработчику до начала реализации и как простая карточка задачи экономит часы разработки, уточнений и переделок.

16.06.2026    389    0    NikolayMaerov    0    

2

Стандарты и документация 1С 8.3 Россия Бесплатно (free)

Внешние обработки и отчеты часто появляются в 1С как быстрый и удобный способ решить задачу: выгрузить данные, проверить остатки, сформировать нестандартный отчет, выполнить разовую обработку или закрыть срочную потребность бизнеса. Но со временем .epf и .erf могут превратиться в теневой слой системы: без владельцев, версий, проверки после обновлений, описания назначения и понимания рисков. Разбираем, как держать внешние обработки и отчеты под контролем

15.06.2026    373    0    NikolayMaerov    0    

2

Стандарты и документация Бесплатно (free)

НСИ часто вспоминают слишком поздно: когда отчёты уже не сходятся, интеграции падают, маршруты согласования уходят не тем людям, а пользователи спорят, какой контрагент или номенклатура “правильные”. Разбираем, почему нормативно-справочная информация критична для 1С-проектов, какие ошибки встречаются чаще всего и как начать приводить НСИ в порядок без гигантского отдельного проекта.

11.06.2026    647    0    YA_826532418    0    

2

Стандарты и документация 1С:Предприятие 8 1С:ERP Управление предприятием 2 Машиностроение и приборостроение Бесплатно (free)

В связи с тем, что большинство предприятий, на которых мы проводим внедрения, работают с конструкторской документацией, составили краткую справку по подготовке к внедрению «1С:ERP Управление предприятием 2».

20.05.2026    599    0    AiBCifra-1S-ERP-UH    1    

1

Стандарты и документация Бесплатно (free)

Рассказываем, как использовать текст договора в качестве инструмента управления проектом: фиксировать ожидания, этапы работ, сценарии выполнения и возможные изменения. На примере проектов переноса данных 1С показываем, чем они отличаются от проектов внедрения, зачем нужна короткая анкета на старте и как декомпозиция помогает заранее «разложить проект на кирпичики». Объясняем, почему IT-проекты можно оценивать по аналогии со строительством – через понятные виды работ, объемы и нормировки, – а коммерческое предложение стоит делать достаточно подробным, чтобы к нему можно было вернуться при изменении сценария. Отдельно разбираем, как повторяющиеся этапы и фиксация работ по периодам помогают гибко управлять объемом проекта, снижать риски для подрядчика и упрощать согласования на стороне заказчика.

14.05.2026    705    10    primat    0    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user-z99999 78 18.06.26 13:05 Сейчас в теме
Посмотрел код, он написан плохо. Переписал, теперь очень быстро работает, и правильно.
Для ADR нужно секретаря нанимать или работа у вас должна быть неспешная.
2. ardn 813 18.06.26 14:50 Сейчас в теме
(1) Плохой код нужно переписывать, это однозначно! А если по коду непонятно, почему вообще такое решение используется, ADR бы пригодился
3. gybson 13 18.06.26 18:26 Сейчас в теме
(1) Во-первых, зачем первый раз написали плохо? Это очень разумный вопрос. Если у вас в команде диверсант, то необходимо поднимать вопрос об обороне, а не архитектуре. Т.е. очень логично сесть и подумать, а почему вы пишете хорошо со второго раза, а не с первого?

Очень хорошо, когда в команде есть зоркий и ловкий. Но пока еще он увидит, пока найдет время.
5. user-z99999 78 19.06.26 11:08 Сейчас в теме
(3) Не бывает команд с постоянным составом.
Кто-то уволился, кого-то приняли на работу.
4. NeSPEC 60 19.06.26 11:01 Сейчас в теме
Автору - респект. Для себя (и для всей команды на будущее) давно подготовил что-то аналогичное для хранения не только архитектурных решений, но и всего , что показалось полезного и просто интересного за весь период работы. Это самописная конфигурация 1С (что-то типа универсальной "Справки" с темами, картинками и кодом - если нужен для этой темы). Реально помогает в работе. А ADR и ее разнообразные клоны - штука полезная для организации.
10. ardn 813 22.06.26 18:31 Сейчас в теме
(4) Спасибо! И подход у вас отличный - вы по сути собрали свою базу знаний, шире ADR: не только решения, но и все полезное. Главное, что знание не теряется.
6. Asmody 19.06.26 23:20 Сейчас в теме
Только не ADR, а ЗАР - Запись об архитектурном решении. Мы же одинесники!
Хотите идеоматичнее? Считайте, что на ЗАРе на вас снизошло оЗАРение и вы его ЗАРегистрировали.
Alex_Smolensky; ICG_1C; Designer1C; ardn; +4 Ответить
7. ardn 813 20.06.26 07:24 Сейчас в теме
(6) Гениально! Спасибо! Не по первоисточнику, но зато, по нашему, по родному.
8. Designer1C 459 20.06.26 16:18 Сейчас в теме
"вы фиксируете причины своих архитектурных решений? " - да, в комментариях. Самые важные в первых строках модуля (менеджера, объекта, формы)
9. ardn 813 22.06.26 18:30 Сейчас в теме
(8) Хороший способ, сам так делаю для «что» и «как». Но есть разница. Во-первых, комментарий живет ровно столько, сколько живет этот модуль: отрефакторили, выпилили объект - и причина ушла вместе с кодом. Во-вторых, в комментарий почти никогда не влезают отвергнутые альтернативы («думали через HTTP-сервис, но отказались, потому что…») - а это самое ценное в ADR. Он не отменяет комментарии, он про слой выше одного модуля: почему вся система собрана так, а не иначе
Для отправки сообщения требуется регистрация/авторизация