Добрый день. Начинающий программист. Подскажите пожалуйста, в чём может быть проблема. Есть запрос, мне нужно сделать так, чтобы когда я задавал параметр (число) он анализировал заданное значение и по запуску запроса в табличной части отображался результат где кол-во документов с нулевым оборотом >= "выставленного значения" (за указанный день). Если в качестве параметра я указываю 0 или 1, то выдаётся такой результат: Результат. Как я понимаю, за указанную дату по номенклатуре было проведено два возврата, то есть условие >= 0 или 1, работает. Но стоит мне изменить на 2 и выше, то результат пустой. Подскажите, где я совершил ошибку? Версия 8.3.
ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура,
СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот
ПОМЕСТИТЬ ЗапросПоНоменклатуре
ИЗ
РегистрНакопления.Продажи.Обороты(&Дата_Начала, &Дата_Окончания, Регистратор, ) КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Номенклатура
ИМЕЮЩИЕ
СУММА(ПродажиОбороты.КоличествоОборот) = 0
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПродажиОбороты.Регистратор КАК Регистратор
ПОМЕСТИТЬ ЗапросПоВозвратам
ИЗ
ЗапросПоНоменклатуре КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&Дата_Начала, &Дата_Окончания, Регистратор, ) КАК ПродажиОбороты
ПО ВТ.Номенклатура = ПродажиОбороты.Номенклатура
ГДЕ
ПродажиОбороты.КоличествоОборот < 0
И НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕНЬ) = &ДатаВозврата
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Регистратор
ИМЕЮЩИЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПродажиОбороты.Регистратор) >= &КоличествоВозвратов
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура,
ВозвратТоваровОтПокупателяТовары.ДокументПартии КАК Реализция,
ВозвратТоваровОтПокупателяТовары.Ссылка КАК Возврат,
ВозвратТоваровОтПокупателяТовары.Склад КАК СкладВозврата
ИЗ
Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары
ГДЕ
ВозвратТоваровОтПокупателяТовары.Ссылка В
(ВЫБРАТЬ
ЗапросПоВозвратам.Регистратор КАК Регистратор
ИЗ
ЗапросПоВозвратам КАК ЗапросПоВозвратам)
СГРУППИРОВАТЬ ПО
ВозвратТоваровОтПокупателяТовары.Номенклатура,
ВозвратТоваровОтПокупателяТовары.ДокументПартии,
ВозвратТоваровОтПокупателяТовары.Ссылка,
ВозвратТоваровОтПокупателяТовары.Склад
УПОРЯДОЧИТЬ ПО
Реализция УБЫВ,
Номенклатура
ИТОГИ
КОЛИЧЕСТВО(Реализция),
КОЛИЧЕСТВО(Возврат)
ПО
Номенклатура
АВТОУПОРЯДОЧИВАНИЕ
ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура,
СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот
ПОМЕСТИТЬ ЗапросПоНоменклатуре
ИЗ
РегистрНакопления.Продажи.Обороты(&Дата_Начала, &Дата_Окончания, Регистратор, ) КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Номенклатура
ИМЕЮЩИЕ
СУММА(ПродажиОбороты.КоличествоОборот) = 0
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПродажиОбороты.Регистратор КАК Регистратор
ПОМЕСТИТЬ ЗапросПоВозвратам
ИЗ
ЗапросПоНоменклатуре КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&Дата_Начала, &Дата_Окончания, Регистратор, ) КАК ПродажиОбороты
ПО ВТ.Номенклатура = ПродажиОбороты.Номенклатура
ГДЕ
ПродажиОбороты.КоличествоОборот < 0
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Регистратор
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ВозвратыЗаДату
ИЗ
Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары
ГДЕ
ВозвратТоваровОтПокупателяТовары.Ссылка В
(ВЫБРАТЬ
ЗапросПоВозвратам.Регистратор КАК Регистратор
ИЗ
ЗапросПоВозвратам КАК ЗапросПоВозвратам)
И НАЧАЛОПЕРИОДА(ВозвратТоваровОтПокупателяТовары.Ссылка.Дата, ДЕНЬ) = &ДатаВозврата
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура,
ЗначенияСвойствОбъектов.Значение КАК TOPGP
ПОМЕСТИТЬ ТЗНоменклатуры
ИЗ
Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ПО ВозвратТоваровОтПокупателяТовары.Номенклатура = ЗначенияСвойствОбъектов.Объект
ГДЕ
ВозвратТоваровОтПокупателяТовары.Ссылка В
(ВЫБРАТЬ
ЗапросПоВозвратам.Регистратор КАК Регистратор
ИЗ
ЗапросПоВозвратам КАК ЗапросПоВозвратам)
И ЗначенияСвойствОбъектов.Свойство.Код = "000000467"
СГРУППИРОВАТЬ ПО
ВозвратТоваровОтПокупателяТовары.Номенклатура,
ЗначенияСвойствОбъектов.Значение
ИМЕЮЩИЕ
КОЛИЧЕСТВО(ВозвратТоваровОтПокупателяТовары.Ссылка) >= ВЫБОР
КОГДА &КоличествоВозвратов = 0
ТОГДА 3
ИНАЧЕ &КоличествоВозвратов
КОНЕЦ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура,
ВозвратТоваровОтПокупателяТовары.ДокументПартии КАК Реализация,
ВозвратТоваровОтПокупателяТовары.Ссылка КАК Возврат,
ВозвратТоваровОтПокупателяТовары.Склад КАК Склад
ПОМЕСТИТЬ ПоследниеВозвраты
ИЗ
ВозвратыЗаДату КАК ВозвратыЗаДату
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары
ПО ВозвратыЗаДату.Номенклатура = ВозвратТоваровОтПокупателяТовары.Номенклатура
ГДЕ
ВозвратТоваровОтПокупателяТовары.Ссылка В
(ВЫБРАТЬ
ЗапросПоВозвратам.Регистратор КАК Регистратор
ИЗ
ЗапросПоВозвратам КАК ЗапросПоВозвратам)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ПоследниеВозвраты.Номенклатура КАК Номенклатура,
ТЗНоменклатуры.TOPGP КАК TOPGP,
ПоследниеВозвраты.Реализация КАК Реализация,
ПоследниеВозвраты.Возврат КАК Возврат,
ПоследниеВозвраты.Склад КАК Склад
ИЗ
ТЗНоменклатуры КАК ТЗНоменклатуры
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПоследниеВозвраты КАК ПоследниеВозвраты
ПО ТЗНоменклатуры.Номенклатура = ПоследниеВозвраты.Номенклатура
УПОРЯДОЧИТЬ ПО
Реализация УБЫВ,
Номенклатура
ИТОГИ
КОЛИЧЕСТВО(Реализация),
КОЛИЧЕСТВО(Возврат)
ПО
Номенклатура
АВТОУПОРЯДОЧИВАНИЕ
Хитро как то - Как я понимаю, первый запрос отбирает в ВТ номенклатуру которую за период продали и вернули поровну ... И потом от него пляшете - Зачем так ?
(4) В первом пакете получаю номенклатуру, у которой 0 оборот. Во втором пакете получаю документ возврата этой номенклатуры. В третьем получаю уже номенклатуру с её реализациями и документами возврата.
А мне нужно оставить только ту номенклатуру, у который за период было количество возвратов больше либо равно моего указанного значения.
Вот например мой результат: Результат. По итогам у номенклатуры 10 документов возврата. Значит она попадает в условие >= &значения. Но как это задать, я не знаю. Условие по ИТОГОМ вроде нельзя задавать.
(8) Немного не понимаю, как это поможет... Можете расписать?
Если что, вот оригинальный запрос, остальное мои попытки
ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура,
СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот
ПОМЕСТИТЬ ЗапросПоНоменклатуре
ИЗ
РегистрНакопления.Продажи.Обороты(&Дата_Начала, &Дата_Окончания, Регистратор, ) КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Номенклатура
ИМЕЮЩИЕ
СУММА(ПродажиОбороты.КоличествоОборот) = 0
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПродажиОбороты.Регистратор КАК Регистратор
ПОМЕСТИТЬ ЗапросПоВозвратам
ИЗ
ЗапросПоНоменклатуре КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&Дата_Начала, &Дата_Окончания, Регистратор, ) КАК ПродажиОбороты
ПО ВТ.Номенклатура = ПродажиОбороты.Номенклатура
ГДЕ
ПродажиОбороты.КоличествоОборот < 0
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Регистратор
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура,
ВозвратТоваровОтПокупателяТовары.ДокументПартии КАК Реализция,
ВозвратТоваровОтПокупателяТовары.Ссылка КАК Возврат
ИЗ
Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары
ГДЕ
ВозвратТоваровОтПокупателяТовары.Ссылка В
(ВЫБРАТЬ
ЗапросПоВозвратам.Регистратор КАК Регистратор
ИЗ
ЗапросПоВозвратам КАК ЗапросПоВозвратам)
УПОРЯДОЧИТЬ ПО
Реализция УБЫВ,
Номенклатура
ИТОГИ
КОЛИЧЕСТВО(Реализция),
КОЛИЧЕСТВО(Возврат)
ПО
Номенклатура
АВТОУПОРЯДОЧИВАНИЕ
(10) Лучше работать с оригинальным запрос, возможно от него будет проще отталкиваться. Дата начала и окончание это произвольный период, например 01.01.2019 по 01.01.2020
(14) Оригинальный запрос вообще же ничего не фильтрует, просто список возвратов ... Сделайте список ВозвратТоваровОтПокупателяТовары.ДокументПартии, сами возврат , пофильтруйте как мечталось по количеству, потом добавьте по номенклатуре ....
Нельзя просто нарисовать табличку , сколько было продано товара , сколько вернулось и посчитать количество документов возврата? Как связываете продажу и возврат, по какому полю?
ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура,
СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот
ПОМЕСТИТЬ ЗапросПоНоменклатуре
ИЗ
РегистрНакопления.Продажи.Обороты(&Дата_Начала, &Дата_Окончания, Регистратор, ) КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Номенклатура
ИМЕЮЩИЕ
СУММА(ПродажиОбороты.КоличествоОборот) = 0
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПродажиОбороты.Регистратор КАК Регистратор
ПОМЕСТИТЬ ЗапросПоВозвратам
ИЗ
ЗапросПоНоменклатуре КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&Дата_Начала, &Дата_Окончания, Регистратор, ) КАК ПродажиОбороты
ПО ВТ.Номенклатура = ПродажиОбороты.Номенклатура
ГДЕ
ПродажиОбороты.КоличествоОборот < 0
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Регистратор
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ВозвратыЗаДату
ИЗ
Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары
ГДЕ
ВозвратТоваровОтПокупателяТовары.Ссылка В
(ВЫБРАТЬ
ЗапросПоВозвратам.Регистратор КАК Регистратор
ИЗ
ЗапросПоВозвратам КАК ЗапросПоВозвратам)
И НАЧАЛОПЕРИОДА(ВозвратТоваровОтПокупателяТовары.Ссылка.Дата, ДЕНЬ) = &ДатаВозврата
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура,
ЗначенияСвойствОбъектов.Значение КАК TOPGP
ПОМЕСТИТЬ ТЗНоменклатуры
ИЗ
Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ПО ВозвратТоваровОтПокупателяТовары.Номенклатура = ЗначенияСвойствОбъектов.Объект
ГДЕ
ВозвратТоваровОтПокупателяТовары.Ссылка В
(ВЫБРАТЬ
ЗапросПоВозвратам.Регистратор КАК Регистратор
ИЗ
ЗапросПоВозвратам КАК ЗапросПоВозвратам)
И ЗначенияСвойствОбъектов.Свойство.Код = "000000467"
СГРУППИРОВАТЬ ПО
ВозвратТоваровОтПокупателяТовары.Номенклатура,
ЗначенияСвойствОбъектов.Значение
ИМЕЮЩИЕ
КОЛИЧЕСТВО(ВозвратТоваровОтПокупателяТовары.Ссылка) >= ВЫБОР
КОГДА &КоличествоВозвратов = 0
ТОГДА 3
ИНАЧЕ &КоличествоВозвратов
КОНЕЦ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура,
ВозвратТоваровОтПокупателяТовары.ДокументПартии КАК Реализация,
ВозвратТоваровОтПокупателяТовары.Ссылка КАК Возврат,
ВозвратТоваровОтПокупателяТовары.Склад КАК Склад
ПОМЕСТИТЬ ПоследниеВозвраты
ИЗ
ВозвратыЗаДату КАК ВозвратыЗаДату
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары
ПО ВозвратыЗаДату.Номенклатура = ВозвратТоваровОтПокупателяТовары.Номенклатура
ГДЕ
ВозвратТоваровОтПокупателяТовары.Ссылка В
(ВЫБРАТЬ
ЗапросПоВозвратам.Регистратор КАК Регистратор
ИЗ
ЗапросПоВозвратам КАК ЗапросПоВозвратам)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ПоследниеВозвраты.Номенклатура КАК Номенклатура,
ТЗНоменклатуры.TOPGP КАК TOPGP,
ПоследниеВозвраты.Реализация КАК Реализация,
ПоследниеВозвраты.Возврат КАК Возврат,
ПоследниеВозвраты.Склад КАК Склад
ИЗ
ТЗНоменклатуры КАК ТЗНоменклатуры
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПоследниеВозвраты КАК ПоследниеВозвраты
ПО ТЗНоменклатуры.Номенклатура = ПоследниеВозвраты.Номенклатура
УПОРЯДОЧИТЬ ПО
Реализация УБЫВ,
Номенклатура
ИТОГИ
КОЛИЧЕСТВО(Реализация),
КОЛИЧЕСТВО(Возврат)
ПО
Номенклатура
АВТОУПОРЯДОЧИВАНИЕ