[ELMA3] Использование в сценариях объектов и документов пользовательских свойств системных объектов
После добавления пользовательского свойства в системный объект или документ, может возникнуть необходимость обратиться к нему из сценария объекта.
В силу того, что из сценария объекта нельзя работать с классами, которые реализуют все интерфейсы того или иного объекта, необходимо явно указывать интерфейс. После изменения системного объекта, создается интерфейс ObjNameConfigExt. Например, для Юридического лица (IContractorLegal) это будет IContractorLegalConfigExt.
Примеры:
1. В объект Юридическое лицо добавили свойство Полное наименование (FullName). Для использования этого свойства необходимо привести контрагента к IContractorLegalConfigExt
var Contractor = InterfaceActivator.Create<IContractorLegal>(); var ContractorEx = (IContractorLegalConfigExt)Contractor;
В этом примере переменная Contractor будет содержать только стандартные свойства юридического лица, а ContractorEx – все свойства, в т.ч. пользовательские.
2. В документе Договор (Contract) используется справочник Мои юрлица (MyLegalPerson), к этому справочнику добавили новое свойство Код объекта (ObjId). Для того, чтобы использовать свойство Код объекта, необходимо привести MyLegalPerson к IMyLegalPersonConfigExt.
var Contract = InterfaceActivator.Create<IContract>();
Contract.MyLegalPerson будет содержать только стандартные свойства.
((IMyLegalPersonConfigExt)Contract.MyLegalPerson).ObjId;
После приведения MyLegalPerson к IMyLegalPersonConfigExt, можно будет обратиться к пользовательским свойствам.