Что такое «1С:Предприятие.Элемент Скрипт» и как он связан с платформой 1С:Предприятие?

Программист 1С:Элемент IT и автоматизация бизнеса
← К списку

Недавнее объявление о переименовании «1С:Исполнителя» в «1С:Предприятие.Элемент Скрипт» и выпуск новой версии 9.0 вызвало немало вопросов в сообществе разработчиков 1С. Что это за продукт? Для чего он предназначен? Как он соотносится с привычной нам платформой «1С:Предприятие 8» и новой технологией «1С:Предприятие.Элемент»? Давайте вместе разберемся в этих вопросах, проанализируем доступную информацию и выясним ключевые особенности.

Что такое «1С:Предприятие.Элемент Скрипт»?

«1С:Предприятие.Элемент Скрипт» – это, по сути, эволюция хорошо известного нам продукта «1С:Исполнитель». В версии 9.0 произошло не только переименование, но и значительное расширение функционала.

Основное назначение: Мы можем рассматривать «1С:Предприятие.Элемент Скрипт» как среду выполнения для скриптов, написанных на языке «1С:Элемент». Его главная цель — автоматизация и администрирование информационных систем, построенных на платформе «1С:Предприятие». Представьте, что вам нужно автоматизировать рутинные задачи, связанные с развертыванием, непрерывной интеграцией (CI), или облегчить взаимодействие с кластером серверов «1С:Предприятия». Именно для таких сценариев и предназначен «1С:Предприятие.Элемент Скрипт».

Кросс-платформенность и язык: Этот продукт включает в себя кросс-платформенный язык сценариев «1С:Элемент». Его интерпретатор способен работать во всех операционных системах, которые поддерживает «1С:Предприятие»: Linux, macOS и Windows. Это открывает широкие возможности для использования в различных инфраструктурах.

Лицензирование: Важный аспект, который мы сразу отметим – «1С:Предприятие.Элемент Скрипт» распространяется со свободным лицензионным соглашением. Это означает, что мы можем свободно получать, изучать, использовать и распространять этот программный продукт, что делает его доступным для широкого круга пользователей и разработчиков.

Язык «1С:Элемент» – Основа новой технологии

Центральное место в «1С:Предприятие.Элемент Скрипт» занимает язык «1С:Элемент». Давайте рассмотрим его особенности подробнее.

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

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

Ключевые отличия языка «1С:Элемент» от встроенного языка «1С:Предприятия 8»

Для тех из нас, кто привык к встроенному языку «1С:Предприятия 8», язык «1С:Элемент» принесет ряд существенных изменений. Разберем их по шагам:

  1. Методы вместо процедур и функций: В «1С:Элементе» нет строгого разделения на функции и процедуры. Все блоки кода называются Методами, независимо от того, возвращают они значение или нет. Это упрощает синтаксис и унифицирует подход к объявлению кода.

    Посмотрите на пример:

    
    Метод МойМетод()
        Консоль.Записать("Привет из метода!");
    КонецМетода;
    
    Метод ВычислитьСумму(Число1: Число, Число2: Число): Число
        Возврат Число1 + Число2;
    КонецМетода;
    
  2. Регистрозависимость: В отличие от встроенного языка «1С:Предприятия», где регистр символов не имел значения (Переменная и переменная считались одним и тем же), в «1С:Элементе» синтаксис регистрозависимый. Это означает, что МояПеременная и мояпеременная будут восприниматься как две разные переменные. К этому нужно будет привыкнуть.

  3. Окончание инструкций: Еще одно упрощение – окончание инструкции в «1С:Элементе» не требует символа точки с запятой (;). Компилятор самостоятельно определяет границы инструкций, что делает код более лаконичным.

  4. Упрощенные составные инструкции: Многие составные инструкции лишились избыточных ключевых слов. Например, в инструкции Если больше не нужно слово Тогда, а в Для...по — слово Цикл.

    Сравним с привычным синтаксисом:

    
    // Встроенный язык 1С:Предприятия 8
    Если Условие Тогда
        // Код
    КонецЕсли;
    
    // Язык 1С:Элемент
    Если Условие
        // Код
    КонецЕсли;
    
  5. Расширенные возможности: Язык «1С:Элемент» предоставляет поддержку перегрузки методов, структур (которые могут выступать в роли классов, как обсуждалось на форуме), исключений, а также полноценных лямбда-выражений для функционального программирования. Мы также видим поддержку Ууид как отдельного типа данных.

    Пример создания Ууид:

    
    пер СлучайныйИдентификатор = новый Ууид();
    Консоль.Записать(СлучайныйИдентификатор);
    

    И пример использования Структуры:

    
    Структура МойОбъект
        Имя: Строка;
        Возраст: Число;
    КонецСтруктуры;
    
    Метод Скрипт()
        пер Пользователь = новый МойОбъект(Имя: "Алексей", Возраст: 30);
        Консоль.Записать("Имя: " + Пользователь.Имя + ", Возраст: " + Пользователь.Возраст);
    КонецМетода;
    
  6. Alt-ввод: Реализована удобная возможность вводить русские ключевые слова и идентификаторы, используя английскую раскладку клавиатуры с зажатой клавишей Alt. Например, Alt+E может ввести Если.

