Версия для печати темы (http://pro1c.org.ua/index.php?s=3eab79534b699aaf99b1973874dcd4bf&showtopic=53103)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Запрос для нахождения номенклатуры которой нету на остатках и не было движения более года

Автор: vladis222 18.07.19, 13:25

Здравствуйте, прошу вашей помощи,по заданию,мне необходимо сформировать список товаров(РегистрНакопления ТоварыОрганизаций), которых на заданную дату <=0, то есть либо нет либо отрицательное число. Более того, необходимо чтобы по этим товарам не было движения более 1 года. То есть если для нахождения остатков необходимо воспользоваться виртуальной таблицей Остатки,то для проверки того что не было движения более года - Остатки и Обороты... И все это объединить воедино... Я написал запрос только для части товаров, которых <=0, подскажите,пожалуйста,как дописать запрос...

ВЫБРАТЬ
    Товар.Наименование,
    ТоварыОрганизацийОстатки.КоличествоОстаток
ИЗ
     Справочник.Номенклатура КАК Товар
     ЛЕВОЕ СОЕДИНЕНИЕ
     РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизацийОстатки
     ПО  Товар.Ссылка = ТоварыОрганизацийОстатки.Номенклатура
     ГДЕ ТоварыОрганизацийОстатки.КоличествоОстаток < 0 ИЛИ ТоварыОрганизацийОстатки.КоличествоОстаток ЕСТЬ NULL



 ! 

http://pro1c.org.ua/index.php?act=announce&id=2: 3, 4
 

Автор: Vofka 18.07.19, 14:37

Нужно ещё одним ЛЕВЫМ соединением соединиться с таблицей РегистрНакопления.ТоварыОрганизаций.Обороты или с физической РегистрНакопления.ТоварыОрганизаций и в условии ГДЕ написать что-то вроде

ГДЕ
   (ТоварыОрганизацийОстатки.КоличествоОстаток < 0 ИЛИ ТоварыОрганизацийОстатки.КоличествоОстаток ЕСТЬ NULL)
   И ТоварыОрганизацийОбороты.КоличествоОборот ЕСТЬ NULL

Автор: Schlesinger 18.07.19, 16:54

vladis222 @ Сегодня, 14:25 * ,
А разве нельзя получить эту информацию из стандартных отчётов?

Автор: Vladal 22.07.19, 14:34

Цитата(Schlesinger @ 18.07.19, 17:54) *
А разве нельзя получить эту информацию из стандартных отчётов?

Можно. Выгрузив их в Эксель и сделав сводную таблицу.
Либо стандартный по Партиям и смотреть глазками, нет ли других документов движения по данному товару с характеристиками, кроме приходной накладной, или перемещение между складами здвинуло только эту партию, а больше не покупали.

Можно стандартными. Это будет не скучно.

ВЫБРАТЬ РАЗЛИЧНЫЕ
    Номенклатура.Ссылка КАК Номенклатура
ПОМЕСТИТЬ втНоменклатура
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.Ссылка В ИЕРАРХИИ(&СписокНоменклатуры)
    И НЕ Номенклатура.ЭтоГруппа
;



////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПартииТоваровНаСкладахОстатки.ДокументОприходования КАК ДокументОприходования,
    ПартииТоваровНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ПартииТоваровНаСкладахОстатки.Склад КАК Склад,
    ПартииТоваровНаСкладахОстатки.КоличествоОстаток
ПОМЕСТИТЬ втОстатки
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Остатки(
            ,
            Номенклатура В
                (ВЫБРАТЬ
                    втНоменклатура.Номенклатура
                ИЗ
                    втНоменклатура)) КАК ПартииТоваровНаСкладахОстатки
ГДЕ
    ПартииТоваровНаСкладахОстатки.ДокументОприходования.Дата МЕЖДУ &Дата1 И &Дата2
    И ПартииТоваровНаСкладахОстатки.ДокументОприходования.СкладОрдер = &СкладОрдер
;



////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад КАК Склад,
    ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования КАК ДокументОприходования,
    ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход
ПОМЕСТИТЬ втОбороты
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(
            ,
            ,
            Регистратор,
            ,
            (ДокументОприходования, номенклатура) В
                (ВЫБРАТЬ
                    втОстатки.ДокументОприходования,
                    втОстатки.Номенклатура
                ИЗ
                    втОстатки КАК втОстатки)) КАК ПартииТоваровНаСкладахОстаткиИОбороты
ГДЕ
    ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Дата МЕЖДУ &Дата1 И &Дата2
    И ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.СкладОрдер = &СкладОрдер
;



////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    втОстатки.КоличествоОстаток КАК КоличествоОстаток,
    втОстатки.Номенклатура КАК Номенклатура,
    втОстатки.Склад КАК Склад,
    втОстатки.ДокументОприходования КАК ДокументОприходования,
    втОбороты.Регистратор КАК Регистратор
ИЗ
    втОстатки КАК втОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ втОбороты КАК втОбороты
        ПО втОстатки.Номенклатура = втОбороты.Номенклатура
            И втОстатки.ДокументОприходования = втОбороты.ДокументОприходования
            И втОстатки.ДокументОприходования <> втОбороты.Регистратор
СГРУППИРОВАТЬ ПО
    втОстатки.Номенклатура,
    втОстатки.ДокументОприходования,
    втОстатки.Склад,
    втОстатки.КоличествоОстаток,
    втОбороты.Регистратор

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
http://pro1c.org.ua