Какие ключевые нововведения и улучшения появились в платформе 1С:Предприятие 8.3.13?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Выход технологической платформы 1С:Предприятие 8.3.13 стал знаковым событием для сообщества разработчиков. В этой версии разработчики «1С» сосредоточились не столько на внешних эффектах, сколько на глубокой оптимизации ядра, расширении возможностей языка запросов и внедрении инструментов для системного администрирования высоконагруженных систем. В данной статье мы подробно разберем, какие функции делают этот релиз обязательным к изучению и применению (маст-хэв), и как эти изменения помогут сделать ваши конфигурации быстрее и стабильнее.

Новые возможности языка запросов: функция АВТОНОМЕРЗАПИСИ()

Одной из самых ожидаемых функций стала АВТОНОМЕРЗАПИСИ(). Разберем ситуацию: раньше для получения порядкового номера записи или формирования нарастающего итога в запросе нам приходилось использовать ресурсоемкие соединения таблицы самой с собой по условию НомерСтроки <= НомерСтроки. Теперь эта задача решается элегантно и быстро на уровне СУБД.

Рассмотрим основные правила использования этой функции:

  1. Она работает только при создании временной таблицы.
  2. Ее нельзя использовать в обычных выборках, в предложениях ГДЕ или ОБЪЕДИНИТЬ на верхнем уровне.
  3. Результатом является поле с уникальными последовательно возрастающими значениями в рамках этой таблицы.

Посмотрим на практический пример реализации нумерации строк во временной таблице:


ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.СуммаОборот КАК Сумма,
    АВТОНОМЕРЗАПИСИ() КАК ПорядковыйНомер
ПОМЕСТИТЬ ВТ_ПродажиСНомерами
ИЗ
    РегистрНакопления.Продажи.Обороты КАК Продажи
УПОРЯДОЧИТЬ ПО
    Продажи.СуммаОборот УБЫВ
;

Проанализируем этот код: мы создаем временную таблицу, где каждая строка получает свой номер в зависимости от объема продаж. Это критически важно для задач распределения партий, расчета рейтингов или вывода нумерованных списков в сложных отчетах без использования СКД. Важно помнить, что порядок нумерации строго определяется предложением УПОРЯДОЧИТЬ ПО.

Механизм управления потреблением ресурсов

Разберем одну из главных «админских» фишек — систему контроля ресурсов. До выхода 8.3.13 один пользователь, запустивший тяжелый отчет «за 10 лет», мог монополизировать ресурсы сервера, парализовав работу всего подразделения. Теперь в платформу встроен штатный механизм ограничения аппетитов отдельных сеансов.

Выясним, что именно мы можем теперь контролировать:

Система позволяет создавать «Профили безопасности», где прописываются пороговые значения. Если сеанс превышает лимит, администратор может прервать выполнение конкретной длительной операции, не выбивая пользователя из программы. Пользователь просто получит сообщение об ошибке и сможет продолжить работу, перенастроив фильтры отчета.

Оптимизация работы с запросами и СУБД

Рассмотрим важную оптимизацию оператора В с подзапросом. Ранее использование конструкции ГДЕ Ссылка В (ВЫБРАТЬ...) часто приводило к деградации производительности на больших объемах данных, так как СУБД не всегда эффективно строила план выполнения. В версии 8.3.13 платформа автоматически заменяет такой подзапрос на внутреннее соединение (INNER JOIN), если это не меняет результат. Это позволяет оптимизатору СУБД (особенно PostgreSQL и MS SQL Server) строить более эффективные планы.

Кроме того, проанализируем другие улучшения в части работы с данными:

  1. Кластерный индекс в срезах: Для виртуальных таблиц среза последних/первых регистров сведений добавлен кластерный индекс, что значительно ускоряет получение актуальных данных.
  2. Оптимизация Таблицы Значений: Операции заполнения и удаления строк в ТаблицаЗначений стали работать быстрее благодаря внутренним изменениям в управлении памятью.
  3. JSON: Ускорена сериализация и десериализация JSON, что критично для высоконагруженных интеграций через HTTP-сервисы.

Безопасность разработки: использование ЭтотОбъект

Обратим внимание на важное изменение в объектной модели. Теперь для вызова через ЭтотОбъект доступны только те методы, которые описаны с ключевым словом Экспорт. Это закрывает потенциальную «дыру», когда через контекст объекта можно было вызвать приватные процедуры модуля.

Пример, который теперь потребует рефакторинга (если отключен режим совместимости):


// В модуле формы
Процедура МояПриватнаяПроцедура()
    // Какой-то код
КонецПроцедуры

// Вызов, который вызовет ошибку в 8.3.13:
ЭтотОбъект.МояПриватнаяПроцедура(); // Ошибка! Нужно добавить Экспорт

Мобильная платформа: не только фонарик

Хотя в обсуждениях часто шутят про «управление фонариком», возможности мобильной платформы 8.3.13 стали гораздо серьезнее. Рассмотрим ключевые новшества:

Улучшения интерфейса и динамических списков

Посмотрим на изменения, которые заметят пользователи. В динамических списках оптимизировано событие ПриИзменении. Раньше при удалении, например, 50 строк, событие могло вызываться 50 раз, что приводило к «заиканию» интерфейса. Теперь при массовых операциях событие вызывается однократно.

Также стоит отметить косметические изменения: обновлена цветовая схема выделения строк, она стала менее агрессивной и более современной. Улучшена работа метода ПроверитьВывод() для табличных документов — теперь формирование многостраничных отчетов на стороне клиента происходит значительно быстрее.

Критическая ошибка и предостережение

Проанализируем ситуацию с надежностью. Как и в любом крупном обновлении, не обошлось без проблем. Разберем зафиксированный баг в релизе 8.3.13.1644: при использовании обычного интерфейса вызов метода ОбновитьИнтерфейс() приводит к аварийному завершению работы клиента. Если ваша конфигурация использует обычные формы, рекомендуется либо избегать этого релиза, либо переходить на более поздние сборки (например, ветку 8.3.14), где эта проблема устранена.

Подведем итог: Платформа 8.3.13 — это фундамент для стабильной работы современных тяжелых конфигураций (ERP 2.4, УТ 11.4). Внедрение функции АВТОНОМЕРЗАПИСИ() и механизмов управления ресурсами делает разработку более профессиональной, а эксплуатацию системы — предсказуемой.

← На главную