Среда разработки (IDE) «1С:Предприятие.Элемент Скрипт»

Для работы с «1С:Предприятие.Элемент Скрипт» нам доступна интегрированная среда разработки (IDE), которая позволяет создавать, запускать и отлаживать скрипты. Мы можем заметить, что она имеет сходство с популярными современными редакторами, такими как VS Code.

Функциональность IDE: Среда предоставляет встроенный редактор кода с такими полезными функциями, как подсветка синтаксиса, автодополнение, проверка и форматирование кода. Также реализовано отображение контекстной подсказки и синтаксической справки, что значительно упрощает процесс разработки. Мы можем использовать модульную разработку, что способствует повторному использованию кода, упрощению поддержки и тестирования.

Облако и локальная версия: IDE доступна как в локальной версии (версия для macOS находится в разработке), так и в облачной среде, которая работает прямо в браузере в режиме «песочницы». Это очень удобно для быстрого тестирования и обучения. Для настройки внешнего вида, например, изменения шрифта, мы можем использовать файл settings.json.

Взаимодействие с базами данных и «1С:Предприятием»

Один из часто задаваемых вопросов касается возможности взаимодействия «1С:Предприятие.Элемент Скрипт» с базами данных и платформой «1С:Предприятие 8».

Работа с внешними БД: «1С:Предприятие.Элемент Скрипт» действительно содержит средства для работы с внешними базами данных. Мы можем использовать пространство имен Стд::БазаДанных::Sql для выполнения SQL-запросов к различным СУБД. Это позволяет нам взаимодействовать с данными, хранящимися вне информационных баз 1С.

Рассмотрим пример использования Стд::БазаДанных::Sql (синтаксис может варьироваться в зависимости от версии и конкретной реализации):


импорт Стд::БазаДанных::Sql;

Метод Скрипт()
    пер СтрокаПодключения = "jdbc:postgresql://localhost:5432/mydb?user=myuser&password=mypassword";
    пер Соединение = неопределено;
    попытка
        Соединение = новый Sql.СоединениеSql(СтрокаПодключения);
        Соединение.Открыть();
        
        пер Запрос = новый Sql.ЗапросSqlСВыборкой(Соединение, "ВЫБРАТЬ Имя, Возраст ИЗ Пользователи ГДЕ Возраст > @ВозрастПараметр");
        Запрос.Параметры.Установить("ВозрастПараметр", 25);
        
        пер Результат = Запрос.Выполнить();
        пока Результат.Следующий()
            Консоль.Записать("Имя: " + Результат.Получить("Имя") + ", Возраст: " + Результат.Получить("Возраст"));
        конецПока;
        
    исключение ИсключениеSql
        Консоль.Записать("Ошибка SQL: " + ИсключениеSql.Описание());
    исключение Исключение
        Консоль.Записать("Общая ошибка: " + Исключение.Описание());
    конецПопытки;
    если Соединение <> неопределено
        Соединение.Закрыть();
    конецЕсли;
КонецМетода;

