Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Реализовано в версии 8.3.14.1565.
Мы сделали несколько изменений, которые упрощают адаптацию расширений к изменениям конфигурации, а также добавили новые объекты, которые вы можете создавать в расширениях.
Раньше вы могли изменять роли типовой конфигурации, заимствуя их в расширение: устанавливать и снимать права на заимствованные объекты конфигурации и на собственные объекты расширения. Однако если заимствованные роли использовали ограничения доступа к данным на уровне записей и полей базы данных, то для полноценной работы этих ограничений вам не хватало возможности создавать собственные параметры сеанса в расширении.
Теперь мы добавили такую возможность. Собственные параметры сеанса становятся доступны при первом вызове события УстановкаПараметровСеанса(), и вы можете использовать их в ограничениях доступа.
Кроме этого мы реализовали и другую возможность – добавление собственных значений в заимствованные перечисления. Значения перечислений имеют уникальный внутренний идентификатор, они хранятся в таблице базы данных, доступны из встроенного языка и используются в полях форм в качестве значений. Поэтому существуют некоторые особенности, связанные с деактивацией расширений, которые «приносят» собственные значения перечислений.
Например, вы заимствовали перечисление и добавили в него собственное значение Отменен.
Если в момент применения расширения проблем не возникло, то будет выполнена реструктуризация базы данных и все собственные значения перечислений будут записаны в неё. В результате вы можете использовать значение Отменен в форме заказа, чтобы указать состояние заказа.
Если после этого вы деактивируете расширение, то собственные значения останутся в базе данных, но не будут показаны в пользовательском режиме. Вместо этого будет выведена надпись <Объект из отключенного расширения конфигурации>.
Также эти значения не будут доступны вам из встроенного языка:
При последующем подключении расширения собственные значения расширения будут восстановлены.
Для того чтобы вам было удобнее работать при длительной разработке расширения или при коллективной его разработке, мы добавили возможность комментирования заимствованных и собственных объектов.
Добавленное нами свойство Комментарий никак не используется платформой в процессе применения расширения ни для контроля, ни для изменения одноимённого свойства расширяемого объекта. Оно предназначено исключительно для вас, для того, чтобы вы могли сохранять какие-то заметки к изменяемым и добавляемым объектам.
Раньше при расширении модулей количество параметров обработчика события в расширении и в расширяемом модуле должно было быть одинаковым. Платформа контролировала это соответствие и не применяла расширение метода, если количество параметров отличалось.
Однако реальность такова, что в результате развития платформы количество параметров в обработчиках событий может увеличиваться. Это не влияет на работу существующих в конфигурации обработчиков, написанных в младших версиях платформы. Нет необходимости «дописывать» в объявление процедуры новые параметры. Однако при заимствовании таких обработчиков в расширении формируется шаблон процедуры уже с новым, правильным количеством параметров.
Раньше это приводило к тому, что расширение не применялось, так как количество параметров не совпадало. Теперь мы отменили этот контроль, и при применении расширения количество параметров и описателей Знач в обработчиках событий не контролируется.
Ещё одна доработка, которую мы сделали, тоже направлена на то, чтобы уменьшить зависимость расширений от изменений конфигурации, которые вы не собирались контролировать. Эта доработка касается механизма расширений форм, который мы перепроектировали.
Изначально, создавая этот механизм, мы хотели добиться того, чтобы форма в расширении (после заимствования) выглядела бы максимально похожей на свой окончательный вид. Для этого вместе с формой автоматически заимствовалось большое количество объектов, которые требуются для её отображения (реквизиты, параметры, команды и связанные с ними объекты).
С одной стороны это было хорошо, так как вы всегда (даже в отсутствие расширяемой конфигурации) можете посмотреть на форму в том виде, в котором она задумывалась. С другой стороны подавляющее большинство заимствованных при этом объектов лично вам не нужно для контроля или доработки. А любое их изменение в расширяемой конфигурации сразу же приводит к тому, что ваше расширение перестаёт подключаться, и его нужно адаптировать.
Теперь мы пересмотрели свой изначальный подход, и при заимствовании формы заимствуется только собственно форма и её элементы. Вся остальная информация, необходимая для работы с формой и для её предпросмотра (реквизиты, команды, параметры и пр.) берётся из расширяемой конфигурации и только отображается в расширении (серым цветом).
Если после заимствования в расширяемой форме появятся новые элементы, вы узнаете об этом в расширении. В верхней части редактора формы будет показан баннер, который предложит вам обновить форму.
Если вы захотите изменять реквизиты, параметры и команды, их нужно в явном виде заимствовать в расширение. Для этого в редакторе формы есть контекстная команда, а заимствованные элементы отображаются чёрным цветом.
Работа с формами, заимствованными ранее, никак не изменяется. Они работают так, как будто все возможные реквизиты, команды и параметры были заимствованы вручную.
Мы надеемся, что эти изменения сделают ваши расширения более стабильными, уменьшат их зависимость от расширяемой конфигурации и упростят адаптацию расширений в тех случаях, когда возникает их «нестыковка» с новой версией расширяемой конфигурации.