Заметки из Зазеркалья

29.10.2024

Развитие расширений: доступность объектов расширения из внешних обработок и отчётов и другие доработки

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Планируется в версии 8.3.28

Мы продолжаем развивать механизм расширений конфигурации, добавляя к нему новую функциональность, в том числе и по вашим просьбам. Сегодня мы расскажем о новых возможностях, которые появятся в версии 8.3.28.

Доступность объектов расширения из внешних обработок и отчётов

По многочисленным просьбам разработчиков, использующих наши технологии, в версии 8.3.28 объекты расширений, установленных в информационную базу, будут доступны в режиме Конфигуратора во внешних отчетах и обработках.

С помощью конструктора запросов будет можно создавать и редактировать в модулях внешних обработок, схемах компоновки данных (СКД) внешних отчетов и обработок и динамических списках форм внешних обработок и отчетов в режиме “Произвольный запрос” запросы с участием объектов из расширений.

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

В свойстве «Тип» дочерних объектов внешних отчетов и обработок (макеты СКД, реквизиты, реквизиты ТЧ, реквизиты форм и т.д.), можно будет использовать типы объектов расширений конфигурации, установленных в инфобазу.

Повышение устойчивости расширений конфигурации к изменениям расширяемых конфигураций

Сейчас в некоторых ситуациях при обновлении конфигурации могут возникнуть проблемы при работе ранее подключенных к конфигурации расширений. Вот две наиболее существенные из них:

  • Отсутствие заимствованного объекта у расширяемой конфигурации

  • Ошибка проверки значения контролируемого расширением свойства

Сейчас в этих случаях расширение просто не применяется, хотя есть сценарии, в которых работа расширения возможна (и желательна).

Для повышения стабильности работы расширений для этих ситуаций будут сделаны доработки.

Отсутствие заимствованного объекта в расширении у расширяемой конфигурации

У каждого заимствованного в расширение объекта можно будет настраивать поведение расширения в случае отсутствия этого объекта у расширяемой конфигурации:

01.png

«Действие» может принимать значения:

  • «Запрещать подключение расширения». При отсутствии объекта в расширяемой конфигурации расширение не применяется (текущее поведение).
  • «Не запрещать подключение расширения, предупреждать». При отсутствии объекта в расширяемой конфигурации пользователю выводится предупреждение, а расширение применяется.
  • «Не запрещать подключение расширения». Пользователю не выводится предупреждение и расширение применяется. Сценарий востребован для разработки универсальных расширений, например, и для конфигураций, в которых есть язык «Русский», и для тех, где его нет.
  • «Авто». Поведение наследуется из настроек расширения (см. ниже).
А у самого расширения появляется настройка «Действия при отсутствии объекта в расширяемой конфигурации»:
02.png

Ошибка проверки значения контролируемого расширением свойства

Будет добавлено свойство «Действие при проверке свойств расширением», принимающее значения:
  • «Не запрещать подключение расширения, предупреждать» (по умолчанию для новых расширений)
  • «Запрещать подключение расширения» (по умолчанию для ранее созданных расширений)
Свойствам заимствованных объектов, для которых доступна проверка значения, добавляется новое состояние флага «Действия при подключении расширения» - «Авто». В этом случае действие при проверке зависит от значения свойства «Действие при проверке свойств расширением» расширения конфигурации. В панели свойств состояние отображается с желтым кружком справа снизу:
03.png для контроля
04.png для проверки
Состояние устанавливается для всех свойств при первичном изменении свойства или добавлении объекта в расширение.

Повышение устойчивости расширений к изменениям расширяемых конфигураций позволит сделать расширение работоспособным при изменении расширяемой конфигурации в широком спектре сценариев. Разработчики получат больше времени для актуализации расширений и возможность разработки более универсальных решений (например – не привязанных к языку или охватывающих больший диапазон релизов конфигурации). Администраторы смогут сократить срок подготовки к обновлениям, т.к. бо́льшая часть расширений не будет требовать немедленного исправления после релизов. Для пользователей станет менее критичным немедленное получение актуализированного расширения.

Другие доработки

В версии 8.3.28 также появятся следующие доработки:
  • Как мы писали ранее, будет доработан механизм копий баз данных для полной поддержки работы в конфигурациях, имеющих расширения.
  • В версии 8.3.27 появится функциональность увеличения количества записей в табличных частях. А в версии 8.3.28 в расширениях можно будет переопределять свойство ДлинаНомераСтроки для заимствованных табличных частей.
  • Появится возможность отключить расширение для сеанса из командной строки.
  • Будет сокращено потребления памяти формами с динамическим списком при использовании расширений, изменяющих структуру данных конфигурации (по результатам наших тестов – в 1,6 раза).
  • Будет оптимизирована установка расширений с включенной галочкой "Используется в РИБ".

Теги: 8.3.28  расширения