![]() |
![]() |
![]() |
|
|
| ||
almaz102 30.07.19 - 12:42 | Ребята добрый день! Помогите пож-та разобраться с запросом. Задача такая: Нужно получить из справочника номенклатура те позиции которые с нулевыми остатками на конец периода (&ДатаОкончания) и нет по ним движений в разрезе периода. Высылаю текст запроса, что я делаю ни так?
ВЫБРАТЬ РАЗЛИЧНЫЕ ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры ПОМЕСТИТЬ ВТДвижения ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Регистратор, , Номенклатура В ИЕРАРХИИ (&ГруппаНоменклатуры)) КАК ТоварыНаСкладахОстаткиИОбороты ГДЕ ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток = 0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ спрНоменклатура.Ссылка КАК Номенклатура, ХарактеристикиНоменклатуры.Ссылка КАК Ссылка ИЗ Справочник.Номенклатура КАК спрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры ПО спрНоменклатура.Ссылка = ХарактеристикиНоменклатуры.Владелец ГДЕ НЕ спрНоменклатура.ЭтоГруппа И НЕ спрНоменклатура.ПометкаУдаления И НЕ (спрНоменклатура.Ссылка, ХарактеристикиНоменклатуры.Ссылка) В (ВЫБРАТЬ ВТДвижения.Номенклатура, ВТДвижения.ХарактеристикаНоменклатуры ИЗ ВТДвижения КАК ВТДвижения) И спрНоменклатура.Ссылка В ИЕРАРХИИ(&ГруппаНоменклатуры) СГРУППИРОВАТЬ ПО спрНоменклатура.Ссылка, ХарактеристикиНоменклатуры.Ссылка | ||
palsergeich 1 - 30.07.19 - 12:44 | |||
palsergeich 2 - 30.07.19 - 12:45 | И условие isNull(Количество,0) | ||
palsergeich 3 - 30.07.19 - 12:47 | И условие isNull(Количество,0) = 0 Требует промежуточного соединения, если нужно в разрезе характеристик. | ||
catena 4 - 30.07.19 - 12:50 | Условие на конечный остаток лишнее в первой таблице. | ||
1Сергей 5 - 30.07.19 - 12:51 | Левое соединени и Есть NULL | ||
almaz102 6 - 30.07.19 - 13:06 | ВЫБРАТЬ РАЗЛИЧНЫЕ ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстаткиИОбороты.Характеристика КАК Характеристика, ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, 0) КАК Остаток ПОМЕСТИТЬ ВТДвижения ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Регистратор, , Номенклатура В ИЕРАРХИИ (&ГруппаНоменклатуры)) КАК ТоварыНаСкладахОстаткиИОбороты ГДЕ ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, 0) = 0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ спрНоменклатура.Ссылка КАК Номенклатура, ХарактеристикиНоменклатуры.Ссылка КАК Характеристика ПОМЕСТИТЬ ВТ_Номенклатура ИЗ Справочник.Номенклатура КАК спрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры ПО спрНоменклатура.Ссылка = ХарактеристикиНоменклатуры.Владелец ГДЕ НЕ спрНоменклатура.ЭтоГруппа И НЕ спрНоменклатура.ПометкаУдаления И НЕ (спрНоменклатура.Ссылка, ХарактеристикиНоменклатуры.Ссылка) В (ВЫБРАТЬ ВТДвижения.Номенклатура, ВТДвижения.Характеристика ИЗ ВТДвижения КАК ВТДвижения) И спрНоменклатура.Ссылка В ИЕРАРХИИ(&ГруппаНоменклатуры) СГРУППИРОВАТЬ ПО спрНоменклатура.Ссылка, ХарактеристикиНоменклатуры.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Номенклатура.Номенклатура КАК Номенклатура, ВТ_Номенклатура.Характеристика КАК Характеристика, ВТДвижения.Остаток КАК Остаток ИЗ ВТ_Номенклатура КАК ВТ_Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ ВТДвижения КАК ВТДвижения ПО ВТ_Номенклатура.Номенклатура = ВТДвижения.Номенклатура И ВТ_Номенклатура.Характеристика = ВТДвижения.Характеристика Получается так? | ||
Maniac 7 - 30.07.19 - 13:10 | Соединение номенклатуры с остатками и обычные условия
Начостаток = 0
Приход
Расход тоже равны нулю. Все. ГДЕ ИМЕЮЩИЕ | ||
Maniac 8 - 30.07.19 - 13:10 | просто ИМЕЮЩИЕ - это аналог где но на результаты группировок | ||
almaz102 9 - 30.07.19 - 13:22 | (8) "ВЫБРАТЬ РАЗЛИЧНЫЕ | ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, | ТоварыНаСкладахОстаткиИОбороты.Характеристика КАК Характеристика, | СУММА(ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, 0)) КАК Остаток |ПОМЕСТИТЬ ВТДвижения |ИЗ | РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Регистратор, , Номенклатура В ИЕРАРХИИ (&ГруппаНоменклатуры)) КАК ТоварыНаСкладахОстаткиИОбороты | |СГРУППИРОВАТЬ ПО | ТоварыНаСкладахОстаткиИОбороты.Характеристика, | ТоварыНаСкладахОстаткиИОбороты.Номенклатура | |ИМЕЮЩИЕ | СУММА(ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, 0)) = 0 |; | //////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | спрНоменклатура.Ссылка КАК Номенклатура, | ХарактеристикиНоменклатуры.Ссылка КАК Характеристика |ПОМЕСТИТЬ ВТ_Номенклатура |ИЗ | Справочник.Номенклатура КАК спрНоменклатура | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры | ПО спрНоменклатура.Ссылка = ХарактеристикиНоменклатуры.Владелец |ГДЕ | НЕ спрНоменклатура.ЭтоГруппа | И НЕ спрНоменклатура.ПометкаУдаления | И НЕ (спрНоменклатура.Ссылка, ХарактеристикиНоменклатуры.Ссылка) В | (ВЫБРАТЬ | ВТДвижения.Номенклатура, | ВТДвижения.Характеристика | ИЗ | ВТДвижения КАК ВТДвижения) | И спрНоменклатура.Ссылка В ИЕРАРХИИ(&ГруппаНоменклатуры) | |СГРУППИРОВАТЬ ПО | спрНоменклатура.Ссылка, | ХарактеристикиНоменклатуры.Ссылка |; | //////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_Номенклатура.Номенклатура КАК Номенклатура, | ВТ_Номенклатура.Характеристика КАК Характеристика, | ВТДвижения.Остаток КАК Остаток |ИЗ | ВТ_Номенклатура КАК ВТ_Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ ВТДвижения КАК ВТДвижения | ПО ВТ_Номенклатура.Номенклатура = ВТДвижения.Номенклатура | И ВТ_Номенклатура.Характеристика = ВТДвижения.Характеристика"; | ||
almaz102 10 - 30.07.19 - 13:22 | (8) так правильно? | ||
catena 11 - 30.07.19 - 13:24 | (9)Тебе нужно получить номенклатуру с нулевым остатком или исключить? Ты делаешь выборку из регистра, "где Остаток = 0", а потом исключаешь эту номенклатуру из основной выборки "НЕ (Ссылка, Характеристики) В".
Так задача-то какая? | ||
catena 12 - 30.07.19 - 13:25 | А потом соединяешь с той же таблицей, которую исключил... | ||
Maniac 13 - 30.07.19 - 13:25 | Блин нафига ты стока виртуальных таблиц лепишь.
Все в одной с условием ИМЕЮЩИЕ | ||
Maniac 14 - 30.07.19 - 13:26 | никаких вложенных запросов и виртуальных таблиц.
Тупо один запрос на 15 строк. справочник + остатки и ИМЕЮЩИЕ. все | ||
Maniac 15 - 30.07.19 - 13:27 | Условий Номенклатура В - тоже нах НЕ НУЖНО Тупо справочник + соединение. в конце ИМЕЮЩИЕ остатки приход и расход = 0. Все! | ||
almaz102 16 - 30.07.19 - 13:27 | (11) Мне нужно получить номенклатуры первое условие нет в остатках и за период дата1 и дата2 не было ни каких движений | ||
Maniac 17 - 30.07.19 - 13:28 | (16) а я тебе ровно это и говорю. | ||
catena 18 - 30.07.19 - 13:30 | (16)Первый запрос возвращает только ту номенклатуру, которая была с движениями и остаток 0. Ту, по которой остаток не 0 ты вырезал и она спокойно останется до последней выборки. | ||
Maniac 19 - 30.07.19 - 13:45 | "ВЫБРАТЬ
| СпрНоменклатура.Ссылка КАК Ссылка,
| СУММА(СвободныеОстаткиОстаткиИОбороты.ВНаличииНачальныйОстаток) КАК ВНаличииНачальныйОстаток,
| СУММА(СвободныеОстаткиОстаткиИОбороты.ВНаличииПриход) КАК ВНаличииПриход,
| СУММА(СвободныеОстаткиОстаткиИОбороты.ВНаличииРасход) КАК ВНаличииРасход,
| СУММА(СвободныеОстаткиОстаткиИОбороты.ВНаличииКонечныйОстаток) КАК ВНаличииКонечныйОстаток
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты() КАК СвободныеОстаткиОстаткиИОбороты
| ПО СпрНоменклатура.Ссылка = СвободныеОстаткиОстаткиИОбороты.Номенклатура
|
|СГРУППИРОВАТЬ ПО
| СпрНоменклатура.Ссылка
|
|ИМЕЮЩИЕ
| СУММА(СвободныеОстаткиОстаткиИОбороты.ВНаличииНачальныйОстаток) > 0 И
| СУММА(СвободныеОстаткиОстаткиИОбороты.ВНаличииПриход) > 0 И
| СУММА(СвободныеОстаткиОстаткиИОбороты.ВНаличииРасход) > 0 И
| СУММА(СвободныеОстаткиОстаткиИОбороты.ВНаличииКонечныйОстаток) > 0" | ||
Maniac 20 - 30.07.19 - 13:46 | тьфу короче в условиях не > а = | ||
palsergeich 21 - 30.07.19 - 13:49 | (19) Мои глоза.
Зачем вообще группировки, если данные виртуальных таблиц априори получаются сгруппированные? Выкинь группировку и используй isNull | ||
palsergeich 22 - 30.07.19 - 13:51 | Во вторых я очень сильно сомневаюсь, что Сумма (null) =0, скорее всего получится Null и любое условие, кроме специального даст ложь | ||
Maniac 23 - 30.07.19 - 14:02 | я еще писал что нет в заказах покупателей и поставщикам. нет просто в заказах (даже непроведенных), нет цен и еще какой то хрени. | ||
almaz102 24 - 30.07.19 - 14:14 | (19) Спасибо большое, Получилось! | ||
xXeNoNx 25 - 30.07.19 - 14:43 | (19) Соединение с вирт таблицей нах не нужно!
НаПочитай: https://its.1c.ru/db/metod8dev#content:5842:hdoc | ||
Maniac 26 - 30.07.19 - 14:47 | Чуваки не ипите мозг.
Задача решена очень просто и как нужно | ||
Maniac 27 - 30.07.19 - 14:48 | еще и можно будет к этому добавлять еще условия и всякую поипень. Не первый день работаю | ||
Maniac 28 - 30.07.19 - 14:50 | У него там за период. поэтому еще в параметры дата начала и дата конца. | ||
hhhh 29 - 30.07.19 - 14:54 | (22) не Сумма (null) =0, с этим они подшаманили | ||
palsergeich 30 - 30.07.19 - 14:55 | (29) ок, спасин, буду знать Рекламное место пустует | ||
xXeNoNx 31 - 30.07.19 - 14:59 | (27) Мухаха..., условия он говорил..., задача решена он говорил | ||
ASU_Diamond 32 - 30.07.19 - 15:11 | так-то достаточно проверять конечный остаток и расход/приход | ||
almaz102 33 - 30.07.19 - 15:27 | (32) в условиях я это и оставил начальный остаток убрал, он не нужен | ||
hhhh 34 - 30.07.19 - 15:36 | (33) ну у тебя ведь наоборот получается
| И НЕ (спрНоменклатура.Ссылка, ХарактеристикиНоменклатуры.Ссылка) В
| (ВЫБРАТЬ
| ВТДвижения.Номенклатура,
| ВТДвижения.Характеристика
| ИЗ
| ВТДвижения КАК ВТДвижения)
то есть с остатком 0 ты выбрасываешь | ||
Cyberhawk 35 - 30.07.19 - 16:45 | (21) До тех пор пока через точку от измерения не получаешь реквизиты |
|
Список тем форума |
Правила | Описание | Реклама на форуме | Волшебные решения | Поиск | Секции | Рейтинг | Книга знаний | Вики-миста (КЗ2) | Мобильная | Архив | Модераторы | Галерея | Регистрация | 18+ |