По конкретному номеру инвентаризации выводятся все результаты вместо одной, как исправить?

Написал такой код:

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


Запрос.УстановитьПараметр(
    "ПодразделениеОрганизации",
    Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("ПринтерыИКО")
);

Запрос.УстановитьПараметр(
"ИнвентарныйНомер",
"1357"
);

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

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

Пока ВыборкаДокументов.Следующий() Цикл        
    Док = ВыборкаДокументов.Ссылка.ПолучитьОбъект();
    Для каждого Стр из Док.ОС Цикл
        Сообщить(Стр.ОсновноеСредство);
    КонецЦикла;
КонецЦикла;    
КонецПроцедуры

Здесь мы выбираем конкретную организацию: ПринтерыИКО и конкретный инвентарный номер: 1357. В результате выводятся все результаты, которые касаются организации ПринтерыИКО.

Как сделать так, чтобы вывелся только позиция по инвентарному номеру: 1357?

P.S. Инвентарный номер находится здесь: РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПервых


Ответы (1 шт):

Автор решения: kio

У вас в запросе нет связи по Основному средству. Поэтому и выводит все что попало в выборку. Используйте соединения(аналог JOIN из SQL). Также в запросе обращайтесь к табличной части документа, где содержится ОС

Пример:

ВЫБРАТЬ
 |ИнвентаризацияОС.Ссылка КАК Ссылка,
 |ИнвентаризацияОС.Ссылка.Номер КАК Номер,
 |ИнвентаризацияОС.Ссылка.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
 |РегСведПерв.ИнвентарныйНомер КАК ИнвентарныйНомер
|ИЗ
   |Документ.ИнвентаризацияОС.ОС КАК ИнвентаризацияОС,
     |ВНУТРЕННУУ СОЕДИНЕНИЕ РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПервых КАК РегСведПерв
     |ПО ИнвентаризацияОС.ОсновноеСредство = РегСведПерв.ОсновноеСредство
|ГДЕ
 |ИнвентаризацияОС.Ссылка.ПодразделениеОрганизации = &ПодразделениеОрганизации
 |И РегСведПерв.ИнвентарныйНомер = &ИнвентарныйНомер

Возможно для вашего варианта необходимо будет что то подправить. Но главное, работайте не с документом ИнвентаризацияОС а с его табличной частью.

Пример обработки результата запроса:

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

Пока ВыборкаДокументов.Следующий() Цикл        
    Сообщить("Инв. номер: " + ВыборкаДокументов.ИнвентарныйНомер);
КонецЦикла;
→ Ссылка