Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 дек 2023, 05:22

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

Автор gulnyr, 01 июн 2023, 16:50

0 Пользователей и 1 гость просматривают эту тему.

gulnyr

Есть 2 запроса:

Запрос 1:

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

ЗапросОстаткиТоваровКомпании = Запрос.Выполнить().Выбрать();

Пока ЗапросОстаткиТоваровКомпании.Следующий() Цикл


КонецЦикла;




Запрос 2:

Запрос = Новый Запрос();

Запрос.Текст="
|Выбрать РезервированиеЗаказовПокупателя.Ссылка КАК Ссылка,
|РезервированиеЗаказовПокупателя.Номенклатура КАК Номенклатура,
|РезервированиеЗаказовПокупателя.Количество КАК Количество,
|РезервированиеЗаказовПокупателя.МестоРазмещения КАК МестоРазмещения,
|РезервированиеЗаказовПокупателя.ЗаказПокупателя КАК ЗаказПокупателя
|Из Документ.РезервированиеЗаказовПокупателя.Товары Как РезервированиеЗаказовПокупателя
|ГДЕ РезервированиеЗаказовПокупателя.Ссылка.Номер=&Номер";                                                     

Запрос.УстановитьПараметр("Номер","ВС00000062");

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

Пока ЗапросРезервированиеЗаказовПокупателя.Следующий() Цикл 

ОбъектРезерв = ЗапросРезервированиеЗаказовПокупателя.Ссылка.ПолучитьОбъект();

СтрокаСоставаРезервирования = ОбъектРезерв.Товары.Добавить();
СтрокаСоставаРезервирования.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(ЗапросОстаткиТоваровКомпании.Номенклатура);
СтрокаСоставаРезервирования.ЗаказПокупателя = Документы.ЗаказПокупателя.НайтиПоНомеру("ВС00005988");
СтрокаСоставаРезервирования.Количество = ЗапросОстаткиТоваровКомпании.Резерв;
СтрокаСоставаРезервирования.МестоРазмещения = Справочники.СкладыКомпании.НайтиПоНаименованию("Основной склад компании");

ОбъектРезерв.Записать();

КонецЦикла;

Переделал их так:

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

ЗапросОстаткиТоваровКомпании = Запрос.Выполнить().Выбрать();

Пока ЗапросОстаткиТоваровКомпании.Следующий() Цикл



Запрос = Новый Запрос();

Запрос.Текст="
|Выбрать РезервированиеЗаказовПокупателя.Ссылка КАК Ссылка,
|РезервированиеЗаказовПокупателя.Номенклатура КАК Номенклатура,
|РезервированиеЗаказовПокупателя.Количество КАК Количество,
|РезервированиеЗаказовПокупателя.МестоРазмещения КАК МестоРазмещения,
|РезервированиеЗаказовПокупателя.ЗаказПокупателя КАК ЗаказПокупателя
|Из Документ.РезервированиеЗаказовПокупателя.Товары Как РезервированиеЗаказовПокупателя
|ГДЕ РезервированиеЗаказовПокупателя.Ссылка.Номер=&Номер";                                                     

Запрос.УстановитьПараметр("Номер","ВС00000062");

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

Пока ЗапросРезервированиеЗаказовПокупателя.Следующий() Цикл 

ОбъектРезерв = ЗапросРезервированиеЗаказовПокупателя.Ссылка.ПолучитьОбъект();

СтрокаСоставаРезервирования = ОбъектРезерв.Товары.Добавить();
СтрокаСоставаРезервирования.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(ЗапросОстаткиТоваровКомпании.Номенклатура);
СтрокаСоставаРезервирования.ЗаказПокупателя = Документы.ЗаказПокупателя.НайтиПоНомеру("ВС00005988");
СтрокаСоставаРезервирования.Количество = ЗапросОстаткиТоваровКомпании.Резерв;
СтрокаСоставаРезервирования.МестоРазмещения = Справочники.СкладыКомпании.НайтиПоНаименованию("Основной склад компании");

ОбъектРезерв.Записать();

КонецЦикла;



КонецЦикла;



Нужно чтобы значении первого запроса подставлялись в нужное место второго запроса. Как его правильно реализовать?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск