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

15.12.2021

Развитие расширений

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

Планируется в версии 8.3.22Пробовать

В версии 8.3.22 у расширений конфигурации появятся новые возможности.

Возможность изменения параметров номеров и кодов объектов

Изменение длины, типа и других настроек кода/номера объектов с помощью расширений конфигурации было невозможно. Если менять это в самой конфигурации – то надо включить в ней возможность изменений, что усложнит обновление конфигурации на новую версию.
В версии 8.3.22 появится возможность изменения этих параметров в расширениях у ряда объектов метаданных. Это позволит с помощью расширений реализовать новые сценарии. Например, увеличить длину номера документа, если в текущих условиях проводится так много документов, что их номера могут не поместиться в текущую длину номера. Или поменять тип нумератора с числа на строку, если бизнес-процессы требуют добавления к номеру документа строкового префикса.

Подробности – ниже.

Настройки нумерации

Для объектов типа  «Документ», «Бизнес-процесс», «Задача» и «Нумератор» в расширениях можно будет изменять свойства нумерации.

Можно будет увеличивать значение свойства «Длина номера». При изменении свойства несколькими расширениями конфигурации длиной номера будет наибольшее значение.

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

Будет разрешено задавать значение свойства «Допустимая длина номера», «Периодичность» и «Контроль уникальности». При изменении свойств несколькими расширениями значение свойства будет браться из последнего расширения в списке.

Нумераторы

В расширениях можно будет создавать свои нумераторы. Будет разрешена установка и собственным, и заимствованным документам как собственных, так и заимствованных нумераторов из конфигурации.

Код

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

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

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

Длина наименования

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

При изменении свойства несколькими расширениями конфигурации длиной наименования будет наибольшее значение.

Доступ к параметрам расширений конфигурации без установки  в информационную базу

Разработчикам конфигураций иногда бывает нужно получить доступ к параметрам расширений конфигурации без их установки в информационную базу. В случае если расширение меняет структуру данных, установка расширения требует перевода базы  в монопольный режим и реструктуризации данных (что сопряжено с неудобствами для пользователей). А разработчику может понадобиться узнать, меняет ли расширение структуру данных. Или получить хэш-сумму, которая используется в настройке профилей безопасности, до установки расширения.

В версии 8.3.22 в метод МенеджерРасширенийКонфигурации.Создать() будет добавлен необязательный параметр «Данные» типа ДвоичныеДанные. В этот параметр передается содержимое файла расширения. Для расширения, не установленного в конфигурацию, будут доступны свойства Версия, Имя, Назначение, ОсновныеРоли, Синоним и ХешСумма. Метод ИзменяетСтруктуруДанных() вернет «Истина», если после установки расширение будет влиять на структуру данных конфигурации.

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

Раcш1 = РасширенияКонфигурации.Создать();
Раcш1.Записать(Новый ДвоичныеДанные("Раcш1.cfe"));
ИзменяетСтруктуруДанных = Раcш1.ИзменяетСтруктуруДанных();
Раcш1.Удалить();

Новый вариант проверки будет выглядеть так:

Раcш1 = РасширенияКонфигурации.Создать(Новый ДвоичныеДанные("Раcш1.cfe"));
ИзменяетСтруктуруДанных = Раcш1.ИзменяетСтруктуруДанных();

Проверка не потребует перевода конфигурации в монопольный режим и реструктуризации данных.



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

Рассказать друзьям: