1С, СППР и Архитектура как код

01.02.24

Разработка - DevOps и автоматизация разработки

Можно ли идеи подхода «Архитектура как код» положить на 1С или иную платформу, чтобы не изобретать ещё какой-то язык и сразу получить множество готовых библиотек функций и инструмент достижения главной цели подхода AaC.

1С, СППР и Архитектура как код

 

Сейчас набирает популярность подход «Архитектура как код» (AaC).

Происхождением он обязан практикам devops «Инфраструктура как код» (IaC).

Идея подхода «Архитектура как код» состоит в том, что объекты архитектуры выражаются в виде формализованных структур со связями, что позволяет, создав некоторый язык программирования, управлять модификацией архитектуры программным кодом. Ну и, конечно, зажать архитектуру в некоторый унифицированный формат описания.

В этом контексте происходит переход от визуального описания архитектуры в виде графических схем к формализованной, из которой, в свою очередь, автоматически производится отрисовка графического представления.

Формализация объектов архитектуры производится в виде простого текста в формате YAML, где объект представлен своими именем и реквизитами. Формат YAML позволяет привести проектирование архитектуры к подходам программирования, в т.ч. к контролю версий объектов наподобие git. Формализация объектов архитектуры вместе с их реквизитами позволяет рассматривать (и автоматизировано обрабатывать!) не только функциональные, но и нефункциональные требования.

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

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

Такой целью должна быть возможность автоматической проверки, соответствует ли системная реализация архитектурному замыслу.  Для этого необходимо, чтобы нормы AaC, как разновидность языка описания архитектуры (ADL), были интегрированы в жизненный цикл программного обеспечения.

У меня возникла мысль, а можно ли идеи  подхода «Архитектура как код» положить на 1С или иную платформу, чтобы не изобретать ещё какой-то язык и сразу получить множество готовых библиотек функций и инструмент достижения главной цели подхода AaC.

Вообще-то, специалисты признают, что «Архитектура как код» это маркетинговый слоган, теоретически и идеологически правильно называть этот подход «Архитектура как данные», но он, считается, менее понтово звучит. Тем не менее, в этом контексте близость AaC и 1С становится ещё сильнее.

Смотрим внимательно на AaC и видим, что объект+реквизиты это вообще-то стандартные метаданные 1С. По сути, архитектор-кодер даёт имя сущности (объекту) и даёт ему набор реквизитов и их значений. В этом контексте «описать объект архитектуры» означает:

 

 

  • дать объекту имя;
  • определить список его реквизитов;
  • заполнить реквизиты значениями;
  • определить связи объекта.

Ничего не напоминает?

Да, напоминает, если мы зададим объект как Документ, т.е. метаданное конфигурации 1С. Тогда, создав вид документа в конфигураторе и задав ему реквизиты, мы получаем интерфейс для объекта архитектуры. Переходим в платформу и можем описывать объекты архитектуры документами и заполнять реквизиты документа значениями.

Ну и где тут YAML?

Помним, что конфигурация 1С выгружается в XML-файлы по каждому объекту метаданных?

А что документы платформы могут выгружаться в тот же формат XML со значениями реквизитов?

Ну а YAML считается таким же форматом разметки, как XML, хотя и специально сильно упрощённым. Конвертер YAML/XML не вопрос сделать.

