1С:Предприятие 8
Система программ
Архитектура платформы 1С:Предприятие
(версия 8.3.26)

О платформе в целом

1С:Предприятие — это отличная платформа для разработки бизнес-приложений.

Постараемся рассказать про это подробно и убедительно.

Что такое 1С:Предприятие? Мы говорим, что это система программ. Она состоит из платформы, приложений, экосистемы, различной методической информации и, конечно, специалистов, которые работают с этими технологиями и приложениями.

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

Зачем и почему платформа?

Платформенные решения стали модными.

Раньше приходилось объяснять — зачем вообще нужен платформенный подход?

Ускорение разработки, упрощение разработки и унификация разработки.

Зачем вообще нужны все инструменты разработки и фреймворки? Повышение уровня абстракции. Для того, чтобы ускорить и упростить разработку.

Платформа 1С:Предприятие решает эту задачу в области разработки бизнес-приложений.

Что есть платформа 1С:Предприятие?

Есть такая замечательная книга Станислава Лема, которая называется «Сумма технологии». Платформа 1С:Предприятие — это такая цивилизация в области разработки бизнес-приложений, которая является суммой технологий.

Если мы уже заговорили про литературу, то хочется еще сказать про замечательную книгу Эрика Эванса «Предметно-ориентированное проектирование» (DDD). В этой книге описывается взгляд на разработку бизнес-приложений со стороны моделирования предметной области. Предметно-ориентированное программирование позволяет ускорить разработку, упростить ее и, что важно, приблизить ее к конечному пользователю.

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

Основные идеи платформы

Мы закрываем единым фреймворком все аспекты разработки.

Платформа предоставляет ответы на все вопросы, которые возникают у прикладного разработчика.

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

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

В нашей платформе разработчик работает с единой системой типов: одинаковый тип он использует и в базе данных, и во встроенном языке на сервере, и во встроенном языке на клиенте, и на мобильном устройстве — это существенно упрощает разработку.

Еще один аспект — это быстрая разработка от предметной области. Мы, кроме технологических инструментов, предоставляем разработчику высокоуровневые прикладные инструменты, которые приближены к объектам предметной области. Важно, что они отражают семантику самой предметной области. По сути, они решают типичные задачи автоматизации и из них, как из кубиков, разработчик собирает бизнес-приложения.

В качестве одного примера приведем механизм регистров накопления. По сути, это готовый инструмент для отражения любых операций по движению и остаткам каких-то средств: это могут быть материальные средства, денежные средства и так далее. Разработчику не нужно его создавать с нуля — можно пользоваться готовым инструментом, который соответствует задачам предметной области.

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

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

Почему этого нет в большинстве других систем?

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

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

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

Примеры того, что платформа может делать сама:

  • журналирование;
  • история данных и версионирование;
  • пользовательский интерфейс;
  • интеграционные интерфейсы (API);
  • построение системы прав доступа и т. д.

Что включает в себя платформа?

Во-первых, собственно, то, что отражает данные предметной области и процессы — это хранимые данные и работающие процессы.

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

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

Платформа позволяет не просто разрабатывать отдельные приложения, но и создавать целые композиции приложений — это механизмы для автоматической синхронизации данных, это шина данных, 1С:Шина — наш новый инструмент класса ESB, это интеграция работы пользователей, чаты, видео, эта система single sign-on для обеспечения единого входа в разные приложения.

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

Для каких решений предназначена платформа? Когда ее имеет смысл использовать?

Платформа 1С:Предприятие — это инструмент для разработки решений для бизнеса.

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

Но и на всю глубину: от самых малых предприятий — до самых крупных организаций.

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

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

Мы считаем, что может.

Что важно для наших клиентов, для бизнеса?

Прежде всего, конечно, — это ускорение разработки и, соответственно, ускорение развития бизнеса этих предприятий.

Также для бизнеса очень важно, чтобы решения были по-настоящему сопровождаемыми.

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

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

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

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

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

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

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

И еще важно, что приложения автоматически развиваются вместе с развитием платформы. Например, система взаимодействия: когда мы ее разработали, наши пользователи сразу получили возможность общаться в чатах внутри своих приложений. Другой пример — это механизм истории данных. Когда мы его разработали, наши пользователи практически сразу получили возможность просматривать историю изменений.

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

Об этом сейчас много говорят. Я бы сказал, что это специалисты по разработке бизнес-приложений. По-моему, это замечательная профессия.

Это люди, которые умеют понимать бизнес, умеют понимать пользователей, умеют понимать бизнес-логику. Они тоже разные: есть начинающие, есть очень опытные, есть те, кто разрабатывает тиражные решения, которые используют сотни тысяч и миллионы пользователей, есть те, кто делает заказные решения для конкретного предприятия.

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

У них может быть тоже свой какой-то уклон: у кого-то — в технологическую область, у кого-то — в особенности бизнес-логики, у кого-то — в юзабилити.

Но все-таки их отличает комплексный подход к решению задач.

Кто же разрабатывает саму платформу?

Есть крутые системные разработчики — «системщики». Системщики, которые разрабатывают компиляторы, технологии in-memory обработки данных, технологии искусственного интеллекта.

Есть те, кто хорошо понимает прикладную разработку, понимает, как ведется прикладная разработка.

Есть те, кто любит и умеет создавать инструменты для разработчиков.

Есть те, кто любит создавать низкоуровневые и высокотехнологичные решения.

Но все они любят создавать универсальные решения и фреймворки.

На наш взгляд, это одна из самых интересных задач для системных разработчиков, и в мире не так много тех, кто решает подобного рода задачи.

Хорошо, что у нас есть много направлений системной разработки и разработчики могут выбирать то, что им интересно.

Ну, например, это направление highload. Причем, это и highload для очень крупных предприятий, и highload для облачных решений, в которых работают сотни тысяч небольших предприятий.

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

Наша платформа — это low-code или нет?

Это очень интересный и теперь модный вопрос.

Вообще, мы делали простые в использовании инструменты разработки очень давно. Но вот недавно оказалось, что это направление с очень модным современным словом low-code.

Конечно, мы относимся классу low-code технологий, мы поддерживаем model driven development и другие, более детальные, аспекты этого направления. Но хочется заметить, что у нас весьма масштабный low-code, то есть, на нашем low-code инструменте можно создавать не только небольшие, простые приложения, но и большие приложения вплоть до ERP-систем, систем управления огромными холдингами, федеральными госструктурами.

И важно, что наша low-code система позволяет вести разработку не только маленькими командами: одним человеком, двумя-тремя, но и десятками и даже сотнями разработчиков.

В чем уникальность нашей low-code системы?

Есть хорошие low-code системы, на которых делаются небольшие приложения для решения текущих потребностей бизнеса, уровня отдела предприятия, например. Но с их помощью не сделать большое, комплексное приложение.

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

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

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

Что же под капотом платформы?

Что у нас крутого внутри?

У нас есть много серьезных технологических решений собственной разработки.

Например, отказоустойчивый масштабируемый распределенный кластер серверов. Дата акселератор — это in-memory база данных нашей разработки. Технологии искусственного интеллекта, компьютерное зрение, распознавание речи и так далее.

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

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

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

Из новых технологий можно назвать 1С:Аналитику — это система класса BI, 1С:Шина, соответственно, это ESB, и технологию 1С:Предприятие.Элемент.

Важно сказать, что при этом весь комплекс — это очень большой продукт, который работает в самых разных условиях: в разных операционных системах, в разных браузерах, с разными СУБД.

Очень важно, что при этом он прост в установке и прост в обслуживании, в администрировании.

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

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

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

Конечно, нужно сказать о развитии

Развитие обязательно должно быть.

Среди трендов развития платформы есть достаточно очевидные, которые понятны в современном уровне развития IT — это облачность, мобильность, современные технологии искусственного интеллекта, in-memory обработки данных, развитие интерфейса UI/UX.

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

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

Еще один тренд — это работа больших команд разработчиков. Слаженная, нацеленная на создание больших сложных систем.

Другой тренд — это очень крупные внедрения.

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

И кроме того, появляется новый тренд — это коллаборация. Коллаборация людей, работающих с бизнес-приложениями и коллаборация самих приложений, самой системы с людьми. То есть, совместная работа людей и системы.

Примеры такого развития — система 1С:Аналитика, 1С:Шина, технологии

искусственного интеллекта, технология 1С:Предприятие.Элемент.

Подробнее про 1С:Предприятие.Элемент

Технология 1С:Предприятие.Элемент — это направление развития, которое расширяет использование платформы 1С:Предприятия в сторону парадигмы консьюмерски-ориентированных программ.

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

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

Очень важно, что новые технологии, такие как, искусственный интеллект, 1С:Предприятие.Элемент и другие, должны работать не отдельно, а в едином комплексе, например, в ERP-системе, в других наших приложениях, тогда они работают как единая экосистема, и за счет синергии разных технологий для пользователей появляется новое качество.