Использование дополнительных реквизитов и сведений » История » Версия 6
« Предыдущее -
Версия 6/14
(Разница(diff)) -
Следующее » -
Текущая версия
Всеволод Дорофеев, 27.09.2019 10:09
Использование дополнительных реквизитов и сведений¶
Использование дополнительных реквизитов и сведений в БП 2.0¶
- Справочник ЗначенияСвойствОбъектов
- План видов характеристик НазначенияСвойствКатегорийОбъектов
- План видов характеристик СвойстваОбъектов
- Регистр сведений ЗначенияСвойствОбъектов
Использование дополнительных реквизитов и сведений в БП 3.0, УТ11,..¶
- План видов характеристик ДополнительныеРеквизитыИСведения
- Справочник НаборыДополнительныхРеквизитовИСведений
- Регистр сведений ДополнительныеСведения
- Табличная часть "Дополнительные реквизиты" справочников и документов
Пример:
//получение доп.реквизита для объекта "Источник" ЭлементПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Серия", Истина); НайденнаяСтрока = Источник.ДополнительныеРеквизиты.Найти(ЭлементПВХ, "Свойство");
//УТ11 //Доп.сведение ЭлементПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Тип", Истина); МассивСвойств = новый массив; МассивСвойств.Добавить(ЭлементПВХ); ТаблицаСвойств = УправлениеСвойствами.ПолучитьЗначенияСвойств(Источник, ложь, истина, МассивСвойств); НайденнаяСтрока = ТаблицаСвойств.Найти(ЭлементПВХ, "Свойство"); Если не НайденнаяСтрока = Неопределено Тогда Значение = НайденнаяСтрока.Значение; КонецЕсли;
//Проверим и создадим строковый доп. реквизит к справочнику Номенклатура &НаСервере функция ПроверитьДобавитьСтроковыйДопРеквизитДляНоменклатуры(ИмяРеквизита, ДлинаСтроки=0) //ищем доп. реквизит по заголовку ЭлПВХ_Ссылка = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Заголовок",ИмяРеквизита); Если ЭлПВХ_Ссылка.Пустая() Тогда //если не найдено, то создадим новый ЭлПВХ = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.СоздатьЭлемент(); ЭлПВХ.Заголовок = ИмяРеквизита; ЭлПВХ.НаборСвойств = Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура; ЭлПВХ.Наименование = ЭлПВХ.Заголовок+" ("+ЭлПВХ.НаборСвойств+")"; ЭлПВХ.ТипЗначения = Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(ДлинаСтроки)); ЭлПВХ.Записать(); ЭлПВХ_Ссылка = ЭлПВХ.Ссылка; КонецЕсли; //проверим, что реквизит указан в наборе доп. реквизитов заказа покупателя НаборОб = Справочники.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура.ПолучитьОбъект(); Если НаборОб.ДополнительныеРеквизиты.Найти(ЭлПВХ_Ссылка, "Свойство") = Неопределено Тогда //добавим реквизит в набор СтрНаборОб = НаборОб.ДополнительныеРеквизиты.Добавить(); СтрНаборОб.Свойство = ЭлПВХ_Ссылка; КонецЕсли; Если НаборОб.Модифицированность() Тогда //запишем при необходимости НаборОб.Записать(); КонецЕсли; Возврат ЭлПВХ_Ссылка; КонецФункции
//Установка доп.реквизита Объекта &НаСервере Процедура УстановитьДополнительныйРеквизитОбъекта(Объект, ИмяРеквизита, ЗначениеРеквизита) ЭлПВХ_Ссылка = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Заголовок",ИмяРеквизита); Если ЭлПВХ_Ссылка.Пустая() Тогда Сообщить("Не найден доп. реквизит "+ИмяРеквизита+", значение не установлено!"); Возврат; КонецЕсли; СтрДопРеквизиты = Объект.ДополнительныеРеквизиты.Найти(ЭлПВХ_Ссылка, "Свойство"); Если СтрДопРеквизиты = Неопределено Тогда СтрДопРеквизиты = Объект.ДополнительныеРеквизиты.Добавить(); КонецЕсли; СтрДопРеквизиты.Свойство = ЭлПВХ_Ссылка; СтрДопРеквизиты.Значение = ЗначениеРеквизита; КонецПроцедуры
Установка доп.сведения Объекта¶
&НаСервереБезКонтекста Функция ЗаписатьЗначениеДополнительногоСведения(Объект, Свойство, Значение) Попытка УстановитьПривилегированныйРежим(Истина); НаборЗаписей = РегистрыСведений.ДополнительныеСведения.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Объект.Установить(Объект); НаборЗаписей.Отбор.Свойство.Установить(Свойство); НоваяСтрокаНабора = НаборЗаписей.Добавить(); НоваяСтрокаНабора.Объект = Объект; НоваяСтрокаНабора.Свойство = Свойство; НоваяСтрокаНабора.Значение = Значение; НаборЗаписей.Записать(); Возврат Истина; Исключение Возврат Ложь; КонецПопытки; КонецФункции