1С:Исполнитель
1C:Исполнитель – это инструмент для автоматизации и администрирования информационных систем, созданных на платформе «1С:Предприятие». Его можно использовать для автоматизация развертывания, Continuous Integration, облегченного взаимодействия с кластером серверов «1С:Предприятия» или с системой взаимодействия, а также и для других задач (подробнее).
1C:Исполнитель содержит новый кроссплатформенный язык сценариев. Интерпретатор языка работает во всех операционных системах, поддерживаемых «1С:Предприятием»: Linux, macOS и Windows (подробнее).
Система типов языка Исполнителя максимально подобна системе типов встроенного языка «1С:Предприятия». Это позволяет вам использовать знания и опыт, накопленные при разработке прикладных решений (подробнее).
В то же время язык Исполнителя более современный, немногословный и его синтаксис имеет существенное количество отличий от встроенного языка (подробнее).
Скрипты Исполнителя представляют собой текстовые файлы с расширением sbsl. Запуск скриптов выполняется из командной строки.
Для написания и отладки скриптов вместе с 1C:Исполнителем выпускаются два инструмента:
- Среда разработки Executor IDE (на базе Eclipse) (подробнее);
- Плагин для среды разработки Visual Studio Code (подробнее).
Что такое «1С:Исполнитель»
«1С:Исполнитель» – это инструмент для автоматизации и администрирования информационных систем, созданных на платформе «1С:Предприятие».
«1С:Исполнитель» может применяться:
- для автоматизации развёртывания информационных систем;
- для поддержки Continuous Integration;
- для работы с файлами и каталогами;
- для управления информационными базами системы «1С:Предприятие» (создание, удаление, резервное копирование, публикация на веб-серверах и др.);
- для запуска, завершения и настройки программ, виртуальных машин и контейнеров;
- и для выполнения других задач.
Состав системы «1С:Исполнитель»
Система «1С:Исполнитель» включает:
- кроссплатформенный язык сценариев, основанный на встроенном языке системы «1С:Предприятие», но имеющий ряд существенных отличий;
- интерпретатор этого языка, который работает во всех поддерживаемых операционных системах ( Linux , macOS и Windows );
- и консольную оболочку для запуска сценариев (скриптов), передачи аргументов и показа результатов.
Преимущества по сравнению с традиционными командными интерпретаторами
Практически все распространенные операционные системы обладают таким понятием как «командный интерпретатор» или «интерпретатор командной строки». Это программа, которая обеспечивает управление компьютером посредством интерактивных команд, вводимых с клавиатуры. Как правило, командный интерпретатор обладает каким-либо скриптовым языком программирования, позволяющим запускать сценарии. Как правило, сценарий — это текстовый файл или набор текстовых файлов, содержащие команды командного интерпретатора, инструкции по управлению выполнением сценария и др.
Большинство задач, которые могут решаться с помощью «1С:Исполнителя» , можно выполнять также с помощью команд, вводимых с клавиатуры, или сценариев (скриптов), выполняемых командным интерпретатором. Однако использование «1С:Исполнитель» имеет следующие преимущества:
- язык сценариев системы «1С:Исполнитель» является кроссплатформенным, он может применяться для всех поддерживаемых операционных системах (Linux, macOS и Windows);
- язык сценариев системы «1С:Исполнитель» схож со встроенным языком системы «1С:Предприятие», что облегчает его изучение и использование прользователями и разработчиками системы «1С:Предприятие»;
- язык сценариев системы «1С:Исполнитель» содержит средства для работы с ресурсами системы «1С:Предприятие»: информационными базами, кластерами серверов «1С:Предприятия».
Варианты системы «1С:Исполнитель»
Можно использовать следующие варианты «1С:Исполнителя» :
- «1С:Исполнитель» -X — вариант, поставляемый как исполняемый файл для конкретной операционной системы. В настоящее время имеются варианты «1С:Исполнитель» -X для Linux и Windows . Буква X в названии подсказывает, что это исполняемый (e Xecutable) вариант «1С:Исполнителя» ;
- «1С:Исполнитель» -U — кроссплатформенный Java-вариант «1С:Исполнителя» . Буква U в названии подсказывает, что это универсальный ( Universal) вариант «1С:Исполнителя» .
Запуск «1С:Исполнителя» -X выполняется намного быстрее, чем аналогичной кроссплатформенной версии «1С:Исполнитель» -U. Кроме того, для «1С:Исполнителя» -X не требуется Java.
Средства разработки
Вместе с «1С:Исполнителем» выпускается плагин для разработки и отладки в среде Visual Studio Code.
1C:Исполнитель
Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Практически все распространенные операционные системы обладают таким понятием как «командный интерпретатор» или «интерпретатор командной строки». Это часть ОС, которая обеспечивает управление компьютером посредством интерактивных команд, вводимых с клавиатуры. Как правило, командный интерпретатор обладает каким-либо скриптовым языком программирования.
В Windows это интерпретатор командной строки cmd.exe и язык командных файлов (.bat-файлов). В Linux и macOS это командный интерпретатор bash и его язык сценариев.
Появится похожий инструмент и в системе программ 1С:Предприятие. Это 1C:Исполнитель.
- Кроссплатформенный язык сценариев; интерпретатор языка работает во всех поддерживаемых операционных системах: Linux, macOS и Windows.
- Этот язык сценариев базируется на встроенном языке разработки 1С:Предприятие (но имеет ряд отличий от него).
- Этот язык сценариев обладает библиотекой времени исполнения, очень схожей с таковой в системе программ «1С:Предприятие», поддерживая, в том числе, и очень специфические объекты (например, доступ к кластеру серверов 1С:Предприятия).
1C:Исполнитель – это инструмент для автоматизации и администрирования информационных систем, созданных на платформе 1С:Предприятие. 1C:Исполнитель может применяться для автоматизации развёртывания информационных систем, поддержки практики Continuous Integration и других задач.
Вместе с 1C:Исполнителем выпускается среда разработки и отладки 1C:Executor IDE на базе 1С:Enterprise Development Tools. Также доступен плагин для разработки и отладки в среде Visual Studio Code.
В настоящий момент 1C:Исполнитель используется нами:
- В облачном сервисе https://1cfresh.com/ — для задач администрирования и публикации инфобаз на веб-серверах
- В сервисе 1С:Готовое Рабочее Место (ГРМ) — для управления инфраструктурой (создание и удаление виртуальных машин и контейнеров и их настройка), для управления информационными базами 1С (создание, удаление, резервное копирование, публикация на веб-серверах)
Для работы 1С:Исполнителя требуется Java Runtime Envinronment (JRE) или Java Development Kit (JDK) версии 1.8 или более новой.
Для работы среды разработки 1С:Исполнителя требуется Liberica JDK (необходим 64-разрядный дистрибутив из последней таблицы с заголовком «Полная версия Liberica включает LibericaFX и Minimal VM, где это применимо»).
Язык разработки
Как сказано выше, язык сценариев базируется на языке разработки «1С:Предприятие», но имеет от него ряд существенных отличий. Мы постарались сделать язык современным, лаконичным и простым в освоении.
Несколько характеристик языка:
- Язык является статически типизированным.
- В языке присутствует иерархия типов.
- Нет разделения на функции и процедуры – используется единое ключевое слово метод . Если метод возвращает значение, на это указывает тип возвращаемого значения в сигнатуре метода.
- Поддерживается повторное определение (перегрузка) методов. Перегруженные методы могут отличаться количеством и/или типом параметров и типом возвращаемого значения. Перегруженные методы не могут различаться только типом возвращаемого значения.
- Поддерживаются пользовательские структуры, перечисления и исключения.
- Нет точки с запятой «;» в конце операторов. В программе каждая инструкция располагается на отдельной строке. Символ «;» является универсальным символом, завершающим группировку инструкций: оператор или метод. Можно сказать, что символ «;» является заменой ключевых слов КонецЕсли , КонецЦикла , КонецФункции , КонецПроцедуры .
Объявления исключений, структур и перечислений также заканчиваются символом «;».
- Поддерживаются многострочные комментарии /* */ .
- Поддерживается интерполяция строк. Интерполяция строк – это возможность сослаться из строки через символ % на переменную или выражение. Другими словами — это более понятный и удобный синтаксис для конкатенации строк, совмещенный с возможностями форматирования значений.
- В многострочных литералах не надо писать «|» в начале каждой новой строки.
- Язык поддерживает русский и английский синтаксис.

Скриншот Visual Studio Code со скриптом 1С:Исполнителя (демонстрирует описанные выше 4 фичи языка — многострочные комментарии, интерполяцию строк, многострочные литералы и английский синтаксис) и выводом результата работы скрипта в терминальную консоль:
Типизация
метод СократитьДо(Строка: Строка, Длина: Число): Строка
если Строка.Длина() > Длина
возврат Строка.ПодстрокаСНачала(Длина — 3) + «. »
;
метод СократитьДо(Строка: любой, Длина: любой): любой
если Строка.Длина() > Длина
возврат Строка.ПодстрокаСНачала(Длина — 3) + «. »
;
пер А: Строка = «абв»
пер Б: Число //’Б’ будет неявно инициализировано в 0
пер В = «» //тип переменной ‘В’ будет выведен как Строка
пер Г = [«раз», «два», «три»] //тип переменной ‘Г’ будет выведен как Массив
| пер А: Строка|Число? |
На этапе компиляции можно присваивание переменной типа значения типа ? – это будет значить |Неопределено. Т.е. запись выше эквивалентна такой:
| пер А: Строка|Число|Неопределено |
Единственное место, где можно явно не объявлять переменную – это оператор цикла для :
для Повтор = 1 по Количество
Консоль.Записать(«Привет Мир!»)
;
Иерархия типов
Тип — это множество допустимых значений и набор операций, которые можно выполнять над данными, принадлежащими этому типу. При описании типов будет использоваться понятие контракт. Контрактом называется набор свойств и методов, присущих тому или иному типу, а также поведение этих свойств и методов. Другими словами контракт — это те обязательства, которые берет на себя система, когда программист оперирует значением некоторого типа. Таким образом, можно сказать, что тип — это множество допустимых значений и контракт.
Типы образуют иерархию. Это означает, что в отношении типов можно рассмотреть отношение предок-потомок. При этом потомок какого-либо типа наследует контракт своего предка, но каким-либо образом расширяет или допустимые значения или контракт или оба этих параметра. Также можно сказать, что предок какого-либо типа будет называться базовым типом. Соответственно потомок типа будет называться производным типом. У одного типа может быть несколько базовых типов. Если тип А выступает базовым для типа Б, то в переменную типа А можно присвоить значение типа Б.
В языке существует специальный тип Тип , который предназначен для идентификации типов значений. Этот тип необходим для определения и сравнения типов, а также для получения информации об иерархии типов.
В основании всей иерархии типов лежит тип Объект. Этот тип является базовым для всех типов, кроме типа Неопределено . У каждого из этих типов существует метод ПолучитьТип() , который возвращает значение типа Тип. У любого объекта языка можно вызвать метод ПолучитьТип() . Это — пример наследования контракта.
Базовые типы
Перечислим некоторые базовые типы языка.
- Число
- Булево
- Строка
- Ууид — уникальный идентификатор.
- Неопределено . Значение данного типа применяется, когда необходимо использовать пустое значение, не принадлежащее ни к одному другому типу. Например, такое значение изначально имеют переменные, объявленные с типом любой.
- Закрываемое . Закрываемое является базовым типом для типов, использующих системные ресурсы. При создании объекта, являющегося потомком типа Закрываемое, выполняется получение системного ресурса. В тот момент, когда ресурс становится ненужным, следует вызвать метод Закрыть(), который является контрактом типа Закрываемое. Во время вызова метода Закрыть() гарантируется, что ресурс будет возвращен операционной системе.
- Байты . С помощью типа Байты можно хранить набор произвольных значений, заданных 16-ричными цифрами.
| пер НаборБайт = Байты(4d 5a) |
Типы для работы с датой и временем
- Время — тип предназначен для работы исключительно со временем, без учета даты.
- Дата — тип предназначен для работы исключительно с датой, без учета времени.
- ДатаВремя — даёт возможность использовать одновременно дату и время.
- Момент – тип для описания абсолютного момента времени. Это дата и время, указанные для временной зоны UTC. Использование этого типа позволяет располагать на одной шкале времени события, которые происходят в различных временных зонах, т.к. дата и время в конкретной временной зоне всегда имеет прямое отображение в UTC, путем корректировки на время смещения конкретной временной зоны.
- Длительность — описывает временную продолжительность.
Коллекции
В языке существуют следующие типы для работы с коллекциями:
- Массив — список элементов, без контроля уникальности. Коллекция поддерживает доступ по индексу.
- Множество – это коллекция, содержащая только уникальные элементы. Не поддерживается доступ по индексу.
- Соответствие — словарь, список пар «ключ-значение». В соответствии поддерживается уникальность по ключу. Поддерживается доступ по индексу. Соответствие позволяет хранить элементы произвольных типов.
Перечисление
перечисление ОперационныеСистемы
Windows,
macOS,
Linux
;
Структура
Структура — это тип, имеющий фиксированный набор полей и конструкторов. Каждое поле имеет тип, указанный при разработке структуры. Структура может содержать только данные и не может содержать описания методов. После описания структуры, ее можно использовать в программах наряду с другими типами данных.
структура ОписаниеФайла
пер ИмяФайла: Строка = «» // имя файла
знч Исполняемый: Булево = Ложь // тип файла
пер ПолныйПуть: Строка = «» // полный путь
пер РазмерФайла: Число = 0 // размер файла
;
Стандартная библиотека
Кроме базовых объектов, которые рассматривались ранее, система 1С:Исполнитель включает стандартную библиотеку. Стандартная библиотека — это набор объектов, который является составной частью системы 1С:Исполнитель и позволяет выполнять различные действия, в том числе с внешним, по отношению к системе 1С:Исполнитель окружением.
Стандартная библиотека включает в себя большое количество различных объектов. Сюда входят объекты для работы с:
- Процессами операционной системы
- Системным окружением (переменные среды и т.д.)
- Файловой системой
- Протоколами HTTP, SMTP
- JSON, XML, ZIP
- Системой взаимодействия
- Администрированием кластера 1C:Предприятия
Пример использования
Код ниже подключается а Системе взаимодействия и выводит в консоль непрочитанные сообщения первых 10 непрочитанных обсуждений.
метод РаботаССВ()
// Адрес сервера Системы взаимодействия для создания приложения
пер АдресСервера = «wss://address.ecs:9094?transport=websocket&version=4»
// Путь к файлу с хранилищем ключей, содержащему сертификат сервера СВ
пер ФайлХранилищаJKS = «C:\\keystore.jks»
// Строка с паролем к хранилищу
пер ПарольХранилища = «keystorePass»
// Строка с паролем к сертификату
пер ПарольКлюча = «certPass»
// Таймаут операции
пер Таймаут = 15с //15 секунд
// Уникальный идентификатор пользователя приложения
пер ПользовательПриложения = новый Ууид(«84eb3ebb-95ae-4dea-a025-adfa8961703c»)
// Строка с именем пользователя приложения
пер ИмяПользователя = «Иван»
// Строки с полным именем пользователя приложения
пер ПолноеИмяПользователя = «Иванов Иван»
// Код, который присылает сервер СВ для регистрации нового приложения
пер КодАктивации = «123456»
// ИмяПриложения подключаемой информационной базы
пер ИмяПриложения = «myApp»
// 1. Подключение
СистемаВзаимодействия.Подключиться(АдресСервера, ФайлХранилищаJKS,
ПарольХранилища, ПарольКлюча, Таймаут)
// 2.1. Подготовить ключи
пер Ключи = новый КлючиПриложения()
// 2.2. Создание приложения
пер ПараметрыПриложенияСВ = СистемаВзаимодействия.СоздатьПриложение(Ключи,
ПользовательПриложения, ИмяПользователя,
ПолноеИмяПользователя, КодАктивации,
ПочтовыйАдрес, ИмяПриложения)
// Ответ от сервера системы взаимодействия
пер ИДПриложенияСВ: Ууид = ПараметрыПриложенияСВ.ИдентификаторПриложения
пер ОткрытыйКлючПриложенияСВ: Строка = ПараметрыПриложенияСВ.ОткрытыйКлюч
// Сохранить параметры приложения для последующего использования
Консоль.Записать(Ключи.ОткрытыйКлюч.ВСтроку())
Консоль.Записать(Ключи.ЗакрытыйКлюч.ВСтроку())
Консоль.Записать(ИдентификаторПриложенияСВ.ВСтроку())
Консоль.Записать(ОткрытыйКлючПриложенияСВ.ВСтроку())
// 3. Аутентификация
пер ИдПользователяСВ = СистемаВзаимодействия.Войти(Ключи, ПользовательПриложения,
ИмяПользователя, ПолноеИмяПользователя, ПараметрыПриложенияСВ)
// 4. Работа с системой взаимодействия
//Получаем первые 10 непрочитанных обсуждений и выводим в консоль
попытка
// получаем непрочитанные обсуждения
пер МассивИДНепрочитанныхОбсуждений =
СистемаВзаимодействия.ПолучитьНепрочитанныеОбсуждения(, 10)
// получаем непрочитанные сообщения каждого непрочитанного обсуждения
//(выдаются в хронологическом порядке)
для ИДНепрочитанногоОбсуждения из МассивИДНепрочитанныхОбсуждений
Консоль.Записать(«Обсуждение № » + ИДНепрочитанногоОбсуждения.Формат)
пер МассивНовыхСообщений =
СистемаВзаимодействия.ПолучитьНепрочитанныеСообщения(
ИДНепрочитанногоОбсуждения)
для Сообщение из МассивНовыхСообщений
Консоль.Записать(«Сообщение # » + Сообщение.Идентификатор +
» : » + Сообщение.Текст)
// устанавливаем прочитанное сообщение как последнее прочитанное
СистемаВзаимодействия.УстановитьПоследнееПрочитанноеСообщение(
ИДНепрочитанногоОбсуждения, Сообщение.Идентификатор)
;
;
поймать Искл : ИсключениеСистемыВзаимодействия
Консоль.ЗаписатьОшибку(«Ошибка системы взаимодействия: » + Искл)
;
// 5. Отключение
СистемаВзаимодействия.Отключиться()
;
Нынешний вариант языка – предварительный. В нем в ходе приближения к релизу могут быть сделаны изменения, нарушающие обратную совместимость. И обязательно будет добавляться новая функциональность.
Что такое 1с исполнитель


—>

1C:Исполнитель — командный интерпретатор в «1С:Предприятии»
В блоге фирмы «1С» «Заметки из Зазеркалья» разместили анонс нового инструмента в системе программ «1С:Предприятие» – 1C:Исполнитель.
Во всех популярных операционных системах (ОС) есть «командный интерпретатор» или «интерпретатор командной строки». Это такой «помощник», который помогает управлять компьютером. В Windows это интерпретатор командной строки cmd.exe и язык командных файлов (.bat-файлов). В Linux и macOS это командный интерпретатор bash и его язык сценариев.
Теперь появится похожий инструмент и в системе программ 1С:Предприятие — 1C:Исполнитель.
1C:Исполнитель — это:
· Кроссплатформенный язык сценариев; интерпретатор языка работает во всех поддерживаемых операционных системах: Linux, macOS и Windows.
· Этот язык сценариев базируется на встроенном языке разработки 1С:Предприятие (но имеет ряд отличий от него).
· Этот язык сценариев обладает библиотекой времени исполнения, очень схожей с таковой в системе программ «1С:Предприятие», поддерживая, в том числе, и очень специфические объекты (например, доступ к кластеру серверов 1С:Предприятия).
1C:Исполнитель – это инструмент для автоматизации и администрирования информационных систем, созданных на платформе 1С:Предприятие. 1C:Исполнитель может применяться для автоматизации развертывания информационных систем, поддержки практики Continuous Integration и других задач.
Вместе с 1C:Исполнителем выпускается среда разработки и отладки 1C:Executor IDE на базе 1С:Enterprise Development Tools. Также доступен плагин для разработки и отладки в среде Visual Studio Code.
В настоящий момент 1C:Исполнитель используется:
· В облачном сервисе 1cfresh.com — для задач администрирования и публикации инфобаз на веб-серверах
· В сервисе 1С:Готовое Рабочее Место (ГРМ) — для управления инфраструктурой (создание и удаление виртуальных машин и контейнеров и их настройка), для управления информационными базами 1С (создание, удаление, резервное копирование, публикация на веб-серверах)
Для работы 1С:Исполнителя требуется Java Runtime Envinronment (JRE) или Java Development Kit (JDK) версии 1.8 или более новой.
Для работы среды разработки 1С:Исполнителя требуется Liberica JDK (необходим 64-разрядный дистрибутив из последней таблицы с заголовком «Полная версия Liberica включает LibericaFX и Minimal VM, где это применимо»).
