Как в 1С программно выбрать Инв. № с конкретным номером организации, в инвентаризации ОС?
Когда переходим в конкретную организацию, то получаем конкретный список инвентаризаций:
Для получения Инв. № написал такой код:
&НаСервере
Процедура ИнвентарьОсновныхСредств()
ЗапросН = Новый запрос;
ЗапросН.Текст =
"ВЫБРАТЬ
| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер
|ИЗ
| РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних";
РезультатЗапросаН = ЗапросН.Выполнить();
ВыборкаДокументовН = РезультатЗапросаН.Выбрать();
Пока ВыборкаДокументовН.Следующий() Цикл
ДокН = ВыборкаДокументовН.ИнвентарныйНомер;
Сообщить(ДокН);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Команда1(Команда)
ИнвентарьОсновныхСредств();
КонецПроцедуры
Здесь мы получаем все Инв. №.
Как сделать так, чтобы выбрать по номеру организации (5563) + по номеру инвентаризации (1158)?
Ответы (1 шт):
Вам необходимо добавить отбор по заданным параметрам. Также, когда выполняете "срез последних", лучше указывать дату, на которую выполняется срез. Если у регистра регистратором выступает документ "ИнвентаризацияОС", то подойдет следующий код под ваши условия:
ВЫБРАТЬ
| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер
|ИЗ
| РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
|ГДЕ
| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Организация.Код = &Код
| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Регистратор.Номер = &Номер
Но использование в запросах номеров и кодов "bed practice", кроме отдельных специфичных случаев. Лучше использовать ссылки на объекты, либо сужать выборку дополнительными условиями.
