Новое в версии 10.0
Оптимизация размера «1С:Предприятие.Элемента Скрипта»
Размер установщика и место на диске, занимаемое средой разработки «1С:Предприятие.Элемент Скрипт» после установки, уменьшены более чем в два раза.
Среда разработки
Разработка с ИИ-ассистентом
В среду разработки встроена поддержка «1С:Напарника» — интеллектуального помощника, который помогает писать и анализировать код, генерировать решение задач по текстовому описанию, исправлять ошибки и создавать документацию.
Для подключения «1С:Напарника» вам необходимо получить ключ доступа и ввести его в настройках среды разработки (инструкция).
Открытие скриптов в среде разработки
-
Реализован выбор среды разработки в качестве приложения для открытия скрипта при двойном клике по файлу. Также среда разработки доступна в контекстном меню Открыть с помощью при открытии рабочей области, директории или файла скрипта.
-
Добавлена возможность открытия скриптов и директорий в среде разработки из командной строки (подробнее).
Документирующие комментарии
Добавлена возможность создавать документирующие комментарии, которые предназначены для документирования собственного кода разработчика. Документирующие комментарии отображаются в контекстной подсказке в среде разработки.

Отладка
Группа Контрольное значение представления Отладка переименована в Наблюдаемые выражения.

При нажатии на знак плюса откроется диалоговое окно для ввода наблюдаемого выражения:

Добавленное выражение можно изменить или удалить.
В главное меню среды разработки (раздел Запустить) и контекстное меню редактора кода добавлены новые пункты для работы с наблюдаемыми выражениями:

-
Добавить в наблюдаемые выражения (Alt+Shift+F10) — позволяет добавить выделенное выражение в наблюдаемые,
-
Вычислить выражение (Alt+Shift+F9) — открывает диалоговое окно для вычисления значения выделенного выражения во время отладки.

