В качестве примера рассмотрим документ «Счет на оплату покупателю». Просмотреть доп. реквизиты можно нажав кнопку на панели (см рис 1). Создадим реквизит с наименованием «Примечание к счету» и типом «Строка». Заполним значение произвольным текстом. В результате получим... (см рис 2). Этот доп. реквизит будет во всех документах «Счет на оплату покупателю». Ниже приведен пример кода (скопирован из конфигурации) с помощью которого можно получить реквизит и его значение.
НазначениеСвойств = ОбщегоНазначения.ПолучитьСписокНазначенийСвойствКатегорийОбъектовПоСсылке(ДокументСсылка);
ОбъектОтбораЗначений = ДокументСсылка;
ОбъектОтбораНазначений = ДокументСсылка;
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("НазначениеСвойств", ?(НазначениеСвойств = Неопределено, ОбщегоНазначения.ПолучитьСписокНазначенийСвойствКатегорийОбъектовПоСсылке(ОбъектОтбораЗначений), НазначениеСвойств));
Запрос.УстановитьПараметр("ОбъектОтбораЗначений", ОбъектОтбораЗначений);
Запрос.Текст = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ РАЗРЕШЕННЫЕ
| СвойстваОбъектов.Наименование КАК СвойстваОбъектовНаименование,
| СвойстваОбъектов.ПометкаУдаления КАК ПометкаУдаления,
| СвойстваОбъектов.Ссылка КАК Свойство,
| РегистрСведений.ЗначенияСвойствОбъектов.Значение КАК Значение
|
|ИЗ
|// Отбираются свойства, предназначенные для заданного типа объектов.
| (
| ВЫБРАТЬ
| ПланВидовХарактеристик.СвойстваОбъектов.Ссылка КАК Ссылка,
| ПланВидовХарактеристик.СвойстваОбъектов.Наименование КАК Наименование,
| ПланВидовХарактеристик.СвойстваОбъектов.ПометкаУдаления КАК ПометкаУдаления
|
| ИЗ
| ПланВидовХарактеристик.СвойстваОбъектов
|
| ГДЕ
| ПланВидовХарактеристик.СвойстваОбъектов.НазначениеСвойства В ( &НазначениеСвойств )
|
| ) КАК СвойстваОбъектов
|
|ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
|// Присоединяются значения свойств, назначенные для заданного объекта.
| РегистрСведений.ЗначенияСвойствОбъектов
|ПО
| РегистрСведений.ЗначенияСвойствОбъектов.Свойство = СвойстваОбъектов.Ссылка
| И
| РегистрСведений.ЗначенияСвойствОбъектов.Объект = &ОбъектОтбораЗначений
|
|УПОРЯДОЧИТЬ ПО
| СвойстваОбъектовНаименование
|";
ТабЗн = Запрос.Выполнить().Выгрузить();
ТабЗн.Колонки.Удалить(0);
Для Каждого СтрокаТабЗнач Из ТабЗн Цикл
Сообщить(""+СтрокаТабЗнач.Свойство +" "+ СтрокаТабЗнач.Значение);
КонецЦикла;
Записать значение программно
Процедура ОсновныеДействияФормыЗаписатьНовоеЗначение(Кнопка)
НазначениеСвойств = ОбщегоНазначения.ПолучитьСписокНазначенийСвойствКатегорийОбъектовПоСсылке(ДокументСсылка);
ОбъектОтбораЗначений = ДокументСсылка;
ОбъектОтбораНазначений = ДокументСсылка;
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("НазначениеСвойств", ?(НазначениеСвойств = Неопределено, ОбщегоНазначения.ПолучитьСписокНазначенийСвойствКатегорийОбъектовПоСсылке(ОбъектОтбораЗначений), НазначениеСвойств));
Запрос.УстановитьПараметр("ОбъектОтбораЗначений", ОбъектОтбораЗначений);
Запрос.Текст = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ РАЗРЕШЕННЫЕ
| СвойстваОбъектов.Наименование КАК СвойстваОбъектовНаименование,
| СвойстваОбъектов.ПометкаУдаления КАК ПометкаУдаления,
| СвойстваОбъектов.Ссылка КАК Свойство,
| РегистрСведений.ЗначенияСвойствОбъектов.Значение КАК Значение
|
|ИЗ
|// Отбираются свойства, предназначенные для заданного типа объектов.
| (
| ВЫБРАТЬ
| ПланВидовХарактеристик.СвойстваОбъектов.Ссылка КАК Ссылка,
| ПланВидовХарактеристик.СвойстваОбъектов.Наименование КАК Наименование,
| ПланВидовХарактеристик.СвойстваОбъектов.ПометкаУдаления КАК ПометкаУдаления
|
| ИЗ
| ПланВидовХарактеристик.СвойстваОбъектов
|
| ГДЕ
| ПланВидовХарактеристик.СвойстваОбъектов.НазначениеСвойства В ( &НазначениеСвойств )
|
| ) КАК СвойстваОбъектов
|
|ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
|// Присоединяются значения свойств, назначенные для заданного объекта.
| РегистрСведений.ЗначенияСвойствОбъектов
|ПО
| РегистрСведений.ЗначенияСвойствОбъектов.Свойство = СвойстваОбъектов.Ссылка
| И
| РегистрСведений.ЗначенияСвойствОбъектов.Объект = &ОбъектОтбораЗначений
|
|УПОРЯДОЧИТЬ ПО
| СвойстваОбъектовНаименование
|";
ТабЗн = Запрос.Выполнить().Выгрузить();
ТабЗн.Колонки.Удалить(0);
Для Каждого СтрокаТабЗнач Из ТабЗн Цикл
//Сообщить(""+СтрокаТабЗнач.Свойство +" "+ СтрокаТабЗнач.Значение);
Если СтрокаТабЗнач.Свойство.Наименование = "Примечание к счету" Тогда
НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
Запись = НаборЗаписейЗначенияСвойств.Добавить();
Запись.Объект = ДокументСсылка;
Запись.Свойство = СтрокаТабЗнач.Свойство;
Запись.Значение = НовоеЗначение;
НаборЗаписейЗначенияСвойств.Отбор.Объект.Установить(ОбъектОтбораЗначений);
Попытка
НаборЗаписейЗначенияСвойств.Записать();
Сообщить("Успех!!!");
Исключение
#Если Клиент Тогда
Предупреждение("Не удалось записать значения свойств:" + Символы.ПС + ОписаниеОшибки());
#КонецЕсли
КонецПопытки;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Доп. реквизиты можно использовать в стандартных отчетах.