//У составного поля набор реквизитов
//зависит от того, что в нём лежит, и
//обратиться к реквизиту напрямую нельзя.
//Сначала ВЫРАЗИТЬ приводит значение
//к одному типу, и только потом берут поле
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Движения.Регистратор КАК Документ,
| ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(
| Движения.Регистратор) =
| ТИП(Документ.ПриходнаяНакладная)
| ТОГДА ВЫРАЗИТЬ(
| Движения.Регистратор
| КАК Документ.ПриходнаяНакладная
| ).Склад
| ИНАЧЕ NULL
| КОНЕЦ КАК Склад
|ИЗ
| РегистрНакопления.ОстаткиМатериалов
| КАК Движения";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Склад);
КонецЦикла;
//Проверка типа перед ВЫРАЗИТЬ не
//обязательна: значение чужого типа
//приведение превращает в NULL. Но с
//проверкой видно, что NULL получился
//намеренно, а не по недосмотру