1с исполнитель что это
Официальный технологический блог «Заметки из Зазеркалья» опубликовал материал о новом инструменте для разработчиков и администраторов, который представляет собой новый язык разработки сценариев, а также его интерпретатор, совместимый со всеми платформами, поддерживаемыми 1С – с Linux, macOS и Windows.
«Язык сценариев <в 1С:Исполнителе> базируется на языке разработки 1С:Предприятие, но имеет от него ряд существенных отличий. Мы постарались сделать язык современным, лаконичным и простым в освоении», – говорится в описании нового продукта.
На данный момент разработчики обозначили такие особенности и возможности языка в «1С:Исполнителе»:
- Типизация: язык статически типизированный, у каждой переменной, параметра и метода, возвращающего значения, должны быть заданы типы; проверка типов будет происходит в момент компиляции.
- Иерархия типов: под типом понимается множество допустимых значений и набор операций, которые можно выполнять над данными, принадлежащими этому типу. При описании типов будет использоваться понятие «контракт» - набор свойств и методов, присущих тому или иному типу, а также поведение этих свойств и методов.
- Базовые типы, например, Число, Булево, Строка, Ууид - уникальный идентификатор и другие.
- Типы для работы с датой и временем
- Коллекции: массив (список элементов, без контроля уникальности), множество (коллекция, содержащая только уникальные элементы), соответствие (словарь, список пар «ключ-значение»)
- Перечисление: специальный тип данных, множество значений которого представляет собой явно заданный набор идентификаторов.
- Структура: тип, имеющий фиксированный набор полей и конструкторов. Каждое поле имеет тип, указанный при разработке структуры. Структура может содержать только данные и не может содержать описания методов.
- Стандартная библиотека: набор объектов, который является составной частью системы «1С:Исполнитель» и позволяет выполнять различные действия, в том числе с внешним окружением.
Для работы «1С:Исполнителя» потребуется Java Runtime Envinronment (JRE) или Java Development Kit (JDK) версии 1.8 или более новой, а также Liberica JDK (64-разрядный дистрибутив из последней таблицы с заголовком «Полная версия Liberica включает LibericaFX и Minimal VM, где это применимо»).
Будет ли мир разработчиков 1С прежним после релиза «1С:Исполнителя»
В заметке на страницах блога «Зазеркалье» говорится, что уже сейчас «1С:Исполнитель» работает в облачных сервисах 1С:Фреш и 1С:ГРМ, и применяется для администрирования информационных баз и виртуальных машин.
Предполагаем, что по мере распространения решений для корпоративного сегмента, когда «заметать под коврик» вопросы администрирования и управления разработкой практически невозможно, востребованность такого рода продуктов будет только расти.
Соответственно, появление «1С:Исполнителя» сейчас выглядит вполне разумно, а в случае публикации рабочего релиза еще и оптимистично.
В общем, у прогрессивных разработчиков 1С, которые уже какое-то время следят за развитием 1С:EDT, возникла еще одна точка, на которой можно будет фокусировать свое внимание – это развитие «1С:Исполнителя».
Интервью с Андреем Овсянкиным
Мы поговорили об анонсе «1С:Исполнителя» с создателем скриптового интерпретатора OneScript Андреем Овсянкиным. Обсудили, какие перспективы у нового движка и как разработка скажется на отрасли в целом.
Пока нет возможности оценить анонсированный инструмент, и доступна только его концепция, как вы считаете, насколько эта концепция удачно сформулирована?
Вот как раз концепция сообществу и непонятна. Да, это язык для девопс. Но почему он настолько отличается от 1С? Если придуман новый язык, то в чем мотивация учить его, а не Python, например? Т.е. концепция сформулирована пока очень размыто. И об ее «удачности» сложно что-либо сказать.
Я так понимаю, что фирма 1С написала свой внутренний инструмент для поддержки ГРМ и Фреш, и возможно, они не планировали создать универсальный продукт, они просто выразили свои представления об инструменте работы, вложили в него то, что им показалось удобным.
Возможно все, что угодно. Мы пока не знаем о предпосылках создания языка. Ни для кого не секрет, что язык 1С застоялся и требовал развития. 1С сделала смелый шаг и развитие пока выглядит очень радикальным. До появления вопроса: «выглядит то-ли как Typescript, то-ли как Python, но будто бы менее удобно чем то и другое». Надо попробовать. Пока синтаксис вызывает жаркие споры. Мне кажется можно было бы дать новый толчок исходному языку 1С и без столь радикальных изменений. Что явилось толчком к созданию? Не знаю. Во-первых, конечно, желание развить язык. Во-вторых – 1С «разглядела» востребованность devops и разумеется сделала для этого свой инструмент. По традиции, информации «с той стороны» минимум. Хотелось бы, чтобы фирма была более открытой к сообществу.
Но судя по анонсу, развитие действительно шло сразу в нескольких направлениях – есть и среда отладки, и возможность создания классов, и поддержка EDT. Т.е. апробация шла несколькими командами.
Это очень круто. Подошли комплексно, даже VS Code поддержали. Видно, что старались
Может быть, эти изменения специально оформлены настолько шокирующе, чтобы произвести впечатление? Возможно, изначально спорные моменты будут скорректированы в дальнейшем?
То есть 1С-никам придется радикально переучиваться на новый синтаксис?
Что значит «придется»? Пока никто не заставляет.
Как вы относитесь к 1С:Исполнителю? Будете ли вы им пользоваться?
Меня многие об этом спрашивают, полагаю из-за OneScript. Я отношусь крайне положительно, как ни странно. Выход инструмента специально для devops, означает, что последние 5-6 лет нашей работы не пропали зря. 1С заметила полезность инструментов. Известно, что наработки сообщества активно не только изучаются, но и применяются внутри самой 1С. Но, конечно, досадно, что на официальном уровне 1С делает вид, что не существует ни OneScript, ни bsl ls, ни Снегопата. Пользоваться буду, если он будет выпущен под лицензией, которая позволит мне это делать. И, если он будет пригоден для моих задач, конечно. То, что скриптинг теперь официально актуален, как явление - это очень круто, я рад.
Просто интересно ваше мнение про целевую аудиторию анонсированной разработки? Сейчас она обозначена размыто. Как вы думаете, для каких задач она может быть полезна?
Аудитория как раз обозначена четко: админы парка серверов 1С. Вопрос в том, что админы крупных парков как правило уже владеют мейнстримными скриптовыми языками. Почему они захотят изучить новый инструмент? Что их должно мотивировать? Успех 1скрипт как раз во многом и объясняется тем, что учить ничего было не нужно. И простые 1Сники смогли зайти в сферу автоматизации админства без слома собственных навыков.
Официальный технологический блог «Заметки из Зазеркалья» опубликовал материал о новом инструменте для разработчиков и администраторов, который представляет собой новый язык разработки сценариев, а также его интерпретатор, совместимый со всеми платформами, поддерживаемыми 1С – с Linux, macOS и Windows.
«Язык сценариев <в 1С:Исполнителе> базируется на языке разработки 1С:Предприятие, но имеет от него ряд существенных отличий. Мы постарались сделать язык современным, лаконичным и простым в освоении», – говорится в описании нового продукта.
На данный момент разработчики обозначили такие особенности и возможности языка в «1С:Исполнителе»:
- Типизация: язык статически типизированный, у каждой переменной, параметра и метода, возвращающего значения, должны быть заданы типы; проверка типов будет происходит в момент компиляции.
- Иерархия типов: под типом понимается множество допустимых значений и набор операций, которые можно выполнять над данными, принадлежащими этому типу. При описании типов будет использоваться понятие «контракт» - набор свойств и методов, присущих тому или иному типу, а также поведение этих свойств и методов.
- Базовые типы, например, Число, Булево, Строка, Ууид - уникальный идентификатор и другие.
- Типы для работы с датой и временем
- Коллекции: массив (список элементов, без контроля уникальности), множество (коллекция, содержащая только уникальные элементы), соответствие (словарь, список пар «ключ-значение»)
- Перечисление: специальный тип данных, множество значений которого представляет собой явно заданный набор идентификаторов.
- Структура: тип, имеющий фиксированный набор полей и конструкторов. Каждое поле имеет тип, указанный при разработке структуры. Структура может содержать только данные и не может содержать описания методов.
- Стандартная библиотека: набор объектов, который является составной частью системы «1С:Исполнитель» и позволяет выполнять различные действия, в том числе с внешним окружением.
Для работы «1С:Исполнителя» потребуется Java Runtime Envinronment (JRE) или Java Development Kit (JDK) версии 1.8 или более новой, а также Liberica JDK (64-разрядный дистрибутив из последней таблицы с заголовком «Полная версия Liberica включает LibericaFX и Minimal VM, где это применимо»).
Будет ли мир разработчиков 1С прежним после релиза «1С:Исполнителя»
В заметке на страницах блога «Зазеркалье» говорится, что уже сейчас «1С:Исполнитель» работает в облачных сервисах 1С:Фреш и 1С:ГРМ, и применяется для администрирования информационных баз и виртуальных машин.
Предполагаем, что по мере распространения решений для корпоративного сегмента, когда «заметать под коврик» вопросы администрирования и управления разработкой практически невозможно, востребованность такого рода продуктов будет только расти.
Соответственно, появление «1С:Исполнителя» сейчас выглядит вполне разумно, а в случае публикации рабочего релиза еще и оптимистично.
В общем, у прогрессивных разработчиков 1С, которые уже какое-то время следят за развитием 1С:EDT, возникла еще одна точка, на которой можно будет фокусировать свое внимание – это развитие «1С:Исполнителя».
Интервью с Андреем Овсянкиным
Мы поговорили об анонсе «1С:Исполнителя» с создателем скриптового интерпретатора OneScript Андреем Овсянкиным. Обсудили, какие перспективы у нового движка и как разработка скажется на отрасли в целом.
Пока нет возможности оценить анонсированный инструмент, и доступна только его концепция, как вы считаете, насколько эта концепция удачно сформулирована?
Вот как раз концепция сообществу и непонятна. Да, это язык для девопс. Но почему он настолько отличается от 1С? Если придуман новый язык, то в чем мотивация учить его, а не Python, например? Т.е. концепция сформулирована пока очень размыто. И об ее «удачности» сложно что-либо сказать.
Я так понимаю, что фирма 1С написала свой внутренний инструмент для поддержки ГРМ и Фреш, и возможно, они не планировали создать универсальный продукт, они просто выразили свои представления об инструменте работы, вложили в него то, что им показалось удобным.
Возможно все, что угодно. Мы пока не знаем о предпосылках создания языка. Ни для кого не секрет, что язык 1С застоялся и требовал развития. 1С сделала смелый шаг и развитие пока выглядит очень радикальным. До появления вопроса: «выглядит то-ли как Typescript, то-ли как Python, но будто бы менее удобно чем то и другое». Надо попробовать. Пока синтаксис вызывает жаркие споры. Мне кажется можно было бы дать новый толчок исходному языку 1С и без столь радикальных изменений. Что явилось толчком к созданию? Не знаю. Во-первых, конечно, желание развить язык. Во-вторых – 1С «разглядела» востребованность devops и разумеется сделала для этого свой инструмент. По традиции, информации «с той стороны» минимум. Хотелось бы, чтобы фирма была более открытой к сообществу.
Но судя по анонсу, развитие действительно шло сразу в нескольких направлениях – есть и среда отладки, и возможность создания классов, и поддержка EDT. Т.е. апробация шла несколькими командами.
Это очень круто. Подошли комплексно, даже VS Code поддержали. Видно, что старались
Может быть, эти изменения специально оформлены настолько шокирующе, чтобы произвести впечатление? Возможно, изначально спорные моменты будут скорректированы в дальнейшем?
То есть 1С-никам придется радикально переучиваться на новый синтаксис?
Что значит «придется»? Пока никто не заставляет.
Как вы относитесь к 1С:Исполнителю? Будете ли вы им пользоваться?
Меня многие об этом спрашивают, полагаю из-за OneScript. Я отношусь крайне положительно, как ни странно. Выход инструмента специально для devops, означает, что последние 5-6 лет нашей работы не пропали зря. 1С заметила полезность инструментов. Известно, что наработки сообщества активно не только изучаются, но и применяются внутри самой 1С. Но, конечно, досадно, что на официальном уровне 1С делает вид, что не существует ни OneScript, ни bsl ls, ни Снегопата. Пользоваться буду, если он будет выпущен под лицензией, которая позволит мне это делать. И, если он будет пригоден для моих задач, конечно. То, что скриптинг теперь официально актуален, как явление - это очень круто, я рад.
Просто интересно ваше мнение про целевую аудиторию анонсированной разработки? Сейчас она обозначена размыто. Как вы думаете, для каких задач она может быть полезна?
Аудитория как раз обозначена четко: админы парка серверов 1С. Вопрос в том, что админы крупных парков как правило уже владеют мейнстримными скриптовыми языками. Почему они захотят изучить новый инструмент? Что их должно мотивировать? Успех 1скрипт как раз во многом и объясняется тем, что учить ничего было не нужно. И простые 1Сники смогли зайти в сферу автоматизации админства без слома собственных навыков.
✔ Нет разделения на функции и процедуры – используется единое ключевое слово "метод". Если метод возвращает значение, на это указывает тип возвращаемого значения в сигнатуре метода
✔ Поддерживается повторное определение (перегрузка) методов. Перегруженные методы могут отличаться количеством и/или типом параметров и типом возвращаемого значения. Перегруженные методы не могут различаться только типом возвращаемого значения
✔ В многострочных литералах не надо писать «|» в начале каждой новой строки
✔ Нет точки с запятой «;» в конце операторов. В программе каждая инструкция располагается на отдельной строке. Символ ";" является универсальным символом, завершающим группировку инструкций: оператор или метод. ";" является заменой ключевых слов КонецЕсли, КонецЦикла, КонецФункции, КонецПроцедуры.
✔ Объявления исключений, структур и перечислений заканчиваются символом ";" ✔ Поддерживается интерполяция строк (возможность сослаться из строки через символ % на переменную или выражение)
Параллельно c 1C:Исполнителем выпускается среда разработки и отладки 1C:Executor IDE (на базе 1С:Enterprise Development Tools ). Для работы требуется JRE или JDK v.1.8 (или выше), для среды разработки требуется Liberica JDK (64x) . Существует два варианта поставки (развиваются параллельно): 1С:Исполнитель U (Universal) – Требует предустановленной Java. 1С:Исполнитель X (eXecutable) – Выпущен в апреле 2021. Работает без Java и для конкретной ОС (Windows, Linux, macOS), используется, когда критично время запуска скриптов и нежелательна установка Java . Реализован на виртуальной машине GraalVM . Содержание установленного каталога с программой:
- executor.cmd - утилита для запуска скриптов в Windows
- executor.sh - утилита для запуска скриптов в Linux или macOS
-s (source-path) - имя файла со скриптом(*.sbsl). Является обязательным, только в том случае, если имя запускаемого сценария не является единственным параметром при запуске executor. -m (method) - имя метода, с вызова которого стартует исполнение скрипта. Если параметр не заполнен, то исполнение скрипта начнется с вызова метода Скрипт (Script). -v ( version) - для получения версии исполнителя скриптов. -d (debug-port) - номер порта (диапазон от 0 до 65535, исключая первый и последний номер), который будет использоваться сервером отладки. -- - признак прекращения разбора аргументов командной строки. Если параметр указан, то будет отключен разбор оставшейся части командной строки и все оставшиеся значения передаются как параметры сценария (разделитель: пробел). Данный параметр так же используется при необходимости передать в качестве значения другого параметра командной строки системы последовательность символов, начинающихся с -. параметры сценария - в случае, когда после определения именованных параметров в командной строке запуска сценария остались значения, то они будут переданы в запускаемый сценарий (в качестве параметров). Пример простой командной строки: “%ПапкаИсполнителя%\executor_j11.cmd” –s “%ПапкаСкрипта%\ИмяСкрипта.sbsl” –m ИмяМетода При работе скрипта исполнитель выводит информацию в стандартный поток вывода: stdout . При наличии ошибок в работе, используется стандартный поток ошибок: stderr . Примечание: кодировка выводимой информации зависит от ОС (windows - cp866; linux и macOS - UTF-8) Результат выполнения скрипта при завершении выводится в виде кода завершения:
- 0 - скрипт и исполнитель успешно завершил работу.
- 255 - завершение работы с ошибкой.
- Скрипт начинается с метода Скрипт(Script). Это основной метод для запуска скрипта, который стартует, если выполнить файл sbsl без параметров.
- Отсутствуют процедуры и функций, используется только ключевое слово метод (method).
- Вместо КонецЕсли, КонецЦикла используется точка с запятой «;» и её теперь не нужно ставить в конце каждой строки, достаточно установить при завершении всего блока.
- Язык является регистрозависимым. Ключевые слова всегда должны быть с маленькой буквы, все остальные - как и в 1С - в ГорбатомРегистре.
- Для вывода результата используется Консоль.Записать.
метод Скрипт ()
// Объявление переменных
пер AAA : любой // Неопределено
пер BBB : Строка // Пустая строка
пер CCC : Число // 0
пер DDD : Строка ? // Неопределено
пер EEE : Строка|Число = 15 // 15
// Недопустимые значения при объявлении переменных
пер XXX : Строка|Число // Не указано значение инициализации
пер YYY : Строка = [ 5 , 7 ] // Не совпадение с указанным типом
;
метод Скрипт ()
ВывестиБазовыеТипы ( Тип ( Число ))
ВывестиБазовыеТипы ( Тип ( Массив ))
ВывестиБазовыеТипы ( Тип ( ПотокЗаписи ))
ВывестиБазовыеТипы ( Тип ( ИсключениеНедопустимыйАргумент ))
;
метод ВывестиБазовыеТипы ( Параметр : Тип )
Консоль . Записать ( "Базовые типы для " + Параметр )
пер Результат : Множество = ПеречислитьПредков ( Параметр )
для Элемент из Результат
Консоль . ЗаписатьСтроковоеПредставление ( Элемент )
;
;
метод ПеречислитьПредков ( Значение : Тип , Предки : Множество = <> ): Множество
для ТекущийБазТип из Значение . БазовыеТипы
Предки . Добавить ( ТекущийБазТип )
ПеречислитьПредков ( ТекущийБазТип , Предки )
;
возврат Предки
метод Скрипт ()
ЭтоКоллекция ( 1 )
ЭтоКоллекция (новый Массив ())
ЭтоКоллекция (новый ФиксированныйМассив ([]))
ЭтоКоллекция (новый Соответствие ())
ЭтоКоллекция (новый Множество ())
;
метод ЭтоКоллекция ( Параметр : Объект )
Консоль . ЗаписатьСтроковоеПредставление ( "Тип параметра Это фиксированная коллекция" )
иначе
Консоль . Записать ( "Это не фиксированная коллекция" )
;
;
метод Скрипт ()
пер X : Строка|Число = ""
пер Y : Строка|Число|Ууид = 0
пер Z : любой
// Разрешенные операции
если X это Строка
;
Z = Y как Число
X = Y как Строка|Число
СкриптСПриведением ( "строка" )
СкриптСПриведением ( 7 )
// Запрещенные операции
X = Y
Z = Y как ДатаВремя
метод СкриптСПриведением ( Параметр : Объект )
если Параметр это Строка // "строка"
МетодСтрока ( Параметр как Строка )
иначе если Параметр это Число // 7
МетодЧисло ( Параметр как Число )
иначе если Параметр это Булево
МетодБулево ( Параметр как Булево )
иначе
// действие для других типов
;
;
метод Скрипт ()
пер Z = СкриптВычисление ()
;
метод СкриптВычисление (): Число
пер Y : Число
Y = 5
возврат Y
;
пер МаркаАвто : Строка
МаркаАвто = Консоль . СчитатьСтроку ( "Введите марку автомобиля: " )
// Область видимости переменной "МаркаАвто" распространяется до конца скрипта
если МаркаАвто == "BMW"
пер ДизельныеДвигатели : Массив
// Видимые переменные: МаркаАвто, ДизельныеДвигатели
иначе если МаркаАвто == "Audi"
пер БензиновыеДвигатели : Массив
// Видимые переменные: МаркаАвто, БензиновыеДвигатели
иначе
область
пер СписокМарокАвто : Массив
// Видимые переменные: МаркаАвто, СписокМарокАвто
для КонкретнаяМаркаАвто из СписокМарокАвто
// Видимые переменные: МаркаАвто, СписокМарокАвто, КонкретнаяМаркаАвто
;
// Видимые переменные: МаркаАвто, СписокМарокАвто
;
область
пер СписокКонтактов : Массив
// Видимые переменные: МаркаАвто, СписокМарокАвто
;
// Видимые пременные: МаркаАвто
;
; метод Скрипт ()
пер pNumb : Число
pNumb = 75 // целое 10-ое число
pNumb = 2.7182818284 // дробное 10-ое число
pNumb = 75 / 15 // выражение с использованием 10-х чисел
pNumb = 0x5A3 // 16-ое число
pNumb = - 0x5A3 // отрицательное 16-ое число
pNumb = 0b101 // 2-ое число
; Пример подключения к системе взаимодействия и показ в консоль первых 20 непрочитанных обсуждений:
// Адрес сервера для создания приложения (протокол+адрес сервера+порт сервера)
пер АдресСервераWSS = "wss://address.ecs:9094?transport=websocket&version=4"
// Путь к файлу с хранилищем ключей, содержащему сертификат сервера СВ
пер ФайлХранилищаJKS = "C:\\key.jks"
// Строка с паролем к хранилищу
пер ПарольХранилища = "keyPass"
// Строка с паролем к сертификату
пер ПарольКлюча = "certPass"
// Таймаут операции
пер ТаймаутОперации = 10с //10 секунд
// Строка с именем пользователя приложения
пер ИмяПользователя = "Артур"
// Строки с полным именем пользователя приложения
пер ПолноеИмяПользователя = "Коржан Артур"
// Код, который присылает сервер СВ для регистрации нового приложения
пер КодАктивации = "9876543210"
// Адрес эл. почты для регистрации приложения на сервере СВ
пер ПочтовыйАдрес = "[email protected]"
// ИмяПриложения подключаемой информационной базы
пер ИмяПриложения = "myApp"
// Подключение.
СистемаВзаимодействия . Подключиться ( АдресСервераWSS , ФайлХранилищаJKS , ПарольХранилища , ПарольКлюча , ТаймаутОперации )
// Подготовка ключа.
пер Ключи = новый КлючиПриложения ()
// Создание приложения.
пер ПарПриложенияСВ = СистемаВзаимодействия . СоздатьПриложение ( Ключи , ПользовательПриложения , ИмяПользователя , ПолноеИмяПользователя , КодАктивации , ПочтовыйАдрес , ИмяПриложения )
// Ответ сервера.
пер ИдентификаторПриложенияСВ : Ууид = ПарПриложенияСВ . ИдентификаторПриложения
пер ОткрытыйКлючПриложенияСВ : Строка = ПарПриложенияСВ . ОткрытыйКлюч
// Сохранение параметров приложения (для последующего использования)
Консоль . Записать ( Ключи . ОткрытыйКлюч . ВСтроку ())
Консоль . Записать ( Ключи . ЗакрытыйКлюч . ВСтроку ())
Консоль . Записать ( ИдентификаторПриложенияСВ . ВСтроку ())
Консоль . Записать ( ОткрытыйКлючПриложенияСВ . ВСтроку ())
// Аутентификация.
пер ИдПользователяСВ = СистемаВзаимодействия . Войти ( Ключи , ПользовательПриложения , ИмяПользователя , ПолноеИмяПользователя , ПарПриложенияСВ )
// Работа с системой взаимодействия.
// Получение первых 20-ти непрочитанных обсуждений и вывод в консоль
попытка
// Получение непрочитанных обсуждений
пер МассивИДНепрочитанныхОбсуждений = СистемаВзаимодействия . ПолучитьНепрочитанныеОбсуждения (, 20 )
Тебе, одинэсник! 1С с завидной регулярностью выпускает обновления для своих приложений, и вот, на мой взгляд, самые интересные из тех, которые вышли за первую половину этого года. Мы в WiseAdvice-IT постоянно отслеживаем обновления 1С, и делимся с читателями Хабра своими наблюдениями.
Тестовая версия платформы 1С: Предприятие 8.3.19
Начнем с конца: в июне вышла тестовая версия платформы 1С: Предприятие 8.3.19. Важнейшее изменение, которое может сподвигнуть на переход к последнему обновлению 1С-платформы, касается оптимизации СУБД, а именно запроса, который использует система при обращении к виртуальным таблицам остатков и оборотов регистра бухгалтерии.
Данное обращение многократно используется в каждой системе и затрагивает довольно большое количество объектов метаданных, используется в большинстве отчетов, а также для логики проведения документов. То есть была повышена производительность запросов.
- Помимо этого, ускорена работа функции выражения ограничения доступа к данным СтрСодержит(). Функция используется, в основном, в шаблонах ограничений в ролях, одним словом – RLS. Присутствует в каждой типовой конфигурации, поэтому эта оптимизация может существенно ускорить работу пользователей с ограниченными правами.
- Если у вас файловая база, в которой есть механизмы, получающие большое количество данных с упорядочиванием и индексацией, то в новом релизе данные запросы будут ускорены за счет оптимизации доработки оператора В.
- Бывают случаи, что в клиент-серверном варианте по разным причинам необходимо загружать .dt-файл. Для этого был разработан механизм загрузки с использованием нескольких фоновых заданий сразу, а не последовательно, как было ранее.
- Обработчики событий ПередПечатью, ПередЗаписью и ПослеЗаписи теперь реализованы для всех элементов формы, поддерживающих возможность сохранять и печатать.
- При настройке характеристик объектов конфигурации существует возможность определять, какие поля объектов содержат имена этих характеристик. В прошлых версиях при изменении представлений характеристик поля настроек стирались.
- Полезное изменение коснулось планов обменов: методы ЗарегистрироватьИзменения() и УдалитьРегистрациюИзменений() теперь могут соответственно регистрировать и удалять изменения для произвольного набора объектов данных. Они передаются в виде определенного параметра, значением которого является массив данных. Действие для всех объектов, находящихся в переданном массиве, будут выполнены в рамках одной транзакции с минимальным количеством используемых запросов. Теперь, например, гораздо проще регистрировать/удалять, например, связанные регистры для справочников или документов.
- Для отчетов появились методы для принудительной установки режима отображения результата исполнения отчета.
Анонс 8.3.20
Последняя версия 8.3.19, хотя пока и тестовая, стала важным шагом к появлению «двадцатки», в которой обещает быть развитие расширений: поддержка определяемых типов, планов видов характеристик и общих реквизитов.
Именно этого часто не хватало для нормальной работы с расширениями при доработке типовых конфигураций, так как приходилось часть доработок вести в расширении, а часть в самой конфигурации, что не добавляло удобства. Не придется изменять процедуры, где описывались типы объектов конфигурации, например, Справочники.ТипВсеСсылки().Типы(), в будущей версии такие методы также будут включать объекты, созданные в расширениях.
Также должна появиться возможность добавлять свои предопределенные элементы в собственные справочники расширений. Теперь будет проще встраивать их в свои расширения и в стандартные механизмы БСП, а соответственно – в текущие конфигурации 1С, использующие БСП.
1С: Исполнитель(X)
В первом полугодии 1С анонсировала развитие текущей версии «1C: Исполнителя» – «1C: Исполнитель(Х)», имеющую архитектуру, позволяющую «1C: Исполнителю(Х)» работать как «родное» приложение (native application) в операционных системах Windows и Linux (поддержка macOS планируется в дальнейшем), и не требующую предварительной установки JRE.
Напомню, «1C: Исполнитель» – оригинальный кроссплатформенный командный интерпретатор собственного строго типизированного и регистрозависимого сценарного языка, который вышел всего годом ранее – в июне 2020 года.
В поставку «1C: Исполнителя» входит собственная интегрированная среда разработки «1C:Executor IDE», имеющая в своей основе «1С:Enterprise Development Tools (EDT)». Для «1C:Executor IDE» требуется предварительная установка соответствующий среды выполнения – Java Runtime Envinronment (JRE), созданной специально для выполнения приложений, разработанных с применением языка Java.
В рамках стратегии развития продукта вендор анонсирует его «ускоренный» вариант, который планирует развивать параллельно с «универсальным»:
- «1С: Исполнитель(U)» – универсальный (U – Universal) вариант продукта, требующий установки Java;
- «1С: Исполнитель(X)» – редакция, поставляемая как X – eXecutable файл исполняемый целевой операционной системой, лишь немного уступающая по функциональности универсальному варианту.
Плата за скорость работы 1С: Исполнителя(Х) – отсутствие динамической загрузки подключаемых библиотек. Соответственно, эта особенность его реализации не позволит пользователям их устанавливать и использовать самостоятельно.
Еще в описании релиза при выходе «1C: Исполнителя» многие разработчики обратили внимание, что синтаксис его языка получил значительные отличия от встроенного языка платформы 1С. Возможно, одним из знаковых отличий явилась его строгая/статическая типизация, характерная для компилируемых языков более «низкого» уровня.
В компилируемых языках требования к определению типа переменной на этапе ее объявления необходимо, чтобы компилятор заранее знал, сколько ей нужно выделить оперативной памяти, тем самым увеличивая скорость выполнения уже скомпилированной программы.
После анонсирования «1С: Исполнителя(Х)», исходя из заявленного сценария его использования, видно, что вторая ступень в стратегии развития продукта также направлена в сторону повышения скорости выполнения операций и производительности. Тем не менее вопрос, для каких именно больших объемов вычислений готовят продукт, остается, на мой взгляд, открытым.
1С: КИП 2.1.8
1С активно продвигает пакет инструментов для тестирования и повышения производительности системы с позапрошлого года. В релизе 2.1.8 разработчики продукта основное внимание уделили «Сценарному тестированию» (3.0.24.1), у которого появилась функциональность, давно ожидаемая пользователями:
- Можно создавать последовательности «ручных операций» с соответствующим описанием действий каждого шага.
- Тестовые сценарии теперь могут автоматически обрабатывать появление диалоговых окон, выполняя заранее описанные шаги в активной Форме.
- Появились новые типы шагов:
– Выполнить пакетную команду 1С – позволяет выполнить пакеты действий командной строки 1С;
– Выполнить операцию с файлами – автоматизирует взаимодействие с файловой системой. - Появился новый интерфейс для сравнения тестовых сценариев, который позволяет визуально увидеть их подобие и различия.
Напомню, предыдущая версия приложения получила инструмент работы с ручными тестами, что дало возможность «руками» разрабатывать план тестирования и его структуру, сохранять и запускать тесты по мере надобности, но автоматически составлять отчеты по результатам.
Помимо этого, новое обновление «Агент КИП» получило возможности для удаленного администрирования, и теперь ему доступен удаленный сбор данных, в частности, об установленных версиях платформы и доступных базах.
1С: Тестировщик
Для тех, кому «Сценарное тестирование» слишком сложно и вообще не надо, выпустили новую конфигурацию «1С: Тестировщик». Он позволяет без знаний в области программирования быстро начать тестирование небольших систем 1С по простым сценариям, задавая простые же ситуации тестирования.
Приложение позволит описать сценарий теста функциональности, имитирующий ход работы пользователей, в том числе для работы с внешними сервисами, протоколировать работу, а также получать аналитику по ошибкам. Интересная возможность для совсем простого создания сценариев в ручном или автоматическом режиме, позволяет быстро настраивать их и запускать, а дорабатывать уже по ходу выполнения.
Конвертация данных 3.1
Здесь скажу кратко, версия 3.1 обладает рядом преимуществ, самым важным из которых стала возможность разработки правил как в формате EnterpriseData, так и в формате XML. Теперь можно автоматически:
- Загрузить описание конфигурации/метаданных (из хранилища 1С, из хранилища в формате EDT, каталога выгруженной конфигурации 1С в файлах XML);
- Выгрузить разработанные правила обмена;
- Разрабатывать правила обмена (на основе однотипных приложений, где сопоставляются внутренние метки).
Библиотека интеграции с 1С: Документооборот 1.1.18.3
Сразу напомню, что эта библиотека необходима тем, кто самостоятельно в свои конфигурации встраивает функционал работы с 1С: Документооборотом и кому требуются всегда актуальные возможности. Сейчас в версии 1C:ERP 2.5.6.17 до сих пор встроена версия библиотеки 1.1.15.1, а в версии 1C:ERP 2.5.7.78 даже предыдущая версия – 1.1.17.2. Но вот в новой версии 1С: ЗУП – 3.1.18, уже реализована возможность согласовывать заявку на подбор персонала через 1С: Документооборот, с которым теперь можно настроить бесшовную интеграцию по этому документу.
1С: Система проектирования прикладных решений 2.0.2
В новую СППР, в «Органайзер» добавили ни много ни мало – систему планирования и учета рабочего времени, а также «Мой календарь». Если у вас до сих пор нет системы планирования и учета рабочего времени, самое время начать использовать ее в СППР. Исправлено несколько ошибок, впрочем, их в этой конфигурации минимальное количество.
Помимо этого:
- Значительной доработке подверглись также «Разработка» и «Тестирование». Теперь возможно ведение различных веток разработки. Поддерживаются ветки, разрабатываемые как в хранилище конфигурации, так и в git-репозитории.
- Добавлено чтение и запись сценариев тестирования через API git-сервера. Теперь можно хранить сценарии тестирования в разрезе веток git.
- В связи с реализацией в Разработке веток, регистрация ошибок также доработана под данный функционал.
- Существенно доработан механизм работы с патчами.
- В задачах процессов каждой задаче добавили самостоятельные ресурсы, не зависящие от родительской задачи. В предыдущей версии было возможно только распределение ресурсов родительской задачи.
- Также теперь можно загружать данные о результате выполнения сборок на CI-сервере в СППР. Добавлены отчеты для представления загруженных данных.
Читайте также: