Язык 1С: плюсы и минусы для аналитических платформ

от автора

Привет, Хабр! На связи Саша Чебанов, product owner платформы Modus.

Мы часто сталкиваемся с несколько устаревшим мнением, что язык 1С – это только про финансовые системы. В этой статье я постараюсь подробнее рассказать, что он из себя представляет, где мы его применяем, какие плюсы и минусы у него есть. Поехали!

Язык программирования 1C — это язык для написания кода и создания алгоритмов при работе с технологической платформой «1С:Предприятие». Для простоты понимания и сокращения букв я буду писать «язык 1С» или просто «1С».

Так вот, 1С — это давно не только язык локальной бухгалтерской или финансовой программы, а мощное решение, проверенное огромным количеством компаний сектора enterprise. Например, в сервисе «1С:Фреш» тысячи предприятий и десятки тысяч пользователей, которые одновременно работают в облаке.

1С предназначен для:

  • описания внутренней логики работы приложений «1С: Предприятие»;

  • ввода и вывода информации и ее изменения;

  • работы с формами объектов и списков, описания их внешнего вида и поведения;

  • работы с данными информационных баз: их получения, модификации и обновления.

А еще на нем написана часть нашей платформы — Modus Визуализация ациклических графов

Визуализация ациклических графов

У 1С есть плюсы и минусы, ниже поговорим про них.

Высокая скорость разработки

У 1С есть технологическая платформа – это и среда исполнения, и набор средств для разработки приложений и администрирования.

Интерфейс платформы 1С

Интерфейс платформы 1С

По большому счету, 1С – это большая low-code платформа для настройки доступных на этом уровне объектов. Поэтому с точки зрения frontend мы не программируем «с нуля» формы интерфейсов, а конфигурируем из доступных шаблонов, настраиваем получившийся элемент и передаем информацию в движок. Дальше за отображение элемента отвечает платформа.

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

Платформа сильно сокращает время на модификацию продукта. К примеру, перед нами стоит задача обеспечить ввод, модификацию и выполнение шагов преобразования данных, при этом нужно предоставить простой и понятный интерфейс пользователю, хранить историю изменений объектов и ограничить доступ к каким-то данным у части пользователей. Трудозатраты вырастут в 8-10 раз, если мы решим сделать задачу не в 1С, а в web-серверном приложении, где, например, серверная часть написана на Go, а клиентская на Reackt.

В качестве еще одного примера приведу антикейс другой компании. У них есть система управления внутренней инфраструктурой, которая написана на 1С. В 2022 году решили ее переписать: разработать backend на Python, frontend на JavaScript. Количество спринтов для реализации задач, решавшихся в 1С за один, выросло в несколько раз. В итоге, они вернулись к 1С.

Концентрация на архитектуре и функциональности, а не на коде

Язык 1С прост для описания логики работы приложения, а платформа за счет шаблонов дает возможность сконцентрироваться на логике выполнения программы, а не отслеживать каждую строку кода.

Поэтому 1С-программист меньше погружен в код и больше – в бизнес-процессы: управление производством (здесь я писал про WorkFlow. Мы подключили библиотеку Рабочий список

Рабочий список

Например, вот интерфейс рабочего списка из Modus ETL.

Мы не сможем здесь:

  • убрать или поменять лого 1С и обозначение меню тремя чертами в верхней части;

  • отменить уведомления;

  • изменить структуру размещения подсистемы;

  • изменить «звездочку» на кнопке, чтобы добавить ее в избранное или вернуться назад, вбок и т.п.

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

Недостающий функционал дописываем на другом стеке – выделяем части, которые не могут быть реализованы на 1С, и рассматриваем их, как отдельные сервисы или встраиваемые компоненты. Например, для высоконагруженных систем мы пишем сервис получения данных на Go. Часть, связанную с графическим проектированием, пишем на JavaScript.

Если бы у нас было много таких форм и элементов, не стоило бы использовать 1С – риски были бы слишком велики, нужно было бы долго отлаживать всю систему при добавлении новых компонентов. К примеру, связать 1C и JavaScript не так просто. Но т.к. у нас всего 2 такие формы, то 1С здесь оправдан.

Интеграция с другими системами

Есть несколько вариантов интеграции аналитической платформы, написанной на языке 1С, и учетных систем, написанных на других языках:

  • через http-сервис;

  • через веб-сервисы ( https://habr.com/ru/articles/753860/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *