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