Фирма «1С» опубликовала тестовую версию технологической платформы 1С:Предприятие 8.3.25. В состав релиза включено сразу несколько значимых и ожидаемых профессиональным сообществом нововведений.
В 1С:Предприятие 8.3.25 теперь можно сделать «паузу». Пока в тестовом режиме
Тестовая версия технологической платформы 8.3.25 опубликована в сервисе 1С:Обновление программ для всех партнеров и подписчиков ИТС.
Одна из наиболее ожидаемых новых фич в 8.3.25 – это метод глобального контекста ВызватьПаузу (CallSleep), останавливающий выполнение потока сеанса на заданное время.
Важная особенность метода «ВызватьПаузу» в том, что он недоступен в клиент-серверном вызове – при вызове с клиента серверного метода, содержащего ВызватьПаузу(), будет сгенерировано исключение «Нельзя вызвать метод ВызватьПаузу в клиент-серверном вызове».
«Мы сделали это осознанно: метод ВызватьПаузу блокирует выполнение кода и, будучи вызван из клиентского кода, заблокирует пользовательский интерфейс. Мы же хотим, чтобы наш пользовательский интерфейс был максимально «отзывчивым». Для реализации функциональности паузы в клиентском коде есть другие способы – например, можно воспользоваться механизмом фоновых заданий», – объяснили свое решение разработчики платформы.
По этой причине вызов паузы через механизм фоновых заданий нужно производить напрямую, а не через использование подсистемы длительных операций БСП, поскольку фоновые задания БСП при запуске приложения с параметром /РежимОтладки заменяются на явные серверные вызовы – это приведет к ошибке выполнения.
Предполагается, что метод ВызватьПаузу существенно упростит реализацию ряда сценариев, в частности, сценариев интеграции с внешними системами из серверного кода.
Не «паузой» единой: дополнительные возможности для работы с временными таблицами в запросах
В новой 8.3.25 в языке запросов реализовано несколько новых возможностей для временных таблиц:
- Возможность добавлять данные в ранее созданную временную таблицу через предложение ДОБАВИТЬ. Ранее для добавления записей в существующую временную таблицу требовалось склеить ее с данными из другой таблицы, поместить результат в третью таблицу, а оригинальную удалить. Если при этом добавляется всего несколько строк, а в изначальной таблице сотни тысяч записей, это могло отнимать много времени.
- Возможность создавать во временной таблице несколько индексов через предложение ИНДЕКСИРОВАТЬ ПО НАБОРАМ. Оптимизирует выполнение запроса, если в нескольких последующих запросах производится отбор или соединением по разным полям;.
- Возможность создавать уникальные индексы во временных таблицах через опцию УНИКАЛЬНО для предложений ИНДЕКСИРОВАТЬ ПО и ИНДЕКСИРОВАТЬ ПО НАБОРАМ. Позволяет гарантировать, что в наборе полей не будет повторяющихся комбинаций.
Генерация речи из текста
В новой технологической платформе 8.3.25 станет доступной возможность генерации речи из текста. Ранее, в 8.3.23, было реализовано распознавание звука и преобразование его в текст. Теперь доступно обратное преобразование.
Предполагается, что эта функциональность может быть достаточно востребована. В свое время в официальном технологическом блоге приводились такие возможные сценарии применения: «Например для работы монтажника с наушником и микрофоном или складского рабочего. Клиент магазина сможет взаимодействовать с говорящим кассовым оборудованием. Система сможет голосом зачитывать отправителя и тему пришедшего письма и, если пользователь скажет «Прочесть», зачитать текст письма целиком».
В платформе 8.3.25 реализована так называемая потоковая генерация – воспроизведение речи начинается с минимальной задержкой, без ожидания, пока текст синтезируется до конца.
Синтез речи производится через облачный сервис – для его работы не нужно будет устанавливать дополнительное ПО ни на клиентских машинах, ни на сервере.
Генерация речи будет доступна в тонком, толстом и веб-клиенте. Пока при вызове методов синтеза речи сервис выдает ошибку – ждем официального анонса от вендора.
Оптимизации и ускорение работы в 1С:Предприятие 8.3.25
В обновленной 8.3.25 реализовано несколько изменений, которые позволят ускорить работу приложений:
- оптимизировано использование оперативной памяти полнотекстовым поиском, в частности, за счет оптимизации полнотекстового индекса.
- оптимизации для Конфигуратора: глобальный поиск по конфигурации: ускорение в 2-3 раза, поиск ссылок на объект конфигурации: ускорение в 5-7 раз, глобальной замены по конфигурации: ускорение в 7-8 раз
- оптимизация подключения первого клиента к инфобазе в клиент-серверном варианте за счет оптимизации процесса загрузки метаданных конфигурации;
- поддержан новый алгоритм обновления копий баз данных для PostgreSQL; алгоритм использует встроенный в СУБД PostgreSQL механизм логического декодирования для записи изменений в данных; новая функциональность будет работать с PostgreSQL версии 10 и выше.
Регистры сведений: новые режимы записи
В некоторых сценариях стало возможно существенно ускорить работу с независимыми регистрами сведений. Так, для набора записей независимого регистра сведений в платформе реализованы дополнительные режимы записи:
- Слияние – в этом случае в информационной базе происходит обновление записей, совпадающих по ключевым полям с записываемым набором записей, а остальные записи набора просто добавляются в регистр.
- Удаление – в этом случае происходит удаление из информационной базы записей, совпадающих по ключевым полям с записями, присутствующими в наборе записей.
Для использования новых режимов в методе «РегистрСведенийНаборЗаписей.Записать(<Замещение>)» в качестве параметра «Замещение» наряду со значением типа Булево теперь можно использовать системное перечисление «РежимЗамещения», описывающее возможные варианты записи набора записей регистра сведений:
- «РежимЗамещения.Добавление» эквивалентно текущему значению параметра «Замещение», равному «Ложь»;
- «РежимЗамещения.Замещение» эквивалентно текущему значению параметра «Замещение», равному «Истина»;
- значения параметров «РежимЗамещения.Слияние» и «РежимЗамещения.Удаление» допустимы только для независимого регистра сведений; при попытке использовать эти значения для регистра сведений, подчиненного регистратору, будет выброшено исключение;
- при использовании в качестве значения параметра «РежимЗамещения.Слияние» все записи из набора записей записываются в основную таблицу регистра сведений; если в регистре уже есть записи с совпадающими значениями ключевых полей (период, измерения, разделители), такие записи обновляются, остальные записи набора просто добавляются в регистр;
- при использовании в качестве значения параметра «РежимЗамещения.Удаление» выполняется удаление из регистра записей, совпадающих по значениям ключевых полей с записями, присутствующими в наборе записей.
Кроме того, обработчики событий «ПередЗаписью()» и «ПриЗаписи()», а также обработчики соответствующих подписок получили значение параметра «Замещение» в том виде, в каком он был передан методу «Записать()» набора записей регистра сведений.
Реструктуризация независимых регистров сведений и подчиненных справочников: усечение типов
Для измерений независимого регистра сведений и стандартного реквизита справочников «Владелец» реализована возможность указывать, какие действия при реструктуризации информационной базы будут предприняты в том случае, когда сокращается набор типов, описывающих тип соответствующего объекта.
В связи с этим для измерения независимого регистра сведений и стандартного реквизита справочника «Владелец» реализовано свойство «Режим сокращения типа», которое определит поведение при реструктуризации. Аналогичным образом у объектов метаданных ОписаниеСтандартногоРеквизита и Измерение реализовано свойство РежимСокращенияТипа. Предоставляется возможность:
- Запретить изменение состава типов – РежимСокращенияТипа.Запрещать.
- Преобразовать значения к новому набору типов – РежимСокращенияТипа.ПреобразовыватьЗначения.
- Удалить записи, которые соответствуют удаленным типам – РежимСокращенияТипа.УдалятьДанные.
Ранее для измерения регистра сведений всегда выполнялась попытка преобразования значения, а для стандартного реквизита справочника Владелец всегда блокировалось сокращение состава типов.
На что еще обратить внимание в 1С:Предприятие 8.3.25
- единый интерфейс для добавления кнопок в сообщения Системы взаимодействия, поддерживаемый в ботах и интеграциях с WhatsApp, Telegram, VK, WebChat. Внутри тонкого клиента можно добавлять к кнопкам картинки, реакции, выполнять по кнопкам алгоритмы на сервере или на клиенте. Для интеграции с мессенджерами по кнопкам можно отправлять текстовые сообщения в ответ, или вызывать inline-методы.
Источник: wonderland.v8.1c.ru
- в Системе взаимодействия реализована поддержка видеозвонков в Safari версии 13 и новее на macOS, а также оптимизирована нагрузка на процессоры и сеть в видеозвонках для тонких клиентов;
- новые возможности расширений: появилась возможность создавать свои бизнес-процессы и задачи, добавлять свои реквизиты в заимствованные критерии отбора, добавлять подчиненные подсистемы для заимствованных из основной конфигурации;
Источник: wonderland.v8.1c.ru
- новые возможности для работы с технологическим журналом, в том числе возможность записи событий в формате JSON,
- поддержка непосредственных операций с журналом регистрации (без участия информационной базы) через утилиту управления автономным сервером ibcmd – новый режим eventlog. Допускается выгрузка журнала регистрации в форматах XML и JSON, а также выгрузка модели событий журнала регистрации в виде xsd-схемы.
- реализовано предоставление показателей производительности через HTTP в формате OpenMetrics;
- настройки кластера серверов: возможность экспорта в файл и импорта из файла настроек кластера серверов 1С и возможность при создании нового сервера указать опцию «Установить запрещающее требование назначение функциональности»;
Источник: wonderland.v8.1c.ru
- новые методы для автоматизированного тестирования: метод СкопироватьСтроку (CopyRow), который вводит в таблицу новую строку копированием текущей, метод ПолучитьРодителя (GetParent) для ряда объектов, метод ЗаголовокОтображается (TitleIsShown), возвращающий признак видимости заголовка, набор методов «расширения HTML Документа» и метод глобального контекста ТекущийСеансТестируется (CurrentSessionIsTested) – у метода нет параметров, возвращаемое значение – булево.
Полное описание возможностей тестового релиза на сайте «1С» в сервисе 1С:Обновление программ