Доброе время суток. Конфигурация УТ. Хочу получить остаток по регистрам "Партии" и "Заказы", - цель: получить итоговое количество товара необходимого для закупки (заказано ХХ на складе УУ , докупить ХХ-УУ) Проблема в получении остатков по нескольким складам
Запрос.Текст = "ВЫБРАТЬ | ЗаказыПокупателейОстатки.Номенклатура КАК Номенклатура, | ЗаказыПокупателейОстатки.КоличествоОстаток КАК Отгрузить, | ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток, | ЗаказыПокупателейОстатки.Номенклатура.ОсновнойПоставщик КАК ОсновнойПоставщик, | СУММА(ЗаказыПокупателейОстатки.КоличествоОстаток) - ЕСТЬNULL(СУММА(ПартииТоваровНаСкладахОстатки.КоличествоОстаток), 0) КАК Докупить, | ЗаказыПокупателейОстатки.Номенклатура.Наименование КАК НоменклатураНаименование |ИЗ | РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки( | , Склад в (&Склады)) КАК ПартииТоваровНаСкладахОстатки | ПО ЗаказыПокупателейОстатки.Номенклатура = ПартииТоваровНаСкладахОстатки.Номенклатура |ГДЕ | ЗаказыПокупателейОстатки.ЗаказПокупателя = &ЗаказПокупателя | |СГРУППИРОВАТЬ ПО | ЗаказыПокупателейОстатки.Номенклатура.ОсновнойПоставщик, | ЗаказыПокупателейОстатки.Номенклатура, | ЗаказыПокупателейОстатки.ЗаказПокупателя, | ЗаказыПокупателейОстатки.КоличествоОстаток, | ПартииТоваровНаСкладахОстатки.Номенклатура, | ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.КоличествоОстаток, 0), | ЗаказыПокупателейОстатки.Номенклатура.Наименование | |ИМЕЮЩИЕ | СУММА(ЗаказыПокупателейОстатки.КоличествоОстаток) - ЕСТЬNULL(СУММА(ПартииТоваровНаСкладахОстатки.КоличествоОстаток),0) > 0 | |УПОРЯДОЧИТЬ ПО | ОсновнойПоставщик, | НоменклатураНаименование |ИТОГИ | СУММА(Отгрузить), | СУММА(Остаток) |ПО | ОсновнойПоставщик";
Запрос.УстановитьПараметр("ЗаказПокупателя",ЗаказПокупателя); // в последующем здесь будет список заказов, которые будем анализировать Запрос.УстановитьПараметр("Склады",Склады); // Склады - список значений
В этом случае получаем остатки по всем складам, хотя в список значений добавлено только 2 склада Если поставить условие
|ГДЕ | ЗаказыПокупателейОстатки.ЗаказПокупателя = &ЗаказПокупателя | И Склад = &Склад1 ИЛИ Склад = &Склад2
то запрос не выводит товары которых нет в остатках на складе, даже если они заказаны
Спасибо, попробую. Я так понимаю все будет в одном запросе, но конструкция будет выглядеть как-то так:
"ВЫБРАТЬ | ЗаказыПокупателейОстатки.Номенклатура КАК Номенклатура, | ЗаказыПокупателейОстатки.КоличествоОстаток КАК Отгрузить, .......
|ЛЕВОЕ СОЕДИНЕНИЕ
|ВЫБРАТЬ РегистрНакопления.ПартииТоваровНаСкладах.Остатки( | , Склад в (&Склады)) КАК ПартииТоваровНаСкладахОстатки | ПО ЗаказыПокупателейОстатки.Номенклатура = ПартииТоваровНаСкладахОстатки.Номенклатура
!
Ознакомьтесь с правилами форума, п.12 в частности. Следующие сообщения оформленные не по правилам будут удалятся.
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказыПокупателейОстатки.Номенклатура, | ЗаказыПокупателейОстатки.КоличествоОстаток, | ЗаказыПокупателейОстатки.Номенклатура.ОсновнойПоставщик КАК НоменклатураОсновнойПоставщик |ИЗ | РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки |ГДЕ | ЗаказыПокупателейОстатки.ЗаказПокупателя = &ЗаказПокупателя | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | ПартииТоваровНаСкладахОстатки.Номенклатура КАК Номенклатура, | ПартииТоваровНаСкладахОстатки.КоличествоОстаток, | ПартииТоваровНаСкладахОстатки.Номенклатура.ОсновнойПоставщик КАК НоменклатураОсновнойПоставщик |ИЗ | РегистрНакопления.ПартииТоваровНаСкладах.Остатки( | , Склад в (&Склады)) КАК ПартииТоваровНаСкладахОстатки | |УПОРЯДОЧИТЬ ПО | НоменклатураОсновнойПоставщик, | Номенклатура";
Запрос.УстановитьПараметр("ЗаказПокупателя",ЗаказПокупателя); Запрос.УстановитьПараметр("Склады",Склады); // Склады - список значений
НО, Берутся все остаки и почему-то по ВСЕМ складам Интересуют только те товары, которые не были еще отгружены клиенту. (остаток по регистру "ЗаказыПокупателей")
Может сделать 2 разных запроса, выгрузить их в ТЗ-шки и по первой смотреть остаток из второй на складе? (просто одним запросом почему-то никак не получается )
УРА, получилось!!! Кому интересно - вот текст запроса
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказыПокупателейОстатки.Номенклатура КАК Номенклатура, | ЗаказыПокупателейОстатки.КоличествоОстаток КАК Отгрузить, | ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток, | ЗаказыПокупателейОстатки.Номенклатура.ОсновнойПоставщик КАК ОсновнойПоставщик, | СУММА(ЗаказыПокупателейОстатки.КоличествоОстаток) - ЕСТЬNULL(СУММА(ПартииТоваровНаСкладахОстатки.КоличествоОстаток), 0) КАК Докупить, | ЗаказыПокупателейОстатки.Номенклатура.Наименование КАК НоменклатураНаименование |ИЗ | РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки( | , Склад в (&Склады)) КАК ПартииТоваровНаСкладахОстатки | ПО ЗаказыПокупателейОстатки.Номенклатура = ПартииТоваровНаСкладахОстатки.Номенклатура |ГДЕ | ЗаказыПокупателейОстатки.ЗаказПокупателя = &ЗаказПокупателя | |СГРУППИРОВАТЬ ПО | ЗаказыПокупателейОстатки.Номенклатура.ОсновнойПоставщик, | ЗаказыПокупателейОстатки.Номенклатура, | ЗаказыПокупателейОстатки.ЗаказПокупателя, | ЗаказыПокупателейОстатки.КоличествоОстаток, | ПартииТоваровНаСкладахОстатки.Номенклатура, | ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.КоличествоОстаток, 0), | ЗаказыПокупателейОстатки.Номенклатура.Наименование | |ИМЕЮЩИЕ | СУММА(ЗаказыПокупателейОстатки.КоличествоОстаток) - ЕСТЬNULL(СУММА(ПартииТоваровНаСкладахОстатки.КоличествоОстаток),0) > 0 | |УПОРЯДОЧИТЬ ПО | ОсновнойПоставщик, | НоменклатураНаименование |ИТОГИ | СУММА(Отгрузить), | СУММА(Остаток) |ПО | ОсновнойПоставщик";
Запрос.УстановитьПараметр("ЗаказПокупателя",ЗаказПокупателя); // в дальнейшем список ранее отобранныхзаказов Запрос.УстановитьПараметр("Склады",Склады); // Склады - список значений
Только нужно обращать внимание на то, что в запросе остаток берется из регистра "Партии", а не "Остатки" Вот это меня и сбило при проверке правильности формирования запроса
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!