Прикладная функциональность
Побитовые операции
Добавлены новые типы ПобитовыеОперации и МассивБитов, которые реализуют работу с побитовыми операциями.
JSON
Выполнены следующие изменения:
-
Добавлены новые методы
ЗаписатьСодержимоеВПоток()иЗаписатьСодержимоеBase64ВПоток(), которые позволяют осуществлять потоковую запись содержимого строкового JSON-узла вПотокЗаписи. -
Добавлен обобщенный метод
ЧтениеJson.ПрочитатьСодержимое<ТипОбъекта>(), который позволяет читать JSON-объект в указанный тип с настройкамиНастройкиЧтенияОбъектовJson. -
Добавлены перегрузки методов
ЧтениеJson.ПрочитатьСодержимое()иСериализацияJson.ПрочитатьОбъект(), которые облегчают работу с уже имеющимися методами чтения. -
Методы
ПрочитатьСодержимоеКакМассив()иПрочитатьСодержимоеКакСоответствие()помечены как устаревшие.
Файлы
Добавлены методы для проверки и исправление недопустимых символов в имени файла:
СодержитНедопустимыеСимволы()— проверяет, содержит ли указанная строка символы, недопустимые в имени файла.ЗаменитьНедопустимыеСимволы()— возвращает строку, в которой недопустимые символы заменены на указанную подстроку (по умолчанию удаляются).
Криптография
Поддержка работы с PFX-файлами формата КриптоПро
Добавлена поддержка записи и чтения PFX-файлов формата КриптоПро. Для работы требуется криптопровайдер КриптоПро Java CSP. Чтобы обеспечить возможность указать криптопровайдер при создании объекта ХранилищеPkcs12, в его конструкторы добавлен параметр Криптопровайдер.
метод ВычислитьПодписьГост(Данные: Байты, КриптоПроPfx: Байты, ПарольPfx: СекретПриложения)
знч Криптопровайдер = Криптография.ПолучитьКриптоПроJcsp()
// Загрузка хранилища ключей из PFX-файла, полученного из КриптоПро CSP
знч Хранилище = новый ХранилищеPkcs12(КриптоПроPfx, ПарольPfx, Криптопровайдер)
// КриптоПро не поддерживает пароли для отдельных ключей в PFX, только для всего файла
знч Ключ = Хранилище.НайтиЗакрытыйКлюч("Тест", "")
знч Сертификат = Хранилище.НайтиСертификат("Тест")
// Вычисление электронной подписи
знч Вычислитель = новый ВычислительПодписи(Криптопровайдер, Сертификат, Ключ)
Вычислитель.УстановитьСлужбуШтамповВремени("http://qs.cryptopro.ru/tsp/tsp.srf")
знч Подпись = Вычислитель.Подписать(Данные)
// Проверка электронной подписи
знч Верификатор = новый ВерификаторПодписи(Криптопровайдер, Подпись)
если не Верификатор.Проверить(Данные)
выбросить новый ИсключениеНедопустимыйАргумент("Подпись не соответствует данным")
;
;
Коллекции
В ряде методов коллекций ослаблена типизация параметров. Следующие методы вместо строгого типа элемента (ключа/значения) теперь принимают Объект?:
ЧитаемаяКоллекция.Содержит(),ЧитаемаяКоллекция.СодержитВсе(),ЧитаемыйМассив.СодержитВсе(),ЧитаемыйМассив.Найти(),ЧитаемыйМассив.НайтиСКонца(),ЧитаемоеСоответствие.Содержит(),ЧитаемоеСоответствие.СодержитКлюч(),ЧитаемоеСоответствие.СодержитЗначение(),ЧитаемоеСоответствие.Получить(),ЧитаемоеСоответствие.ПолучитьИлиНеопределено(),ЧитаемоеСоответствие.ПолучитьИлиУмолчание()и его перегрузка.
Сохранена проверка совместимости типов на уровне компилятора: если пересечение типа аргумента и исходного типа параметра всегда пусто, будет выдана ошибка компиляции.
Типы «Последовательность» и «Обходимое»
Для типов Обходимое и Последовательность добавлены перегрузки методов для работы с элементами, входящими в их состав:
Преобразовать()иПреобразоватьЛинейно()— позволяют использовать индекс элемента в передаваемой в параметр метода функции,Объединить()— принимает функцию-преобразователь для формирования результирующего значения из исходных элементов,ДляКаждого()— выполняет заданное действие для каждого элемента и его индекса,Фильтровать()— фильтрует элементы вместе с их индексом.
Добавлен новый метод ПропуститьНеопределено(), который исключает Неопределено из элементов. Также изменяет тип элементов, исключая Неопределено из его состава.
Язык «1С:Элемент»
Аннотации
Для аннотации @ИменованныеПараметры добавлен новый параметр КромеПервого: Булево, который указывает, что первый параметр можно использовать в позиционной форме.
Методы, в которых теперь можно использовать первый параметр позиционно:
Методы
Изменен алгоритм определения конфликтующих перегрузок методов и выбора перегрузки в момент вызова (подробнее).
Нарушения обратной совместимости
Удаления
-
Для типов
ОбходимоеиПоследовательностьудалена следующая перегрузка методаСвернуть():Свернуть(НачальноеЗначение: ТипЭлемента,Операция: (ТипЭлемента, ТипЭлемента)->ТипЭлемента): ТипЭлементаОна заменена на перегрузки
Обходимое.Свернуть()иПоследовательность.Свернуть()с параметром типаТипРезультата:Свернуть<ТипРезультата>(НачальноеЗначение: ТипРезультата,Операция: (ТипРезультата, ТипЭлемента)->ТипРезультата): ТипРезультата -
Удалена устаревшая перегрузка
СериализацияJson.ПрочитатьОбъект()с параметромТип: Коллекция<Тип>.
Изменения поведения
Тип «ЧтениеJson»
Изменено поведение обобщенного метода ПрочитатьСодержимое() в режиме совместимости 10.0 и выше. После завершения работы метода позиция чтения остается на последнем токене текущего объекта JSON, а не переходит на следующий, как раньше. Для сохранения старого поведения после этого метода необходимо вызвать метод Следующий().

