Добрый день!

Есть внешняя форма "Счет на оплату покупателю", требуется из дополнительных сведений, пуcть у нас там будет добавлен параметр "Куратор", получить это значение в печатной форме.

Раньше в 2.0 работал такой код:

```1c
    //Вытаскиваем дополнительный реквизит "Куратор"
    МенеджерЗаписиРегистра = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
    МенеджерЗаписиРегистра.Объект = СсылкаНаОбъект;
    МенеджерЗаписиРегистра.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Куратор");
    МенеджерЗаписиРегистра.Прочитать();
    Если МенеджерЗаписиРегистра.Выбран()
    Тогда КураторНаПечать = МенеджерЗаписиРегистра.Значение;
    КонецЕсли
```

Тут же он не работает, подскажите как организовать?
---
Упустил, что план видов характеристик "Свойства объектов" тоже нет
Исправленный код

```1c
    МенеджерЗаписиРегистра = РегистрыСведений.ДополнительныеСведения.СоздатьМенеджерЗаписи();
    МенеджерЗаписиРегистра.Объект = СсылкаНаОбъект;
    МенеджерЗаписиРегистра.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Куратор");
    МенеджерЗаписиРегистра.Прочитать();
    Если МенеджерЗаписиРегистра.Выбран()
    Тогда КураторНаПечать = МенеджерЗаписиРегистра.Значение;
    КонецЕсли
```
---
Исправил код из (1)

```1c
    МенеджерЗаписиРегистра = РегистрыСведений.ДополнительныеСведения.СоздатьМенеджерЗаписи();
    МенеджерЗаписиРегистра.Объект = СсылкаНаОбъект;
    МенеджерЗаписиРегистра.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Куратор");
    МенеджерЗаписиРегистра.Прочитать();
    Если МенеджерЗаписиРегистра.Выбран()
    Тогда КураторНаПечать = МенеджерЗаписиРегистра.Значение;
    КонецЕсли
```
---
BAPBAP, попробовал 2 вариант кода, ошибка та же.
---
речь о БП 3.0 идет?
---
Ой да извиняюсь, не указал БП 3.0
---
попробуйте такой код

```1c
    НаборЗаписей = РегистрыСведений.ДополнительныеСведения.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Объект.Установить(Объект);
    НаборЗаписей.Отбор.Свойство.Установить(Свойство);
    НаборЗаписей.Прочитать();
```
---
BAPBAP,
```1c
    ВнешняяОбработка.ВПФ_СчетНаОплатуПокупателю.МодульОбъекта(378,40)}: Переменная не определена (Объект)
    НаборЗаписей.Отбор.Объект.Установить(<<?>>Объект); (Проверка: Сервер)
    {ВнешняяОбработка.ВПФ_СчетНаОплатуПокупателю.МодульОбъекта(379,42)}: Переменная не определена (Свойство)
    НаборЗаписей.Отбор.Свойство.Установить(<<?>>Свойство); (Проверка: Сервер)
```
---
Вместо "объект" напишите "СсылкаНаОбъект". Вместо "Свойство" напишите "ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Куратор")"
Объект и Свойство я указал образно. Вы должны указать свои значения
---
Вписал такой код, при запуске обработки выдает "Поле объекта не обнаружено(Свойства объектов)" (

```1c
    ТекДок = МассивОбъектов[0]; //Ссылка на документ для которой формируем печатную форму
    НаборЗаписей = РегистрыСведений.ДополнительныеСведения.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Объект.Установить(ТекДок); НаборЗаписей.Отбор.Свойство.Установить(ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Куратор"));
    НаборЗаписей.Прочитать();
```
---
Упустил, что план видов характеристик "Свойства объектов" тоже нет
Исправленный код

```1c
    МенеджерЗаписиРегистра = РегистрыСведений.ДополнительныеСведения.СоздатьМенеджерЗаписи();
    МенеджерЗаписиРегистра.Объект = СсылкаНаОбъект;
    МенеджерЗаписиРегистра.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Куратор");
    МенеджерЗаписиРегистра.Прочитать();
    Если МенеджерЗаписиРегистра.Выбран()
    Тогда КураторНаПечать = МенеджерЗаписиРегистра.Значение;
    КонецЕсли
```
---
BAPBAP, спасибо, то что нужно, работает ))))
---
Давно уже надо было переходить на запросы, а не использовать объектную модель.

 Запрос = Новый Запрос;
 Запрос.Текст =
  "ВЫБРАТЬ
  | ДополнительныеСведения.Значение
  |ИЗ
  | РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
  |ГДЕ
  | ДополнительныеСведения.Объект = &Документ
  | И ДополнительныеСведения.Свойство = &Свойство";

 Запрос.УстановитьПараметр("Документ", СсылкаНаДокумент);
 Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Куратор"));
 Выборка = Запрос.Выполнить().Выбрать();
 Если Выборка.Следующий() Тогда
  Сообщить(Выборка.Значение);
 КонецЕсли;
---
Vextel, Спасибо, пусть будет альтернативным решением )
---
в функцию передаешь ссылку(объект) и Свойство(Значение ПВХ)

```1c
    Функция ПолучитьЗначениеСвойстваОбъектов(Объект, Свойство) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ДополнительныеСведения.Значение
    |ИЗ
    | РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
    |ГДЕ
    | ДополнительныеСведения.Объект = &Объект
    | И ДополнительныеСведения.Свойство = &Свойство";
    Запрос.УстановитьПараметр("Объект",Объект);
    Запрос.УстановитьПараметр("Свойство",Свойство);

    Выборка = Запрос.Выполнить().Выбрать();

    Если Выборка.Следующий() Тогда
    Если ЗначениеЗаполнено(Выборка.Значение) Тогда
    Возврат Выборка.Значение;
    Иначе
    Возврат Неопределено;
    КонецЕсли;
    Иначе
    Возврат Неопределено;
    КонецЕсли;
    КонецФункции
```