В сообществе разработчиков 1С все чаще возникают вопросы о применимости новой технологии 1С:Предприятие.Элемент (ранее известной как Project Magellan или 1С:Исполнитель в контексте языка) для создания полноценных тиражных решений («нетленок»). Проанализируем текущее состояние инструмента, его архитектурные особенности, ограничения и возможности, основываясь на опыте специалистов, уже столкнувшихся с этой платформой.
Прежде чем приступать к разработке, необходимо четко понимать позиционирование 1С:Элемент. Это не замена классической платформы 1С:Предприятие 8. Технология позиционируется вендором как инструмент для создания «спутников» основной системы:
Если ваша задача — создать кабинет сотрудника или легкий портал, технология может подойти. Если же речь идет о сложной учетной системе со сложной бизнес-логикой проведения документов, стоит рассмотреть ограничения.
Одним из ключевых факторов при выборе платформы является набор доступных объектов метаданных. В 1С:Элемент (по состоянию на 6-ю версию) этот набор существенно отличается от привычного нам в 1С 8.3.
Рассмотрим, что доступно для использования:
Теперь обратим внимание на то, чего нет, и что критично для построения полноценной ERP или учетной системы:
Кроме того, существуют ограничения по работе с оборудованием. На текущий момент не планируется (или не реализована) поддержка внешних компонент (Native API) и драйверов подключаемого оборудования в том виде, как это работает в БПО. Например, работа с ТСД (терминалами сбора данных) возможна только через камеру устройства, а не через аппаратный сканер штрихкодов.
Платформа работает поверх JVM (Java Virtual Machine). Это накладывает отпечаток как на производительность, так и на возможности интеграции. Язык программирования — строго типизированный, с синтаксисом, напоминающим смесь 1С и Kotlin/Swift.
В отличие от 1С 8, здесь нет деления на Процедура и Функция. Используется единое ключевое слово Метод (или аналог в зависимости от версии синтаксиса, который еще стабилизируется).
Рассмотрим пример выполнения простого HTTP-запроса на языке 1С:Элемент. Обратите внимание на типизацию переменных:
// Пример выполнения GET запроса без авторизации
знч Клиент = КлиентHttp.СБазовымUrl("https://api.example.com");
знч ЗапросHttp = Клиент.ЗапросGet("/api/data");
исп Ответ = ЗапросHttp.Выполнить();
// Далее следует обработка ответа
Здесь используются ключевые слова:
знч (значение) — для объявления неизменяемых переменных (констант).исп (используя) — аналог try-with-resources, для автоматического освобождения ресурсов (например, закрытия соединения).Разделение на клиент и сервер реализовано через аннотации, похожие на директивы компиляции в 1С 8, но с синтаксисом через «собаку» (как в Java/Python):
@НаКлиенте@НаСервере@ДоступноСКлиентаВажно учитывать, что технология находится в стадии активного развития. Специалисты отмечают следующие риски:
Для проектов на 1С:Элемент предусмотрены разные варианты развертывания:
Подводя итог, можно сказать, что 1С:Элемент — это перспективный инструмент, который уже сейчас можно использовать для решения узкоспециализированных задач:
Однако для создания «нетленки» — сложной, самостоятельной учетной системы — инструмент пока подходит слабо из-за отсутствия регистров накопления, механизмов проведения документов и общей нестабильности платформы в период активного развития. Также стоит учитывать высокий порог входа для классических 1С-программистов из-за смены парадигмы разработки и синтаксиса языка.