Новое в версии 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.ИгнорироватьПробельныеУзлы