Дополнительные реквизиты справочника

Версия для печатиPDF-версия

Платформа:

Вот этот код выкидывает ошибку(
 
&НаСервере
Процедура СформироватьНаСервере()
        Склад = Справочники.Склады;
        Выборка = Склад.Выбрать();
        Пока Выборка.Следующий() Цикл
                НужныйРеквизит = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("КодСклада (Склад (складская территория))");
                Предмет      = Выборка.ПолучитьОбъект();
                КодСкладаСтр = Предмет.ДополнительныеРеквизиты.Найти(НужныйРеквизит).Значение;
                Сообщить(КодСкладаСтр + "; " + Предмет.Наименование + "; ");   
        КонецЦикла;
 
КонецПроцедуры
 
&НаКлиенте
Процедура Сформировать(Команда)
        СформироватьНаСервере();
КонецПроцедуры

КодСкладаСтр = Предмет.ДополнительныеРеквизиты.Найти(Предмет,НужныйРеквизит).Значение;

Вот так тоже не помогло(

Вообщем - если вдруг кому-то понадобится, разобрался сам:

Функция ПолучитьЗначениеДопРеквизита(Ссылка, Свойство) 
 
    ПараметрыОтбора = Новый Структура;
    ПараметрыОтбора.Вставить("Свойство",Свойство);
    Массив = Ссылка.ДополнительныеРеквизиты.НайтиСтроки(ПараметрыОтбора);
 
    Если Массив.Количество() = 0 Тогда
        Возврат Неопределено;
    Иначе
        Возврат Массив[0].Значение;
    КонецЕсли;
 
КонецФункции
 
&НаСервере
Процедура СформироватьНаСервере()
Склад = Справочники.Склады;
Выборка = Склад.Выбрать();
Пока Выборка.Следующий() Цикл
Предмет      = Выборка.ПолучитьОбъект();
НужныйРеквизит = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Код склада (Склад (складская территория))");
КодСкладаСтр = ПолучитьЗначениеДопРеквизита(Предмет,НужныйРеквизит);
Попытка
Сообщить(КодСкладаСтр + "; " + Предмет.Наименование + "; ");   
Исключение
Сообщить("Для склада " + Предмет.Наименование + " не задан краткий код!");
КонецПопытки;
КонецЦикла;
// Вставить содержимое обработчика.
КонецПроцедуры
 
&НаКлиенте
Процедура Сформировать(Команда)
        СформироватьНаСервере();
КонецПроцедуры
 
Втрой вариант - тоже правильный
 
&НаСервере
Процедура СформироватьНаСервере()
запрос=новый запрос("ВЫБРАТЬ
| СкладыДополнительныеРеквизиты.Ссылка КАК Ссылка,
| СкладыДополнительныеРеквизиты.Значение КАК Значение
|ИЗ
| Справочник.Склады.ДополнительныеРеквизиты КАК СкладыДополнительныеРеквизиты
|ГДЕ
| СкладыДополнительныеРеквизиты.Свойство = &Свойство");
запрос.УстановитьПараметр("Свойство",ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Код склада (Склад (складская территория))"));
выборка=запрос.Выполнить().Выбрать();
пока выборка.Следующий() цикл
сообщить(выборка.значение);
КонецЦикла;
 
КонецПроцедуры
 
&НаКлиенте
Процедура Сформировать(Команда)
СформироватьНаСервере();
КонецПроцедуры