Выход тестовой версии платформы 8.3.21.1140 принес множество долгожданных изменений, которые существенно упрощают жизнь как разработчикам, так и конечным пользователям. В этой статье мы подробно разберем наиболее значимые технические новшества, проанализируем их практическую пользу и рассмотрим примеры реализации новых механизмов.
Одним из самых заметных изменений стала реализация возможности просмотра и печати документов в формате PDF средствами самой платформы. Ранее для этих целей разработчикам приходилось полагаться на установленные в системе внешние приложения (такие как Adobe Reader или SumatraPDF) или использовать сложные интеграции через ActiveX или HTML-поле.
Рассмотрим, что именно дает этот механизм. Теперь встроенный просмотрщик поддерживает не только базовое отображение, но и полнотекстовый поиск внутри документа, а также возможность прямого копирования текста. Это избавляет от проблем с совместимостью на рабочих станциях, где стороннее ПО может быть не установлено или заблокировано политиками безопасности. Однако, как отмечают пользователи Linux, для корректной работы компоненты рендеринга может потребоваться установка дополнительных системных библиотек, таких как libpng.
Разберем крайне полезное улучшение в инструменте отладки. В диалоге «Выражение» теперь реализована порционная (ленивая) загрузка данных. Если вы когда-либо пытались просмотреть таблицу значений на 100 000 строк или массив с огромным количеством элементов, вы знаете, что это приводило к длительному «зависанию» конфигуратора.
Теперь платформа подгружает данные порциями по мере необходимости. Рассмотрим этот принцип: конфигуратор получает только видимую часть элементов, а остальное дозагружается при прокрутке списка. Это значительно ускоряет процесс отладки в сложных высоконагруженных системах.
Проанализируем ситуацию, знакомую многим администраторам: аварийное завершение внешней компоненты (например, для работы с торговым оборудованием или специфическими драйверами) приводило к падению всего рабочего процесса 1С или клиентского приложения. В версии 8.3.21 реализована возможность загрузки внешних компонент в отдельном процессе.
Это означает, что даже если компонента «упадет» с критической ошибкой, сама платформа продолжит работу. Разработчику потребуется лишь предусмотреть механизм повторного подключения компоненты в коде, не прерывая сеанс пользователя. Это огромный шаг в сторону стабильности системы.
Выясним, как изменилась работа с ошибками. В операторе ВызватьИсключение появились новые параметры, которые позволяют структурировать информацию об ошибке. Рассмотрим пример того, как теперь можно генерировать исключения:
// Пример использования расширенных параметров исключения
Попытка
// Какой-то код, вызывающий ошибку
Результат = 1 / 0;
Исключение
Инфо = ИнформацияОбОшибке();
ВызватьИсключение "Произошла критическая ошибка при расчете",
КатегорияОшибки.Прикладная,
"ERR_CALC_001",
"Дополнительная информация для логов",
Инфо;
КонецПопытки;
Возможность указывать Категорию, Код и Причину позволяет создавать иерархию собственных ошибок и более гибко обрабатывать их на верхних уровнях приложения, что особенно важно для разработки сложных тиражных решений.
Для интеграции 1С с современными веб-сервисами (написанными на Python, Go, Node.js) теперь реализована встроенная поддержка JWT-токенов (JSON Web Token) и JWS (JSON Web Signature). Это позволяет строить безопасные схемы авторизации без передачи логина и пароля в открытом или слабо зашифрованном виде.
Платформа поддерживает алгоритмы хеширования HS256, RS256 и другие. Теперь 1С может выступать как полноценный участник микросервисной архитектуры, проверяя и генерируя подписи для JSON-данных штатными методами.
Разберем, зачем платформе понадобились разные версии уникальных идентификаторов. Ранее 1С генерировала преимущественно случайные идентификаторы (аналог версии 4). Теперь доступны и другие типы:
Применение версий 3 и 5 крайне полезно при интеграции: если вам нужно синхронизировать данные с внешней БД, вы можете генерировать один и тот же UUID в 1С и во внешней системе, используя в качестве ключа, например, артикул товара. Это избавляет от необходимости хранить таблицы соответствий Ид1С - ИдВнешний.
Посмотрим на новшества для DevOps-инженеров. Реализована многопоточная выгрузка конфигурации в ZIP-архив XML-файлов. На многоядерных серверах это сокращает время выгрузки кода в несколько раз. Это критически важно для процессов CI/CD (непрерывной интеграции), где выгрузка конфигурации для помещения в Git является регулярной операцией.
Рассмотрим еще несколько интересных функций:
Проанализируем опыт пользователей, которые уже протестировали релиз на Linux. Отмечается значительное улучшение отзывчивости интерфейса. Исправлены давние проблемы с позиционированием курсора при нестандартных настройках DPI экрана. Платформа стала вести себя более стабильно в графических оболочках на базе Ubuntu и других популярных дистрибутивов. Однако при переходе на 8.3.21 стоит учитывать, что потребление ресурсов (процессорного времени) в некоторых сценариях может быть выше по сравнению со старыми ветками (например, 8.3.16).
Таким образом, переход на 8.3.21 открывает перед разработчиком широкие возможности по интеграции и повышению стабильности систем, хотя и требует внимательного тестирования специфических компонентов, таких как драйверы торгового оборудования и модули печати PDF.