Добрый день, уважаемые форумчане.
Помогите решить проблему следующего характера.
Суть необходимо получить все товары по которым не было движений за период, а также те товары которых есть в справочнике номенклатуры, но на складах их количество равно 0.
В первом запросе выбрал остаткииобороты по товарам на складах с условием что количество конечный остаток больше нуля, и вторым условием что количество приход и количество расход =0.
во втором запросе левым соединением к справочнику номенклатуры прицепил тот же регистр остатков и оборотов по товарам, но уже с отбором что количество конечный остаток равно 0 и второе условие такое же.
Вроде все правильно работало, но появилась такая ситуация.
На склад был приход товаров и возврат, в итоге количество конечный остаток стало равно 0 и выполнился запрос 2 когда количество остаток равно 0 и соединяется с номенклатурой.
Подскажите как правильно написать данный запрос, чтобы исключить такие ситуации, т.к. если в вирт таблице конечный остаток за период 0, он не показывает, что были приходы и расходы.
Помогите решить проблему следующего характера.
Суть необходимо получить все товары по которым не было движений за период, а также те товары которых есть в справочнике номенклатуры, но на складах их количество равно 0.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПартииТоваровНаСкладахОстаткиИОбороты.Склад КАК Склад,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.Родитель КАК ГруппаТовара,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.Артикул КАК Артикул,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Товар,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоОстаток,
ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования,
СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток) КАК СтоимостьОстаток
ПОМЕСТИТЬ ВТТоварыБезДвижений
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(
{(&НачалоПериода)},
{(&КонецПериода)},
,
,
Номенклатура В ИЕРАРХИИ (&СписокГруппТоваров)
И Склад В ИЕРАРХИИ (&СписокСкладов) {(Номенклатура).* КАК Номенклатура, (Склад).* КАК Склад}) КАК ПартииТоваровНаСкладахОстаткиИОбороты
ГДЕ
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток > 0
И ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход = 0
{ГДЕ
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.*,
ПартииТоваровНаСкладахОстаткиИОбороты.Склад.*}
СГРУППИРОВАТЬ ПО
ПартииТоваровНаСкладахОстаткиИОбороты.Склад,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.Родитель,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.Артикул,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков,
ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)),
СпрНоменклатура.Родитель,
СпрНоменклатура.Артикул,
СпрНоменклатура.Ссылка,
СпрНоменклатура.ЕдиницаХраненияОстатков,
СУММА(ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток, 0)),
NULL,
СУММА(0)
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
&НачалоПериода,
&КонецПериода,
,
,
Номенклатура В ИЕРАРХИИ (&СписокГруппТоваров)
И Склад В ИЕРАРХИИ (&СписокСкладов) {(Номенклатура).* КАК Номенклатура}) КАК ТоварыНаСкладахОстаткиИОбороты
ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстаткиИОбороты.Номенклатура
ГДЕ
НЕ СпрНоменклатура.ЭтоГруппа
И НЕ СпрНоменклатура.ПометкаУдаления
И СпрНоменклатура.Ссылка В ИЕРАРХИИ(&СписокГруппТоваров)
И ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток, 0) = 0
И (ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход, 0) = 0 И ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход, 0) = 0)
СГРУППИРОВАТЬ ПО
СпрНоменклатура.Ссылка,
ТоварыНаСкладахОстаткиИОбороты.Склад,
СпрНоменклатура.Родитель,
СпрНоменклатура.Артикул,
СпрНоменклатура.ЕдиницаХраненияОстатков
;
ПоказатьВ первом запросе выбрал остаткииобороты по товарам на складах с условием что количество конечный остаток больше нуля, и вторым условием что количество приход и количество расход =0.
во втором запросе левым соединением к справочнику номенклатуры прицепил тот же регистр остатков и оборотов по товарам, но уже с отбором что количество конечный остаток равно 0 и второе условие такое же.
Вроде все правильно работало, но появилась такая ситуация.
На склад был приход товаров и возврат, в итоге количество конечный остаток стало равно 0 и выполнился запрос 2 когда количество остаток равно 0 и соединяется с номенклатурой.
Подскажите как правильно написать данный запрос, чтобы исключить такие ситуации, т.к. если в вирт таблице конечный остаток за период 0, он не показывает, что были приходы и расходы.
По теме из базы знаний
- Прямое редактирование движений регистров и перепроведение документов по выбранным регистрам в 1С 7.7
- Товары без движений (неликвидные остатки на складе) за период без/с ценами по типу цен для 1С: УТ 10.3
- Отчет "Товары без движений" для УТ 10.3
- Товары без движения. КА 2.4
- Товары без движения для ТиС + списание неликвида
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ГДЕ
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток > 0
И ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход = 0
{ГДЕ
"...и вторым условием что количество приход и количество расход =0...."
Нестыковочка получается в описании и реализации все по разному
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток > 0
И ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход = 0
{ГДЕ
"...и вторым условием что количество приход и количество расход =0...."
Нестыковочка получается в описании и реализации все по разному
(5) ну я написал так.
все суть в том чтобы показать товары:
1) которые есть на складе, и по которым не было движений (получается надо и расход и приход проверять)
2) товары из справочника номенклатуры которых нет на складах, и за выбранный период по ним так же не было движений.
все суть в том чтобы показать товары:
1) которые есть на складе, и по которым не было движений (получается надо и расход и приход проверять)
2) товары из справочника номенклатуры которых нет на складах, и за выбранный период по ним так же не было движений.
И регистр вы прицепили к Номенклатуре уже другой а не "ТОТ ЖЕ"...
В первом РегистрНакопления.ПартииТоваровНаСкладах
Во втором РегистрНакопления.ТоварыНаСкладах
Будьте тщательны в разработках и все у вас будет корректно
В первом РегистрНакопления.ПартииТоваровНаСкладах
Во втором РегистрНакопления.ТоварыНаСкладах
Будьте тщательны в разработках и все у вас будет корректно
ВЫБРАТЬ
Движения.Склад,
Движения.Номенклатура КАК Номенклатура,
СУММА(Движения.ВНаличииКонечныйОстаток) КАК КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
&НачалоПериода,
&КонецПериода,
,
,
Номенклатура В ИЕРАРХИИ (&Номенклатура)
И Склад В ИЕРАРХИИ (&Склады)) КАК Движения
ГДЕ
Движения.ВНаличииКонечныйОстаток > 0
И Движения.ВНаличииОборот = 0
СГРУППИРОВАТЬ ПО
Движения.Номенклатура,
Движения.Склад
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)),
СпрНоменклатура.Ссылка,
СУММА(ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, 0))
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
&НачалоПериода,
&КонецПериода,
,
,
Номенклатура В ИЕРАРХИИ (&Номенклатура)
И Склад В ИЕРАРХИИ (&Склады) {(Номенклатура).* КАК Номенклатура}) КАК ТоварыНаСкладахОстаткиИОбороты
ПО (СпрНоменклатура.Ссылка = ТоварыНаСкладахОстаткиИОбороты.Номенклатура)
ГДЕ
НЕ СпрНоменклатура.ЭтоГруппа
И НЕ СпрНоменклатура.ПометкаУдаления
И СпрНоменклатура.Ссылка В ИЕРАРХИИ(&Номенклатура)
И ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, 0) = 0
И ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.ВНаличииОборот, 0) = 0
СГРУППИРОВАТЬ ПО
СпрНоменклатура.Ссылка,
ТоварыНаСкладахОстаткиИОбороты.Склад
Показать
Простой вариант, дполнительные условия можно потом прицепить
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура
ПОМЕСТИТЬ ВТ_ОстаткиОбороты
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
ОБЪЕДИНИТЬ
ВЫБРАТЬ
ТоварыНаСкладахОбороты.Номенклатура
ИЗ
РегистрНакопления.ТоварыНаСкладах.Обороты(&НачПериода, &КонПериода, Авто, ) КАК ТоварыНаСкладахОбороты
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Номенклатура.Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
НЕ Номенклатура.Ссылка В
(ВЫБРАТЬ
ВТ_ОстаткиОбороты.Номенклатура
ИЗ
ВТ_ОстаткиОбороты КАК ВТ_ОстаткиОбороты)
И НЕ Номенклатура.ЭтоГруппа
Показать
Под ваше условие убрал лишние условия - из первой части остатки не нужно проверять а во второй не нужно проверять обороты
ВЫБРАТЬ
Движения.Склад,
Движения.Номенклатура КАК Номенклатура,
СУММА(Движения.ВНаличииКонечныйОстаток) КАК КоличествоКонечныйОстаток,
ЕСТЬNULL(Движения.ВНаличииОборот,0) Как Обороты
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
&НачалоПериода,
&КонецПериода,
,
,
Номенклатура В ИЕРАРХИИ (&Номенклатура)
И Склад В ИЕРАРХИИ (&Склады)) КАК Движения
ГДЕ
ЕСТЬNULL(Движения.ВНаличииОборот,0) = 0
СГРУППИРОВАТЬ ПО
Движения.Номенклатура,
Движения.Склад,
Движения.ВНаличииОборот
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.Склад, ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)),
СпрНоменклатура.Ссылка,
СУММА(ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, 0)),
ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.ВНаличииОборот, 0)
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
&НачалоПериода,
&КонецПериода,
,
,
Номенклатура В ИЕРАРХИИ (&Номенклатура)
И Склад В ИЕРАРХИИ (&Склады) {(Номенклатура).* КАК Номенклатура}) КАК ТоварыНаСкладахОстаткиИОбороты
ПО (СпрНоменклатура.Ссылка = ТоварыНаСкладахОстаткиИОбороты.Номенклатура)
ГДЕ
НЕ СпрНоменклатура.ЭтоГруппа
И НЕ СпрНоменклатура.ПометкаУдаления
И СпрНоменклатура.Ссылка В ИЕРАРХИИ(&Номенклатура)
И ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, 0) = 0
СГРУППИРОВАТЬ ПО
СпрНоменклатура.Ссылка,
ТоварыНаСкладахОстаткиИОбороты.Склад ,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииОборот
Показать
(16)
делаю простой запрос
c периодичностью "ДЕНЬ" я вижу приход в этом периоде, как только убираю периодичность запрос выдает пустой результат
делаю простой запрос
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, ДЕНЬ, , Номенклатура В ИЕРАРХИИ (&Номенклатура) {(Номенклатура).* КАК Номенклатура}) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток = 0
Показатьc периодичностью "ДЕНЬ" я вижу приход в этом периоде, как только убираю периодичность запрос выдает пустой результат
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот