Как сделать условие выбора по сформированной таблице? #269242


#0 by Alexor
Всем, привет. Требуется выбрать реализацию товаров у которой себестоимость нулевая или не распределена по партиям. Данные хранятся в реистрах продажи и ПродажиСебестоимость. Вытащил данные, свел в таблицу. "Имеющие   ВложенныйЗапрос.СтоимостьСебестоимость=0" Не проходит. Перебирать запрос циклом не хочу. Как и какое условие воткнуть? Заранее спасибо! ВЫБРАТЬ    Продажи.Регистратор.Ссылка КАК Док,    ВложенныйЗапрос.СтоимостьСебестоимость
#1 by pho
Вот коммерческий отчет, один в один с Вашими задачами:
#2 by Oleg_A
А если выгрузить в таблицу значений и НайденнаяСтрока = Состав.Найти(ТекТовар, "Номенклатура");
#3 by Oleg_A
Только с нужным условием или использовать НайтиСтроки
#4 by Alexor
Не совсем понял. Условие ГДЕ в запросе сделано на момент теста. Ищем по всем товарам. Запрос работает как надо, но выдает все, хочу отсечь не нужное и вытащить, только где себестоимость =0.
#5 by Oleg_A
Неправильно понял вопрос. Перебирать запрос циклом не хочу То есть нужно полученный запросом результат фильтровать или хочется сразу задать условие в запросе и получить то что нужно?
#6 by Alexor
Да, именно так.
#7 by Oleg_A
Вообщето я спросил, так или так? а получил ответ "Да".)))) А запрос так не проще, хотя могу ошибаться ВЫБРАТЬ    Продажи.Регистратор.Ссылка КАК Док,    Продажи.Номенклатура.Ссылка
#8 by Oleg_A
условие ПродажиСебестоимость.Номенклатура = &Номенклатура
#9 by Alexor
Запрос не верен. Т.к. если себестоимость нет движений, то в отчет не попадет, даже если была реализация.
#10 by Oleg_A
А такой вариант? ВЫБРАТЬ    Продажи.Регистратор.Ссылка КАК Док,    Продажи.Номенклатура.Ссылка
#11 by Alexor
Задача. Найти реализацию с нулевой или не распределенной себестоимостью. Запрос в 0 работает и верно. Из него надо выделить только те строки где себестоимость =0. Можно конечно перебором в цикле, но это долго и не рационально. А как к запросу прикрутить это условие не соображу. Причем условие: Имеющие      ВложенныйЗапрос.СтоимостьСебестоимость<0 отрабатывает. а условие: Имеющие   НЕТ.
#12 by Oleg_A
Я просто не понимаю зачем вложенный запрос, если в ней обычный выбор из таблицы. ВТорой вариант запроса мне кажется правильным. Вот (ВЫБРАТЬ            ПродажиСебестоимость.Регистратор.Ссылка КАК РегистраторСебестоимость,
#13 by Oleg_A
Я наверное все таки не понимаю вопроса. Потому что условие выбрать суумы равные 0, очень простое.
#14 by Alexor
Не работает. Как выбрать суммы =0, если этих записей нет!
#15 by Oleg_A
Значит в обоих регистрах есть регистраторы, а записей нет?
#16 by Alexor
Предположим продали  товар 2 шт. себестоимость 200руб и 3 шт. себестоимости нет. Твой запрос не найдет нужные 3 шт, т.к. движений по регистру себестоимость НЕТ.
#17 by Alexor
Вот именно, что регистратора у себестоимости может и не быть. Вот этот момент мне и нужно вытащить.
#18 by Oleg_A
как в этом случае отрабатывает условие соединения ПО Продажи.Регистратор.Ссылка = ВложенныйЗапрос.РегистраторСебестоимость Если регистратора нет, а стоит "="
#19 by Alexor
выводит пустое значение. На то оно и левое соединение
#20 by Oleg_A
Если результат запрса полностью устраивает, то закинь первый запрос во вложенный и поставь нужное условие.
#21 by Alexor
Пытаюсь, но почему то не выводит. Если ставлю ГДЕ Запрос2.Стоимость2>0 То выводит, если = 0 то не выводит. NULL тоже пробовал Выбрать Запрос2.Док, Запрос2.Товар, Запрос2.Количество, Запрос2.Стоимость, Запрос2.Количество2, Запрос2.Стоимость2 ИЗ (ВЫБРАТЬ    Продажи.Регистратор.Ссылка КАК Док,
#22 by Oleg_A
А может вот так. Еасколько я понял, нужно получить те записи из регистра Продажи, по которым нет записей с такими же регистраторами в регистре ПродажиСебестоимость. Если так, то вот например. ВЫБРАТЬ ГДЕ    (НЕ Продажи.Регистратор В                (ВЫБРАТЬ                    Продажи.Регистратор.Ссылка КАК Док                ИЗ                    РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи
#23 by zalexey
у тебя по партиям списалось количество, а себестоимость там нулевая. Или по партиям не списался товар?
#24 by Alexor
Может быть и так и так. Надо поймать все. Пока выкрутился так добавил к запросу ИМЕЩИЕ естьnull(ВложенныйЗапрос.СтоимостьСебестоимость,"-")="-" РАБОТАЕТ пробовал ИМЕЩИЕ ВложенныйЗапрос.СтоимостьСебестоимость=NULL НЕРАБОТАЕТ
#25 by zalexey
#26 by zalexey
т.е. вот так: "ВЫБРАТЬ
#27 by zalexey
мля, тоже самое вставилось. вот :) "ВЫБРАТЬ |    ПродажиОбороты.Номенклатура, |    ПродажиОбороты.ХарактеристикаНоменклатуры,
#28 by Alexor
Вернее будет так: ИМЕЩИЕ
#29 by Alexor
Примерно так. Спасибо всем.
#30 by zalexey
в внутренн. соединение, юзай :)
#31 by VitaliySm
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С