Перейти к основному содержимому

Новое в версии 5.0

Модульная разработка​

«1С:Исполнитель» теперь поддерживает модульный подход к разработке. Вы можете создавать скрипты, содержащие переиспользуемый код, и подключать их к другим скриптам (подробнее).

Поддержка модульности также реализована в расширении 1C:Executor для Visual Studio Code. В частности, доступны такие механизмы, как автодополнение, переход к подключаемым скриптам, переход к определениям и использованиям, быстрые исправления и т. д.

Встроенный язык​

Аннотация @ПроверятьИспользованиеЗначения​

Добавлена аннотация @ПроверятьИспользованиеЗначения. Данной аннотацией помечаются методы, смысл которых заключается в возврате значений, например: Обходимое.Сортировать, Число.Округлить или Строка.ВВерхнийРегистр. Если метод помечен этой аннотацией и возвращаемое им значение не используется, то компилятор выдает ошибку.

Оператор динамического доступа к свойству объекта []​

Оператор [] больше не поддерживается по умолчанию у всех объектов. Например, оператор по-прежнему разрешен для типов Соответствие и Массив, но не поддерживается для пользовательских элементов типа Структура. Чтобы обеспечить динамический доступ к свойству объекта, который не поддерживает оператор [], используйте механизм отражения или приведите переменную к типу неизвестно перед использованием оператора [] (подробнее).

Изменен синтаксис оператора «умолчание»​

Синтаксис оператора умолчание изменен с умолчание на ??.

Было: знч Значение = Структура.Поле умолчание 0

Стало: знч Значение = Структура.Поле ?? 0

Именованные параметры в обобщенных типах​

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

Синтаксис: ИмяОбобщенногоТипа<[ИмяПараметра1 =] Тип1, ..., [ИмяПараметраN =] ТипN>

Пример: Соответствие<Число, ТипЗначения = Строка>

Ограничения:

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

«Тип» сделан обобщенным​

Тип данных Тип сделан обобщенным. Например: Тип<Объект?> (значение по умолчанию).

Новый тип «РазмерБайтов»​

Добавлен новый тип РазмерБайтов — размер в байтах. Допустимые значения: от 0 до 9007199254740991. Литерал имеет вид [<A>тб][<B>гб][<C>мб][<D>кб][<E>б], где <A>,  <B>, <C>, <D>, <E> — соответствующее количество терабайтов, гигабайтов, мегабайтов и т. д. Например: 1тб2гб3мб4кб5б. Любой элемент может быть опущен, если соответствующее значение равно нулю.

  • В следующих методах возвращаемое значение изменилось с Число на РазмерБайтов:

    • Байты.Размер(): РазмерБайтов;
    • ВложениеВзаимодействия.Размер(): РазмерБайтов;
    • ВременныйПотокЗаписи.Размер(): РазмерБайтов;
    • РезультатЧтенияДанных.Размер(): РазмерБайтов;
    • ЭлементZip.РазмерСжатого(): РазмерБайтов;
    • ЭлементZip.РазмерНесжатого(): РазмерБайтов.
  • В следующих типах изменился тип свойства Размер с Число на РазмерБайтов:

    • ВложениеВзаимодействия.Размер: РазмерБайтов;
    • Файл.Размер: РазмерБайтов?;
    • ФайлSftp.Размер: РазмерБайтов?.
  • В конструкторе типа ВременныйПотокЗаписи тип параметра РазмерБуфера изменился с Число на РазмерБайтов:

    ВременныйПотокЗаписи(РазмерБуфера: РазмерБайтов = 100кб)

  • В типе НастройкиПоискаФайлов для метода Размер() изменился тип параметров От и До с Число? на РазмерБайтов|Число|?:

    Размер(От: РазмерБайтов|Число|? = Неопределено,
    До: РазмерБайтов|Число|? = Неопределено
    ): НастройкиПоискаФайлов
  • В типе ЗапросHttp для метода УстановитьТело() изменился тип параметра Размер с Число на РазмерБайтов|Число:

    УстановитьТело(Поток: ПотокЧтения, Размер: РазмерБайтов|Число): ЗапросHttp
  • В методе ОткрытьПотокЗаписиТела типа HttpСервисОтвет удален параметр Размер:

    ОткрытьПотокЗаписиТела(): ПотокЗаписи

Потоковая обработка структур данных​

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

Добавлен новый тип Последовательность<ТипЭлемента>. Элементы этого типа неявно создаются при вызове цепочки методов.

Прикладная функциональность​

Убраны неявные преобразования JSON​

При сериализации/десериализации JSON изменился порядок разбора значений, а также выполнены другие изменения (подробнее).

Доработка объектов XML​

Для удобства работы с объектами XML добавлены новые методы:

  • ЧтениеXml.ПрочитатьСодержимоеКакСтроку() — читает содержимое узла и преобразует его к значению типа Строка.

  • ЗаписьДанных.ЗаписатьМеткуПорядкаБайтов() — записывает в Поток метку порядка байтов (BOM) для кодировки, указанной в параметре Кодировка, с порядком байтов ПорядокБайтов.

    ЗаписьДанных.ЗаписатьМеткуПорядкаБайтов(Поток: ПотокЗаписи,
    Кодировка: Кодировка|Строка,
    ПорядокБайтов: ПорядокБайтов): ПотокЗаписи

В типе ЗаписьXml в методы ЗаписатьНачалоЭлемента и ЗаписатьКонецЭлемента добавлен необязательный параметр ДобавлятьОтступы, который указывает, нужно ли добавлять отступ и перенос на новую строку при записи элемента:

ЗаписьXml.ЗаписатьНачалоЭлемента(Имя: Строка,
ПространствоИмен: Строка? = Неопределено,
ДобавлятьОтступы: Булево? = Неопределено): ЗаписьXml
ЗаписьXml.ЗаписатьКонецЭлемента(ДобавлятьОтступы: Булево? = Неопределено): ЗаписьXml

Криптография​

Функция HMAC​

Добавлена возможность вычислять код аутентификации сообщения с помощью хеш-функции ВычислительHmac.

Хранилища для ключей JKS​

Добавлен объект ХранилищеJks, который позволяет создавать хранилище сертификатов и ключей шифрования в формате JKS (файлы .jks, .keystore):

  • ХранилищеJks() — создает новый экземпляр пустого хранилища ключей;
  • ХранилищеJks(Данные: Байты | ПотокЧтения, Пароль: Строка = "") — загружает хранилище ключей из данных;
  • ХранилищеJks(Файл: Файл | Строка, Пароль: Строка = "") — загружает хранилище ключей из файла.

Созданное хранилище можно записать в массив байтов, поток или файл с помощью соответствующих методов:

  • ВБайты(Пароль: Строка = ""): Байты;
  • ЗаписатьВПоток(Поток: ПотокЗаписи, Пароль: Строка = "");
  • ЗаписатьВФайл(Файл: Файл | Строка, Пароль: Строка = "").

Изменения в объектной модели​

Переименования​

Архивация​

  • ЭлементZip.ЯвляетсяКаталогом() ⟶ ЭлементZip.ЭтоКаталог()

Ввод/Вывод — Файлы​

  • НастройкиКопирования ⟶ НастройкиКопированияФайлов
  • НастройкиПоиска ⟶ НастройкиПоискаФайлов
  • Файл:
    • ЯвляетсяКаталогом() ⟶ ЭтоКаталог()
    • ЯвляетсяСсылкой() ⟶ ЭтоСсылка()
    • ЯвляетсяФайлом() ⟶ ЭтоФайл()

Отражение​

  • Отражение.ОписаниеСвойства ⟶ Отражение.ОтражениеСвойства

Стандартная библиотека​

  • Перечисление.Порядок ⟶ Перечисление.Индекс
  • Порядок ⟶ НаправлениеСортировки
  • Строка.ЧислоВхождений ⟶ Строка.КоличествоВхождений

HTTP​

  • ПараметрыЗапроса ⟶ ПараметрыUrl

SSH​

  • ФайлSftp:
    • ЯвляетсяКаталогом() ⟶ ЭтоКаталог()
    • ЯвляетсяФайлом() ⟶ ЭтоФайл()

XML​

  • НастройкиЗаписиXml.ИспользоватьОтступы ⟶ НастройкиЗаписиXml.ДобавлятьОтступы
  • НастройкиЧтенияXml.ИгнорироватьПробельныеСимволы ⟶ НастройкиЧтенияXml.ИгнорироватьПробельныеУзлы