Что мы получаем при таком подходе?

  1. Язык обработки архитектуры.
    1. Это язык 1С.
      1. Хочешь - строй и модифицируй на нём объекты метаданных, хочешь - заполняй и меняй реквизиты объекта, хочешь - строй правила проверки архитектуры, объединяй виды объектов архитектуры в слои/структуры.
    2. Готовых специалистов по AaC со знанием языка.
  2. Готовый функционал управления разработкой архитектуры и кода разработки по аналогии с обычным кодингом для 1С на git-технологиях или в привычном конфигураторе/EDT.
    1. Возможность многопользовательской разработки архитектуры;
    2. Хронологические срезы состояния архитектуры как релизы.
  3. Готовый функционал платформы для обработки архитектуры.
    1. Версионирование (история данных) – аналог ветвей git для данных;
    2. Выгрузка прототипов (схем) YAML в виде XML из конфигурации;
    3. Планы обмена для выгрузки данных архитектуры в другие системы в XML(YAML) или для графической отрисовки;
    4. Импорт архитектурных описаний и списков универсальных архитектурных объектов/реквизитов из других систем через тот же план обмена;
    5. Документирование через поля комментариев и/или справку;
    6. Резервное копирование;
    7. Механизм ввода на основании, как связь между объектами архитектуры, лежащими в одном горизонтальном слое. В платформе это будет наследование реквизитов с обработкой или без обработки их значений;
    8. Механизм дополнительных свойств для описания вертикальных связей объектов архитектуры.
    9. Отчёты для обзора архитектуры и её данных.
  4. Выгрузка в СППР для увязки требований к архитектуре с её описанием.
  5. Возможность описания архитектуры не1С-систем в 1С в едином массиве с конфигурациями 1С.
    1. Ведь для описания архитектуры важно имя сущности, а не  что она заключена в стандартный 1С объект метаданных «Документ».

Чего не хватает?

  1. Не хватает графического описания архитектуры.  У 1С с этим бедно. Можно воспользоваться отрисовкой IDEF0 в СППР, ER диаграммой в EDT. Можно попытаться приспособить табличные или графические отчёты. Но, скорее всего, лучшим решением будет выгрузка для отрисовки в DocHub или Archimate или аналогичный продукт/сервис.
  1. Не хватает функционала по осуществлению главной функции AaC – проверке соответствия архитектуры её исполнению.

Здесь хотелось бы послушать читателей, тут нужен коллективный мозговой штурм

Буду признателен за обратную связь.

Вступайте в нашу телеграмм-группу Инфостарт

Архитектура проектирование код AaC СППР

См. также

Тестирование QA DevOps и автоматизация разработки Программист Пользователь 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.178.26.

4800 руб.

20.01.2022    10063    36    1    

19

Тестирование QA DevOps и автоматизация разработки Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.17.168.

2400 руб.

04.07.2022    10368    43    1    

34

DevOps и автоматизация разработки Тестирование QA Программист Пользователь 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.30.230.

3360 руб.

05.08.2024    3273    18    1    

12

DevOps и автоматизация разработки Программист Бесплатно (free)

Облачные технологии и DevOps кардинально меняют подход к разработке на платформе 1С:Предприятие. Делимся реальным опытом построения CI/CD-конвейера в GitLab: от сборки и тестирования с YAxUnit и Vanessa Automation до интеграции с SonarQube и безопасного развертывания в продакшен. Вы узнаете, как с помощью Docker и автоматизации превратить рутину в предсказуемый и надежный процесс, сократив риски и освободив время для решений, которые действительно требуют вашего профессионализма.

18.08.2025    348    ComboBoy    0    

3

DevOps и автоматизация разработки Программист Бесплатно (free)

Задумывались ли вы, сколько времени разработчики тратят не на код, а на рутинные действия – от настройки окружения до поиска ответственных и документации? Эта статья о том, как найти и устранить «ерунду», которая тормозит процесс и раздражает на каждом этапе разработки. Разбираемся, как с помощью автоматизации, чек-листов и правильных процессов сделать разработку комфортной, эффективной и даже приятной.

18.08.2025    2102    mrXoxot    1    

16

DevOps и автоматизация разработки Программист Бесплатно (free)

Так сложилось, что чаще всего для целей CI/CD в проектах 1С применяется Jenkins и чуть реже GitLab CI. Но существует множество других решений для построения сборочных контуров. Ниже речь пойдет о применении решения Azure DevOps в проектах на 1С. В основе – реальный кейс, шаблоны, инструменты и собственные расширения.

15.08.2025    718    ktb    0    

10

DevOps и автоматизация разработки OneScript Программист Бесплатно (free)

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

12.08.2025    4417    untru    13    

22

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Программист 1С v8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Дорогой дневник, мне не подобрать слов, чтобы описать боль и унижение, которые я испытал за последнее время, моя жизнь никогда не будет прежней... мне не удалось найти механизма поставки расширения конфигурации... но зато я научился это делать с помощью команд запуска "1С:Предприятие" и GIT...

1 стартмани

29.07.2025    2519    2    gorsheninsn    6    

26
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. oleshko_alexey 2 01.02.24 15:18 Сейчас в теме
У меня возникла мысль, а можно ли идеи подхода «Архитектура как код» положить на 1С или иную платформу, чтобы не изобретать ещё какой-то язык и сразу получить множество готовых библиотек функций и инструмент достижения главной цели подхода AaC

А зачем здесь 1С?
Dochub в git все хранит, картинки рисует , а в 1С нужно весь стек переписывать

Алексей Лустин экспериментировал использовать OScript для обертки С4 Model -
Для 1Сников в эту сторону стоит копать.



OScript Enterprise Architect (OMyGod)
DRAFT - отлаживаю концепцию по работе, структурирую API

имплементация языка проектирования 4-рёх уровней архитектуры в стиле O-AAA

Ключевой момент Я российский архитектор, проектирую архитектуру для российского заказчика, и если код команды программистов буду писать на янглийском, то уж техническое задание по ГОСТу мне придется писать точно на русском. Поэтому и архитектуру я должен описывать на русском.
2. roman72 402 01.02.24 16:42 Сейчас в теме
(1) И как в этих решениях с ответом на главный вопрос - как автоматизированно проверить соответствие архитектурных задумок фактическому воплолещению?

В git хранятся версии архитектурных описаний всего лишь...
5. investec 01.02.24 21:58 Сейчас в теме
(1)
OScript Enterprise Architect (OMyGod)


Какова судьба "OScript Enterprise Architect (OMyGod)"?
6. oleshko_alexey 2 02.02.24 11:52 Сейчас в теме
(5) Алексей убрал из доступа проект на github (убрал вообще все публикации, видео и соц. сети)

судя по тому что он активен в Jazz на DocHub вебинарах - OMyGod - не актуален.
8. roman72 402 03.02.24 12:26 Сейчас в теме
(6) И в чём причина этого?
3. oleshko_alexey 2 01.02.24 19:12 Сейчас в теме
В августе Сберфакторинг рассказывал в видео как они восстанавливали архитектуру рабочего проекта по данным логов, которые добавили в каждый сервис. И затем все изменения по логам отслеживаются

С большим удовольствием делюсь с вами записью митапа "Архитектурная руда" от Сбербанк Факторинг состоявшегося 9 августа 2023г.

https://www.youtube.com/watch?v=yp4PgZUYBZY

Большое спасибо Юле за доклад!
4. oleshko_alexey 2 01.02.24 19:16 Сейчас в теме
1, 2, 3 Из "Руды"
Прикрепленные файлы:
7. user-z99999 76 02.02.24 12:26 Сейчас в теме
Когда уборщицы будут визуально программировать,
сама программа будет терять в скорости работы.
Но если покупать всё мощнее и мощнее железо для этих игр, то почему бы нет)))

Если разве что, для аналитиков. Что-то очень быстро накидать, прикинуть, показать.
А для хорошей скорости программы, услуги программистов всегда будут востребованы.
9. roman72 402 03.02.24 12:31 Сейчас в теме
(7) Никто речь не ведёт о том чтобы избавиться от программистов через автоматизацию описания архитектуры.
Архитектура касается не только программного кода, но и иных операций,
например:
нужно описать интеграцию между несколькими системами, определить список интгерируемых данных, направления обмена, нагрузк уна каналы обмена.
Кода ещё никакого нет, а архитектура уже есть. И её описание весьма трудоёмко. Поэтому нужна автоматизация уже здесь.

А что касается архитектуры непосредстенно ПО - программистам нужен внятный и понятный вектор "как работать, в какую сторону писать код, как и что связано на функицональном уровне в зависимости от кода" - архитектура как такой вектор весьма необходима.
10. doublesun 110 24.08.24 08:21 Сейчас в теме
1Сники уже давно живут с "тесты как код". Так что для нашего сообщества понятие "что-то как код" не новое.
Vanessa Automation - пример того, что "тесты как код" дают.
Некоторое время назад и в конфигурации 1С:СТ появилась возможность тесты переводить в код. И это пример того, как концепцию "архитектура как код" можно было бы соединить с 1С:СППР.
Оставьте свое сообщение