Выход версии 8.3.22 стал важным этапом развития платформы 1С:Предприятие. В этой версии разработчики реализовали множество долгожданных функций, которые касаются как удобства разработки в Конфигураторе, так и производительности серверной части. Мы проанализируем основные изменения, разберем технические нюансы работы с СУБД и выясним, какие «подводные камни» могут встретиться при использовании инструментов отладки.
Рассмотрим одно из наиболее полезных изменений для разработчиков, активно использующих расширения конфигурации. В команде «Проверка применимости расширений» появились дополнительные автоматизированные проверки, которые значительно снижают риск возникновения ошибок в рантайме. Разберем подробнее, что именно теперь проверяет система:
&Перед, &После или &Вместо). Если в основной конфигурации метод был удален или переименован, конфигуратор выдаст предупреждение.Знач). Это критически важно, так как несоответствие количества аргументов приводило к аварийному завершению работы фоновых заданий или клиентских сессий.Важно отметить, что данные проверки выполняются для всех методов, за исключением стандартных обработчиков событий, что позволяет сосредоточиться на кастомной логике бизнес-процессов.
Проанализируем ситуацию с получением уникальных идентификаторов. Долгое время разработчикам приходилось выгружать результаты запроса в таблицу значений или использовать другие обходные пути, чтобы получить UUID ссылки. В версии 8.3.22 по многочисленным просьбам была добавлена функция УникальныйИдентификатор().
Посмотрим на пример использования этой функции в языке запросов:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка,
УникальныйИдентификатор(Номенклатура.Ссылка) КАК Идентификатор
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.ЭтоГруппа = ЛОЖЬ
Эта функция также доступна в языке выражений Системы компоновки данных (СКД). Она принимает один параметр — ссылку (любого типа, кроме ссылок на внешние источники данных) и возвращает объект типа УникальныйИдентификатор. Если в функцию передается NULL, результатом также будет NULL. Это значительно упрощает интеграционные задачи, где требуется передача GUID во внешние системы.
Кроме того, в языке запросов теперь реализована поддержка оператора ТОП (TOP) в подзапросах. Это позволяет ограничивать выборку во вложенных конструкциях, что ранее требовало использования временных таблиц. Рассмотрим, как это может выглядеть:
ВЫБРАТЬ
Заказы.Ссылка
ИЗ
Документ.ЗаказПокупателя КАК Заказы
ГДЕ
Заказы.Ссылка В (
ВЫБРАТЬ ПЕРВЫЕ 10
Внутренние.Ссылка
ИЗ
Документ.ЗаказПокупателя КАК Внутренние
УПОРЯДОЧИТЬ ПО
Внутренние.Дата УБЫВ
)
Выясним причину изменений в работе с Microsoft SQL Server. Платформа 8.3.22 устанавливает гранулярность блокировок на уровне строк (row-level locking), если используется версия MS SQL 2008 и выше. Это фундаментальное изменение в управлении конкурентным доступом.
Что это означает на практике:
Важное замечание: Переход на построчные блокировки СУБД не отменяет необходимость использования механизма управляемых блокировок в 1С. Мы по-прежнему должны тщательно прописывать блокировки в коде, чтобы обеспечить логическую целостность данных. Новая гранулярность лишь делает работу СУБД более «хирургической», предотвращая блокировку лишних данных на физическом уровне.
Проанализируем производительность операций в Конфигураторе. В версии 8.3.22 операции сравнения и обновления конфигурации были значительно ускорены. Это достигнуто за счет распараллеливания процессов на многоядерных процессорах.
При выполнении реструктуризации или сравнения метаданных платформа теперь распределяет расчет дерева изменений между доступными ядрами процессора. На крупных конфигурациях, таких как ERP Управление предприятием или Управление торговлей 11, время ожидания сокращается в несколько раз. Это позволяет системным администраторам и разработчикам быстрее проводить регламентные работы в периоды технологических окон.
Разберем технологический стек взаимодействия с внешними сервисами. Платформа получила поддержку протокола HTTP/2 для объекта HTTPСоединение. Рассмотрим преимущества, которые это дает:
Для использования HTTP/2 не требуется радикального изменения кода, однако инфраструктура (веб-серверы, прокси-серверы) должна поддерживать этот протокол. Это критически важно для облачных решений и интеграций с современными API (например, государственными информационными системами).
Необходимо затронуть и критические моменты, выявленные в первых сборках ветки 8.3.22. Рассмотрим ситуацию с процессом dbgs.exe. В сборке 8.3.22.1368 (и некоторых последующих до версии 1603) наблюдалась проблема избыточного потребления ресурсов процессора при использовании HTTP-отладки.
Симптомы проблемы:
dbgs.exe нагружает одно ядро процессора на 100%.Для решения этой проблемы рекомендуется обновить платформу до версии 8.3.22.1709 или выше, где ошибки взаимодействия сервера отладки и клиентских приложений были исправлены. Если вы вынуждены использовать ранние сборки, рассмотрите возможность временного переключения на классическую отладку по протоколу TCP/IP, если сетевая конфигурация это позволяет.
Посмотрим на изменения, которые заметят конечные пользователи. Одной из приятных мелочей стало изменение вида курсора мыши на «занят» (песочные часы или кружок ожидания) при начале серверного вызова в тонком и толстом клиентах. Это дает пользователю визуальный фидбек о том, что система обрабатывает данные, а не просто зависла.
В веб-клиенте реализованы следующие улучшения:
Платформа 8.3.22 — это мощное обновление, которое приносит реальные инструменты для оптимизации производительности (построчные блокировки, многопоточное обновление) и упрощает разработку (функции в запросах, проверки расширений). Несмотря на начальные трудности с HTTP-отладкой, в актуальных релизах эта ветка является стабильной и рекомендуемой для перехода, особенно для конфигураций с высокой степенью кастомизации через расширения.