Взаимодействие с 1С:Предприятием 8: Важно понимать, что, хотя «1С:Предприятие.Элемент Скрипт» предназначен для администрирования информационных систем на платформе «1С:Предприятие», он не предоставляет прямого доступа к внутренним объектам «1С:Предприятия 8», таким как регистры накопления, регистры сведений или управляемые формы, в том же виде, как это делает встроенный язык. Он позволяет выполнять административные задачи, например, редактировать свойства информационных баз, удалять их или получать списки текущих сеансов и соединений через специальные механизмы взаимодействия, а не через прямой код, работающий с объектами конфигурации.

Типы данных и операции с коллекциями

Язык «1С:Элемент» поддерживает стандартные примитивные типы данных, такие как Строка, Число, Дата, Булево. Кроме того, нам доступны универсальные коллекции значений: Массив, Множество и Соответствие (аналог словарей).

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

Операции с коллекциями, такие как вычитание множеств, реализованы через методы самого типа Множество. Для получения разности двух множеств мы используем метод Разность(), а для симметрической разности – СимметрическаяРазность().

Посмотрим на пример:


Метод Скрипт()
    пер Множество1 = новый Множество({1, 2, 3, 4});
    пер Множество2 = новый Множество({3, 4, 5, 6});

    // Разность: элементы, которые есть в Множество1, но нет в Множество2
    пер РезультатРазности = Множество1.Разность(Множество2);
    Консоль.Записать("Разность (Множество1 - Множество2): " + РезультатРазности); // {1, 2}

    // Симметрическая разность: элементы, которые есть либо в Множество1, либо в Множество2, но не в обоих сразу
    пер РезультатСимметрическойРазности = Множество1.СимметрическаяРазность(Множество2);
    Консоль.Записать("Симметрическая разность: " + РезультатСимметрическойРазности); // {1, 2, 5, 6}

    // Объединение множеств
    пер РезультатОбъединения = Множество1.Объединение(Множество2);
    Консоль.Записать("Объединение: " + РезультатОбъединения); // {1, 2, 3, 4, 5, 6}

    // Пересечение множеств
    пер РезультатПересечения = Множество1.Пересечение(Множество2);
    Консоль.Записать("Пересечение: " + РезультатПересечения); // {3, 4}
КонецМетода;

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

Контракты (Интерфейсы) в «1С:Элемент»

В «1С:Элементе» для описания свойств и программного интерфейса различных элементов проекта используются так называемые контракты. Мы можем выделить два основных вида:

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

  2. КонтрактСервиса: Предназначен для описания программного интерфейса, который реализуется в типах-одиночках или общих модулях. Это позволяет четко определить взаимодействие между различными частями системы.

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

Системные требования

Прежде чем начать работу с «1С:Предприятие.Элемент Скрипт», нам необходимо убедиться, что наша система соответствует определенным требованиям.

Для запуска «1С:Предприятие.Элемент Скрипт» требуются операционные системы Windows 10/11 (или ряд дистрибутивов Linux). Кроме того, обязательным условием является наличие 64-разрядной Java Runtime Environment (JRE) версии 17. Если у вас Windows 7, как отмечалось в форуме, то необходимо убедиться, что установлена именно 64-разрядная версия Windows и соответствующая JRE 17. Установщик продукта не всегда проверяет эти условия до начала установки, поэтому нам нужно быть внимательными.

Для полноценной технологии «1С:Предприятие.Элемент» (не «Скрипт») для сервера также потребуется JRE 17, а также 8 Гб оперативной памяти и 1 Гб дискового пространства.

Позиционирование и будущее «1С:Элемент»

В завершение нашего анализа, давайте проясним стратегическое позиционирование «1С:Предприятие.Элемент» и «1С:Предприятие.Элемент Скрипт».

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

«1С:Предприятие.Элемент Скрипт» (как мы уже выяснили): Является бесплатным инструментом для скриптинга и администрирования, использующим язык «1С:Элемент».

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

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

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

Таким образом, мы выяснили, что «1С:Предприятие.Элемент Скрипт» – это мощный, бесплатный инструмент для автоматизации и администрирования, использующий новый, современный язык «1С:Элемент». А «1С:Предприятие.Элемент» – это более широкая платформа для создания современных веб и мобильных приложений, которая расширяет экосистему 1С, дополняя, но не заменяя привычную нам платформу «1С:Предприятие 8».

← К списку