Выход новой версии технологической платформы 1С:Предприятие — это всегда событие, вызывающее множество вопросов у администраторов и разработчиков. Версия 8.3.25 не стала исключением, особенно учитывая, что она развивается параллельно с версией 8.3.24. В этом материале мы подробно разберем, зачем нужен переход на 8.3.25, какие критические проблемы она решает для пользователей Linux, что показали синтетические тесты производительности и какие новые инструменты оптимизации базы данных стали нам доступны.
Основываясь на опыте сообщества и технической документации, мы проанализируем реальные сценарии использования новой платформы, чтобы вы могли принять взвешенное решение об обновлении.
Одной из самых обсуждаемых тем при переходе на импортозамещенное ПО является корректная работа клиентских приложений 1С в среде Linux. Долгое время разработчики сталкивались с серьезной проблемой при попытке отображения сложного HTML-контента или внешних карт внутри форм 1С.
Давайте разберем суть проблемы. Во многих конфигурациях (например, логистических или управленческих) требуется отображение карт (Яндекс, Google, OpenStreetMap) для отслеживания грузов или построения маршрутов. Часто для этого используется библиотека Leaflet или прямая интеграция через JavaScript API картографических сервисов.
В версиях платформы до 8.3.25 (включая 8.3.23 и ранние сборки 8.3.24) клиент 1С под Linux использовал устаревший движок WebKit1 (в связке с GTK2). Это приводило к следующим последствиям:
Что изменилось в 8.3.25?
В новой версии платформы произошел полный переход на использование системных библиотек WebKit2GTK (и GTK3). Это фундаментальное изменение, которое выравнивает возможности встроенного браузера в тонком клиенте Linux с современными веб-стандартами.
Теперь, если в вашем контракте с заказчиком есть требование работы на российских ОС (Astra Linux, РЕД ОС, Alt Linux) и функционал включает работу с географическими картами, обновление до 8.3.25 становится не просто желательным, а обязательным. Как отмечают специалисты, "дописанный Leaflet" теперь корректно отрабатывает на клиенте под Linux без необходимости использовать "костыли" или внешние браузеры.
Производительность — ключевой фактор при выборе платформы. Интересные данные были получены при проведении синтетических тестов (в частности, популярного теста Гилева) на новой платформе.
Давайте посмотрим на результаты замеров, проведенных на различных конфигурациях оборудования. Сравнение проводилось между версиями 8.3.23/24 и новой 8.3.25.
Наблюдаемые результаты:
Анализ причин роста производительности на Linux
Возникает вопрос: с чем связан такой избирательный прирост? Первое предположение, которое часто возникает — оптимизация работы с конкретными файловыми системами (ext4 или XFS). Однако, более глубокий анализ изменений платформы указывает на другие факторы.
Прирост производительности в среде Linux в версии 8.3.25 обусловлен комплексной оптимизацией ядра платформы под *nix-системы:
Отсутствие явного прироста на Windows объясняется тем, что многие из этих оптимизаций для среды Windows были внедрены в платформу постепенно в предыдущих релизах, тогда как Linux-версия получила кумулятивный эффект от рефакторинга кода именно в 8.3.25.
Для высоконагруженных систем и крупных внедрений версия 8.3.25 принесла долгожданный инструмент оптимизации запросов — покрывающие индексы (Covering Indexes) и индексы с включенными столбцами.
Рассмотрим, как это работает и почему это важно. Традиционный индекс в базе данных (и в 1С) содержит значения ключей и ссылку на саму запись. Когда мы выполняем запрос, СУБД сначала ищет данные в индексе, а затем, если в запросе нужны поля, которых нет в индексе, обращается к основной таблице (этот процесс называется Key Lookup или Bookmark Lookup). Это обращение к таблице — дорогая операция.
Теперь в платформе 1С появилась возможность управлять составом индекса более гибко. Мы можем включить в индекс дополнительные поля, по которым не производится поиск, но которые нужны в выборке.
Рассмотрим пример. Допустим, у нас есть Регистр Сведений ЦеныНоменклатуры. Мы часто делаем запрос, чтобы узнать цену конкретного товара.
Без покрывающего индекса:
// Запрос ищет по Номенклатуре (есть в индексе)
// Но чтобы получить Цену, СУБД лезет в основную таблицу
ВЫБРАТЬ
Цены.Цена
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК Цены
ГДЕ
Цены.Номенклатура = &Товар
Если мы настроим индекс по Номенклатуре и включим в него поле Цена (как included column), СУБД сможет отдать результат сразу после чтения индекса, не обращаясь к таблице данных. Это может ускорить чтение данных в разы, особенно на больших объемах.
Как это реализуется?
В конфигураторе (или программно при работе с индексами) для объектов метаданных появились настройки, позволяющие указывать "Неключевые поля" для индексов. Это аналог конструкции INCLUDE в MS SQL Server.
Преимущества данного подхода:
Помимо обсужденных выше тем, стоит упомянуть еще несколько функций, которые делают версию 8.3.25 важной вехой в развитии платформы.
1. Нативная работа с речью
Теперь функционал синтеза и распознавания речи встроен непосредственно в платформу. Раньше для реализации голосового управления (например, на складах для сборщиков заказов) приходилось использовать внешние компоненты или сторонние сервисы через HTTP-запросы. В 8.3.25 можно реализовать голосовой интерфейс штатными средствами языка 1С.
2. Поддержка формата Markdown
Форматирование текста в документах и задачах становится проще. Платформа получила нативную поддержку Markdown. Это позволяет отображать отформатированный текст (жирный, курсив, списки, заголовки) без использования тяжеловесного HTML-поля, что упрощает разработку чат-ботов, систем взаимодействия и баз знаний внутри 1С.
3. JWT-токены (JSON Web Token)
Для интеграции с внешними веб-сервисами и построения микросервисной архитектуры добавлена поддержка аутентификации через JWT. Это современный стандарт индустрии, который значительно упрощает "общение" 1С с внешними порталами, мобильными приложениями и корпоративными шинами данных.
Подводя итог анализу версии 8.3.25, давайте сформулируем рекомендации по обновлению:
Важно помнить, что переход на новую версию платформы всегда должен сопровождаться предварительным тестированием на копии вашей базы данных, особенно если используются нетиповые интеграции или внешние компоненты.