Использование дополнительных реквизитов и сведений » История » Версия 4
Версия 3 (Всеволод Дорофеев, 05.02.2017 13:31) → Версия 4/14 (Всеволод Дорофеев, 05.02.2017 14:14)
h1. Использование дополнительных реквизитов и сведений
h3. Использование дополнительных реквизитов и сведений в БП 2.0
* Справочник ЗначенияСвойствОбъектов
* План видов характеристик НазначенияСвойствКатегорийОбъектов
* План видов характеристик СвойстваОбъектов
* Регистр сведений ЗначенияСвойствОбъектов
h3. Использование дополнительных реквизитов и сведений в БП 3.0, УТ11,..
* План видов характеристик ДополнительныеРеквизитыИСведения
* Справочник НаборыДополнительныхРеквизитовИСведений
* Регистр сведений ДополнительныеСведения
* Табличная часть "Дополнительные реквизиты" справочников и документов
Пример:
<pre>
//получение доп.реквизита для объекта "Источник"
ЭлементПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Серия", Истина);
НайденнаяСтрока = Источник.ДополнительныеРеквизиты.Найти(ЭлементПВХ, "Свойство");
</pre>
<pre>
//УТ11
//Доп.сведение
ЭлементПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Тип", Истина);
МассивСвойств = новый массив;
МассивСвойств.Добавить(ЭлементПВХ);
ТаблицаСвойств = УправлениеСвойствами.ПолучитьЗначенияСвойств(Источник, ложь, истина, МассивСвойств);
НайденнаяСтрока = ТаблицаСвойств.Найти(ЭлементПВХ, "Свойство");
Если не НайденнаяСтрока = Неопределено Тогда
Значение = НайденнаяСтрока.Значение;
КонецЕсли;
</pre>
<pre>
//Установка доп.реквизита Объекта
&НаСервере
Процедура УстановитьДополнительныйРеквизитОбъекта(Объект, ИмяРеквизита, ЗначениеРеквизита)
ЭлПВХ_Ссылка = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Заголовок",ИмяРеквизита);
Если ЭлПВХ_Ссылка.Пустая() Тогда
Сообщить("Не найден доп. реквизит "+ИмяРеквизита+", значение не установлено!");
Возврат;
КонецЕсли;
СтрДопРеквизиты = Объект.ДополнительныеРеквизиты.Найти(ЭлПВХ_Ссылка, "Свойство");
Если СтрДопРеквизиты = Неопределено Тогда
СтрДопРеквизиты = Объект.ДополнительныеРеквизиты.Добавить();
КонецЕсли;
СтрДопРеквизиты.Свойство = ЭлПВХ_Ссылка;
СтрДопРеквизиты.Значение = ЗначениеРеквизита;
КонецПроцедуры
</pre>
h3. Использование дополнительных реквизитов и сведений в БП 2.0
* Справочник ЗначенияСвойствОбъектов
* План видов характеристик НазначенияСвойствКатегорийОбъектов
* План видов характеристик СвойстваОбъектов
* Регистр сведений ЗначенияСвойствОбъектов
h3. Использование дополнительных реквизитов и сведений в БП 3.0, УТ11,..
* План видов характеристик ДополнительныеРеквизитыИСведения
* Справочник НаборыДополнительныхРеквизитовИСведений
* Регистр сведений ДополнительныеСведения
* Табличная часть "Дополнительные реквизиты" справочников и документов
Пример:
<pre>
//получение доп.реквизита для объекта "Источник"
ЭлементПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Серия", Истина);
НайденнаяСтрока = Источник.ДополнительныеРеквизиты.Найти(ЭлементПВХ, "Свойство");
</pre>
<pre>
//УТ11
//Доп.сведение
ЭлементПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Тип", Истина);
МассивСвойств = новый массив;
МассивСвойств.Добавить(ЭлементПВХ);
ТаблицаСвойств = УправлениеСвойствами.ПолучитьЗначенияСвойств(Источник, ложь, истина, МассивСвойств);
НайденнаяСтрока = ТаблицаСвойств.Найти(ЭлементПВХ, "Свойство");
Если не НайденнаяСтрока = Неопределено Тогда
Значение = НайденнаяСтрока.Значение;
КонецЕсли;
</pre>
<pre>
//Установка доп.реквизита Объекта
&НаСервере
Процедура УстановитьДополнительныйРеквизитОбъекта(Объект, ИмяРеквизита, ЗначениеРеквизита)
ЭлПВХ_Ссылка = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Заголовок",ИмяРеквизита);
Если ЭлПВХ_Ссылка.Пустая() Тогда
Сообщить("Не найден доп. реквизит "+ИмяРеквизита+", значение не установлено!");
Возврат;
КонецЕсли;
СтрДопРеквизиты = Объект.ДополнительныеРеквизиты.Найти(ЭлПВХ_Ссылка, "Свойство");
Если СтрДопРеквизиты = Неопределено Тогда
СтрДопРеквизиты = Объект.ДополнительныеРеквизиты.Добавить();
КонецЕсли;
СтрДопРеквизиты.Свойство = ЭлПВХ_Ссылка;
СтрДопРеквизиты.Значение = ЗначениеРеквизита;
КонецПроцедуры
</pre>