В начало
Программное создание реквизита в расширении Поскольку основная
конфигурация «не видит через точку» объекты и свойства из расширения, а тем
более объекты одного расширения из другого, может оказаться актуальной задача
по программному созданию реквизитов и вызова форм с их использованием. Создадим два тестовых расширения: «Расширение 1» и «Расширение 2». В этих расширениях создадим справочники: «Сотрудники» и «КонтактнаяИнформация». Рис.
Справочники « Расширение 1» и «Расширение 2» Если мы захотим создать в
«Расширении 1» новый реквизит с типом «СправочникСсылка.
ТелефонныйСправочник», то конфигуратор не позволит
нам это сделать. Потому что, для того чтобы видеть объекты основной
конфигурации в расширении их надо добавить в данное конкретное расширение. Рис.
Доступные типы данных из расширения (слева) и Но можно ли обойтись без добавления
объектов основной конфигурации в расширение? Давайте это проверим. Удалим
только что добавленный «ТелефонныйСправочник» из
«Расширения 1», а вместо него в модуль формы элемента справочника «Расш1_Сотрудники» добавим обработчик «ПриСозданииНаСервере». Создадим новый реквизит программно,
при этом укажем нужный нам тип «Телефонного справочника» из основной конфигурации. Листинг.
Модуль формы элемента справочника «Расш1_Сотрудники»
Немного подготовимся, предварительно
заполнив «Телефонный справочник» случайными значениями. Рис.
Телефонный справочник Запускаем режим отладки. Создаем
элемент справочника «Сотрудники (Из расширения 1)», выбираем поле с телефоном и
видим, что обращаемся в телефонному справочнику, находящемуся в основной
конфигурации. При этом мы его не добавляли в расширение. Рис.
Проверка программного создания реквизита Еще усложним задачу: проверим, как
будет работать создание реквизита из одного расширения с типом «СправочникСсылка.Расш2_КонтактнаяИнформация»
из другого расширения. Немного меняем код, изменяя тип создаваемого реквизита. Листинг.
Модуль формы элемента справочника «Расш1_Сотрудники»
Запускаем
пользовательский режим и тестируем. Рис.
Проверка программного создания реквизита Таким образом, мы создали
программным методом реквизит «Телефон» и выбрали значение из другого
расширения. Конечно,
в структуре справочника «Расш1_Сотрудники»
физически нет реквизита «Телефон» и поэтому для его сохранения нужно уже будет
как то изгаляться, создавать некий реквизит с примитивным типом или еще что, х/з? |
||||