Как в 1С программно выбрать Инв. № с конкретным номером организации, в инвентаризации ОС?

Когда переходим в конкретную организацию, то получаем конкретный список инвентаризаций:

введите сюда описание изображения

Для получения Инв. № написал такой код:

&НаСервере
Процедура ИнвентарьОсновныхСредств()

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

Пока ВыборкаДокументовН.Следующий() Цикл
    
ДокН = ВыборкаДокументовН.ИнвентарныйНомер;    

Сообщить(ДокН);

КонецЦикла;
    
КонецПроцедуры


&НаКлиенте
Процедура Команда1(Команда)

ИнвентарьОсновныхСредств();    
    
КонецПроцедуры

Здесь мы получаем все Инв. №.

Как сделать так, чтобы выбрать по номеру организации (5563) + по номеру инвентаризации (1158)?


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

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

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

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

Но использование в запросах номеров и кодов "bed practice", кроме отдельных специфичных случаев. Лучше использовать ссылки на объекты, либо сужать выборку дополнительными условиями.

→ Ссылка