Запрос из регистра возвращает значение для двух документов (ПриходнаяНакладная, РасходнаяНакладная) для каждого документа свое, как реализовать проверку соответствует ли значение документу? Параметры передаваемые в функцию с запросом:

```1c
    Функция ПолучитьСтатусДокумента1(РасходнаяНакладная,ПриходнаяНакладная) Экспорт
```

Для проверки одного документа работало

```1c
    РезультатЗапроса=Запрос.Выполнить();
    Выборка=РезультатЗапроса.Выбрать();

    ПОКА Выборка.Следующий() ЦИКЛ
    Если РасходнаяНакладная.Объект.Ссылка=Выборка.Документ Тогда
    Возврат Выборка.Статус;
    КонецЕсли;

    Если ПриходнаяНакладная.Объект.Ссылка = Выборка.Документ Тогда
    Возврат Выборка.Статус;
    КонецЕсли;
    КонецЦикла;
```

В регистре Документ это измерение тип(РасходнаяНакладная и ПриходнаяНакладная)
Статус значение которое необходимо получить в соответствии с документом

Для документа расходная накладная выдается такая ошибка: Значение не является значением объектного типа (Объект)
Если ПриходнаяНакладная.Объект.Ссылка = Выборка.Документ Тогда
Для документа приходной ошибка та же только Если РасходнаяНакладная.Объект...

В форму документа передавала параметры и двух документов и только одного, все равно ошибка

```1c
    ОбщийМодуль1.ПолучитьСтатусДокумента1(ЭтотОбъект,)
```
---
Так ВЫ все равно возращаете один единственный Статус. Если Вам надо получить Последний статус из пары Тогда

```1c
    Функция ПолучитьСтатусДокумента1(РасходнаяНакладная,ПриходнаяНакладная) Экспорт
    Запрос = Новый Запрос;
    Массив = Новый Массив;
    Массив.Добавить(РасходнаяНакладная);
    Массив.Добавить(ПриходнаяНакладная);

    Запрос.УстановитьПараметр("Дата",ТекущаяДата());
    Запрос.УстановитьПараметр("Документы",Массив);
    Запрос.Текст ="ВЫБРАТЬ Статус
    |ИЗ РегистрСведений.СтатусыДокументов.СрезПоследних(&Дата, Документ в (&Документы))";
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    Возврат Выборка.Стутус;
    КонецЕсли;
    Возврат Неопределено;
    КонецФункции
```
---
РасходнаяНакладная.Объект.Ссылка=Выборка.Документ
Если ТипЗнч(Выборка.Документ.Ссылка) = Тип("ДокументСсылка.РасходнаяНакладная") Тогда
............
КонецЕсли
---
Возвращает только одно значение для документов
---
А что такое ПриходнаяНакладная?. Не ну правильный ответ то в (2)
---
Приходная накладная это документ как и расходная накладная, в документах есть реквизит статус
Есть регистр сведений "Статусы документов"
измерение "документ"-тип составной (Приходная и расходная накладная)
Ресурс "статус"- запросом получаем значение ресурса и необходимо для каждого документа и приходной и расходной накладной заполнить реквизит "статус" значением ресурса "статус" из регистра
статус и в документе и в регистре имеет тип (перечисление ссылка)
---
Что такое РасходнаяНакладная.Объект? Вангую. реквизит составного типа. Может принимать Неопределено.
---
ПриходнаяНакладная.Объект.Ссылка обращение к документам
---
Я спросил, что такое ПриходнаяНакладная.Объект. Ссылка это уже наследственное. Какой типа у Вас Объект? Потому предположил, что составного. А составной тип по умолчанию Неопределено. Может быть достаточно
Если ПриходнаяНакладная.Объект = Выборка.Документ Тогда
---
та же ошибка
Значение не является значением объектного типа (Объект)
---
А функция может быть выглядеть так

```1c
    Функция ПолучитьСтатусДокумента1(Документ) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст = СтрШаблон("Выбрать Статус Из %1 Где Ссылка = &Документ", Документ.Метаданные().ПолноеИмя());
    Запрос.УстановитьПараметр("Документ", Документ);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    Возврат Выборка.Стутус;
    КонецЕсли;
    Возврат Неопределено;
    КонецФункции
```
---
Я сделала так,

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

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

    ПОКА Выборка.Следующий() ЦИКЛ
    Если РасходнаяНакладная.Объект=Выборка.Документ Тогда
    Возврат Выборка.Статус;
    //Иначе
    //Возврат (Перечисления.Статусы.ВРаботе);
    КонецЕсли;
    Если ПриходнаяНакладная.Объект = Выборка.Документ Тогда
    Возврат Выборка.Статус;
    КонецЕсли;

    КонецЦикла;

    КонецФункции
```
---
Я так понял, что Вам нужно получить последний статус документа? Запрос то всего

```1c
    ВЫБРАТЬ
    СтатусыДокументов.Статус КАК Статус
    РегистрСведений.СтатусыДокументов.СрезПоследних(&Дата, Документ = &Документ) КАК СтатусыДокументов
```
---
Только документ должен быть не одним
два документа Приходная и Расходная накладная
---
Так ВЫ все равно возращаете один единственный Статус. Если Вам надо получить Последний статус из пары Тогда

```1c
    Функция ПолучитьСтатусДокумента1(РасходнаяНакладная,ПриходнаяНакладная) Экспорт
    Запрос = Новый Запрос;
    Массив = Новый Массив;
    Массив.Добавить(РасходнаяНакладная);
    Массив.Добавить(ПриходнаяНакладная);

    Запрос.УстановитьПараметр("Дата",ТекущаяДата());
    Запрос.УстановитьПараметр("Документы",Массив);
    Запрос.Текст ="ВЫБРАТЬ Статус
    |ИЗ РегистрСведений.СтатусыДокументов.СрезПоследних(&Дата, Документ в (&Документы))";
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    Возврат Выборка.Стутус;
    КонецЕсли;
    Возврат Неопределено;
    КонецФункции
```
---
Так выдает ошибку
Неверные параметры
ИЗ РегистрСведений.СтатусыДокументов.СрезПоследних(&Дата,Документ в (<<?>>&Документы))
---
А Из формы вызываете
Статус = ОбщийМодуль1.ПолучитьСтатусДокумента1(Объект.Ссылка,)
---
А документ это измерение? Если ресурс то фильтр Документ в (<<?>>&Документы) из виртуальной таблицы в ГДЕ.
И Параметры Расходная и Приходная накладная должна быть ДокументСсылка
---
Документ это измерение
Вызвала (Объект.Ссылка) из формы и все работает. спасибо))
---
Я как-то тоже раз совершала ошибку