Вход | Регистрация

1С:Предприятие ::

Метки: 

Помогите осмыслить запрос

Я
   lamme
 
05.09.18 - 13:37
УТ 11.1
Списание товаров
Ругается на то что товара нет для списания.
Не понимаю - как оно определяет. откуда. по каким параметрам.

(в документе 1 товар. без характеристик. без назначений и итд и тд. Товар. Количество =1 )


ВЫБРАТЬ
    МАКСИМУМ(ТаблицаТоваров.НомерСтроки) КАК НомерСтроки,
    ТаблицаТоваров.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
    ЕСТЬNULL(АналитикаКомиссионера.КлючАналитики, ТаблицаТоваров.АналитикаУчетаНоменклатуры) КАК АналитикаОстатков,
    Справочник.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    Справочник.ПодакцизныйТовар КАК ЭтоПодакцизныйТовар,
    Справочник.ВестиУчетПоГТД КАК ВестиУчетПоГТД,
    Аналитика.Номенклатура КАК Номенклатура,
    Аналитика.Характеристика КАК Характеристика,
    Аналитика.Серия КАК Серия,
    ТаблицаТоваров.Склад КАК Склад,
    ТаблицаТоваров.ДокументРеализации КАК ДокументРеализации,
    ТаблицаТоваров.ПодбиратьВидыЗапасов КАК ПодбиратьВидыЗапасов,

    ВЫБОР КОГДА ТаблицаТоваров.Сделка.ОбособленныйУчетТоваровПоСделке
        И &ФормироватьВидыЗапасовПоСделкам
    ТОГДА
        ТаблицаТоваров.Сделка
    ИНАЧЕ
        ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка)
    КОНЕЦ КАК Сделка,
    ТаблицаТоваров.Назначение КАК Назначение,
    ЕСТЬNULL(ТаблицаТоваров.Назначение.Заказ, Неопределено) КАК Заказ,

    МАКСИМУМ(ТаблицаТоваров.СтавкаНДС) КАК СтавкаНДС,
    СУММА(ТаблицаТоваров.Количество) КАК Количество,
    СУММА(ТаблицаТоваров.СуммаСНДС) КАК СуммаСНДС,
    СУММА(ТаблицаТоваров.СуммаНДС) КАК СуммаНДС,
    СУММА(ТаблицаТоваров.СуммаВознаграждения) КАК СуммаВознаграждения,
    СУММА(ТаблицаТоваров.СуммаНДСВознаграждения) КАК СуммаНДСВознаграждения
    
ПОМЕСТИТЬ ТаблицаДокумента
ИЗ
    ТаблицаТоваров КАК ТаблицаТоваров
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
    ПО
        ТаблицаТоваров.АналитикаУчетаНоменклатуры = Аналитика.КлючАналитики
    
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        Справочник.Номенклатура КАК Справочник
    ПО
        Аналитика.Номенклатура = Справочник.Ссылка
    
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        ТаблицаДанныхДокумента КАК ТаблицаДанныхДокумента
    ПО
        ИСТИНА
    
    ЛЕВОЕ СОЕДИНЕНИЕ
        РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаКомиссионера
    ПО
        ТаблицаТоваров.Номенклатура = АналитикаКомиссионера.Номенклатура
        И ТаблицаТоваров.Характеристика = АналитикаКомиссионера.Характеристика
        И ТаблицаДанныхДокумента.Партнер = АналитикаКомиссионера.Склад
        И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) = АналитикаКомиссионера.Серия
        И ТаблицаДанныхДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтКомиссионера)
    
ГДЕ
    ТаблицаТоваров.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))

СГРУППИРОВАТЬ ПО
    ТаблицаТоваров.АналитикаУчетаНоменклатуры,
    ЕСТЬNULL(АналитикаКомиссионера.КлючАналитики, ТаблицаТоваров.АналитикаУчетаНоменклатуры),
    Справочник.ЕдиницаИзмерения,
    Справочник.ПодакцизныйТовар,
    Справочник.ВестиУчетПоГТД,
    Аналитика.Номенклатура,
    Аналитика.Характеристика,
    Аналитика.Серия,
    ТаблицаТоваров.Склад,
    ТаблицаТоваров.ДокументРеализации,
    ВЫБОР КОГДА ТаблицаТоваров.Сделка.ОбособленныйУчетТоваровПоСделке
        И &ФормироватьВидыЗапасовПоСделкам
    ТОГДА
        ТаблицаТоваров.Сделка
    ИНАЧЕ
        ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка)
    КОНЕЦ,
    ТаблицаТоваров.Назначение,
    ЕСТЬNULL(ТаблицаТоваров.Назначение.Заказ, Неопределено),
    ТаблицаТоваров.ПодбиратьВидыЗапасов
;
/////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ТаблицаДанныхДокумента.Организация КАК Организация,
    Неопределено КАК Партнер,
    Неопределено КАК Контрагент,
    ЗНАЧЕНИЕ(Справочник.СоглашенияСПоставщиками.ПустаяСсылка) КАК Соглашение,
    ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) КАК Договор,
    ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК Валюта,
    ТаблицаДанныхДокумента.НалогообложениеНДС КАК НалогообложениеНДС,
    ТаблицаДанныхДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация
ИЗ
    ТаблицаДанныхДокумента КАК ТаблицаДанныхДокумента
ГДЕ
    ТаблицаДанныхДокумента.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровКомитенту)
    И ТаблицаДанныхДокумента.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссиюВДругуюОрганизацию)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ТаблицаДанныхДокумента.Организация КАК Организация,
    ТаблицаДанныхДокумента.Партнер КАК Партнер,
    ТаблицаДанныхДокумента.Контрагент КАК Контрагент,
    ТаблицаДанныхДокумента.Соглашение КАК Соглашение,
    ТаблицаДанныхДокумента.Договор КАК Договор,
    ТаблицаДанныхДокумента.Валюта КАК Валюта,
    ТаблицаДанныхДокумента.НалогообложениеНДС КАК НалогообложениеНДС,
    ТаблицаДанныхДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация
ИЗ
    ТаблицаДанныхДокумента КАК ТаблицаДанныхДокумента
ГДЕ
    ТаблицаДанныхДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратТоваровКомитенту)
    ИЛИ ТаблицаДанныхДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссиюВДругуюОрганизацию)
;
/////////////////////////////////////////////////////////////////////////////

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

ВЫБРАТЬ
    МАКСИМУМ(ТаблицаВидыЗапасов.НомерСтроки) КАК НомерСтроки,
    ЕСТЬNULL(АналитикаКомиссионера.КлючАналитики, ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры) КАК АналитикаУчетаНоменклатуры,
    ТаблицаВидыЗапасов.СкладОтгрузки КАК СкладОтгрузки,
    ТаблицаВидыЗапасов.ДокументРеализации КАК ДокументРеализации,
    ТаблицаВидыЗапасов.Сделка КАК Сделка,

    ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
    ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
    ТаблицаВидыЗапасов.ВидыЗапасовУказаныВручную КАК ВидыЗапасовУказаныВручную,
    СУММА(ТаблицаВидыЗапасов.Количество) КАК Количество,
    ВЫБОР КОГДА СУММА(ТаблицаВидыЗапасов.Количество) > 0 ТОГДА
        1
    ИНАЧЕ
        -1
    КОНЕЦ КАК Знак

ПОМЕСТИТЬ ВтВидыЗапасовСводно
ИЗ
    ТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов
    
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        ТаблицаДанныхДокумента КАК ТаблицаДанныхДокумента
    ПО
        ИСТИНА
    
    ЛЕВОЕ СОЕДИНЕНИЕ
        РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаКомиссионера
    ПО
        ТаблицаВидыЗапасов.Номенклатура = АналитикаКомиссионера.Номенклатура
        И ТаблицаВидыЗапасов.Характеристика = АналитикаКомиссионера.Характеристика
        И ТаблицаДанныхДокумента.Партнер = АналитикаКомиссионера.Склад
        И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) = АналитикаКомиссионера.Серия
        И ТаблицаДанныхДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтКомиссионера)

СГРУППИРОВАТЬ ПО
    ЕСТЬNULL(АналитикаКомиссионера.КлючАналитики, ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры),
    ТаблицаВидыЗапасов.СкладОтгрузки,
    ТаблицаВидыЗапасов.ДокументРеализации,
    ТаблицаВидыЗапасов.Сделка,
    ТаблицаВидыЗапасов.ВидЗапасов,
    ТаблицаВидыЗапасов.НомерГТД,
    ТаблицаВидыЗапасов.ВидыЗапасовУказаныВручную

ИНДЕКСИРОВАТЬ ПО
    АналитикаУчетаНоменклатуры,
    СкладОтгрузки,
    ДокументРеализации,
    Сделка,
    ВидЗапасов,
    НомерГТД
;
/////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ// ОСТАТКИ, УКАЗАННЫЕ В ДОКУМЕНТЕ

    ВЫБОР КОГДА РеквизитыВидаЗапасовВладельца.Предназначение = ЗНАЧЕНИЕ(Перечисление.ТипыПредназначенияВидовЗапасов.ПредназначенДляЗаказа) ТОГДА
        1
    КОГДА РеквизитыВидаЗапасовВладельца.Предназначение = ЗНАЧЕНИЕ(Перечисление.ТипыПредназначенияВидовЗапасов.ПредназначенДляСделки) ТОГДА
        4
    КОГДА РеквизитыВидаЗапасовВладельца.Предназначение = ЗНАЧЕНИЕ(Перечисление.ТипыПредназначенияВидовЗапасов.ПредназначенДляМенеджера) ТОГДА
        7
    КОГДА РеквизитыВидаЗапасовВладельца.Предназначение = ЗНАЧЕНИЕ(Перечисление.ТипыПредназначенияВидовЗапасов.ПредназначенДляПодразделения) ТОГДА
        10
    КОГДА ЕСТЬNULL(Остатки.ДатаПоступления, РеквизитыДокумента.Дата) <= КОНЕЦПЕРИОДА(РеквизитыДокумента.Дата, ДЕНЬ) ТОГДА
        13
    ИНАЧЕ
        16
    КОНЕЦ КАК Приоритет,

    ВЫБОР КОГДА Не &ИспользоватьРаздельныйУчетПоНалогообложению ТОГДА
        0
    ИНАЧЕ
        ВЫБОР КОГДА РеквизитыВидаЗапасовВладельца.НалогообложениеНДС ЕСТЬ NULL
                ИЛИ РеквизитыВидаЗапасовВладельца.НалогообложениеНДС В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка),
                                                                        РеквизитыДокумента.НалогообложениеНДС) ТОГДА
            1
        ИНАЧЕ
            2
        КОНЕЦ
    КОНЕЦ КАК ПриоритетЕНВД,

    ИСТИНА КАК ОстаткиДокумента,

    Остатки.Организация КАК Организация,
    ВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
    ВидыЗапасов.СкладОтгрузки КАК СкладОтгрузки,
    ВидыЗапасов.ДокументРеализации КАК ДокументРеализации,
    ВидыЗапасов.Сделка КАК Сделка,
    РеквизитыВидаЗапасовВладельца.Назначение КАК Назначение,

    ВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
    Остатки.ВидЗапасовВладельца КАК ВидЗапасовВладельца,
    Остатки.ВидЗапасовПолучателя КАК ВидЗапасовПолучателя,
    Остатки.ВидЗапасовОтгрузки КАК ВидЗапасовОтгрузки,
    РеквизитыВидаЗапасовОтгрузки.Организация КАК ОрганизацияОтгрузки,
    Остатки.РеализацияЗапасовДругойОрганизации КАК РеализацияЗапасовДругойОрганизации,

    ВидыЗапасов.НомерГТД КАК НомерГТД,
    Остатки.ДатаПоступления КАК ДатаПоступления,

    ВЫБОР КОГДА ВидыЗапасов.ВидыЗапасовУказаныВручную И Не &ПерезаполнениеВидовЗапасов ТОГДА
        ВидыЗапасов.Количество
    КОГДА ВидыЗапасов.Знак * Остатки.КоличествоОстаток > ВидыЗапасов.Знак * ВидыЗапасов.Количество ТОГДА
        ВидыЗапасов.Количество
    ИНАЧЕ
        Остатки.КоличествоОстаток
    КОНЕЦ КАК КоличествоОстаток,

    ВЫБОР КОГДА (ВидыЗапасов.Знак * Остатки.КоличествоОстаток > ВидыЗапасов.Знак * ВидыЗапасов.Количество)
     И Остатки.КоличествоОстаток <> 0 ТОГДА
        ВидыЗапасов.Количество * Остатки.СуммаОстаток / Остатки.КоличествоОстаток
    ИНАЧЕ
        Остатки.СуммаОстаток
    КОНЕЦ КАК СуммаОстаток

ПОМЕСТИТЬ ВтОстатки
ИЗ
    ВтВидыЗапасовСводно КАК ВидыЗапасов

    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        ТаблицаДанныхДокумента КАК РеквизитыДокумента
    ПО
        Истина

    ЛЕВОЕ СОЕДИНЕНИЕ
        ТаблицаОстатков КАК Остатки
    ПО
        Остатки.АналитикаУчетаНоменклатуры = ВидыЗапасов.АналитикаУчетаНоменклатуры
        И Остатки.СкладОтгрузки = ВидыЗапасов.СкладОтгрузки
        И Остатки.ДокументРеализации = ВидыЗапасов.ДокументРеализации
        И Остатки.Сделка = ВидыЗапасов.Сделка
        И Остатки.ВидЗапасов = ВидыЗапасов.ВидЗапасов
        И Остатки.НомерГТД = ВидыЗапасов.НомерГТД

    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        Справочник.ВидыЗапасов КАК РеквизитыВидаЗапасовВладельца
    ПО
        ЕСТЬNULL(Остатки.ВидЗапасовВладельца, ВидыЗапасов.ВидЗапасов) = РеквизитыВидаЗапасовВладельца.Ссылка

    ЛЕВОЕ СОЕДИНЕНИЕ
        Справочник.ВидыЗапасов КАК РеквизитыВидаЗапасовОтгрузки
    ПО
        Остатки.ВидЗапасовОтгрузки = РеквизитыВидаЗапасовОтгрузки.Ссылка
ГДЕ
    НЕ Остатки.ВидЗапасов ЕСТЬ NULL
    ИЛИ (ВидыЗапасов.ВидыЗапасовУказаныВручную И Не &ПерезаполнениеВидовЗапасов)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ// ОСТАТКИ, НЕ УКАЗАННЫЕ В ДОКУМЕНТЕ

    ВЫБОР КОГДА Остатки.Организация = РеквизитыДокумента.Организация ТОГДА
        ВЫБОР КОГДА РеквизитыВидаЗапасовВладельца.Предназначение = ЗНАЧЕНИЕ(Перечисление.ТипыПредназначенияВидовЗапасов.ПредназначенДляЗаказа) ТОГДА
            2
        КОГДА РеквизитыВидаЗапасовВладельца.Предназначение = ЗНАЧЕНИЕ(Перечисление.ТипыПредназначенияВидовЗапасов.ПредназначенДляСделки) ТОГДА
            5
        КОГДА РеквизитыВидаЗапасовВладельца.Предназначение = ЗНАЧЕНИЕ(Перечисление.ТипыПредназначенияВидовЗапасов.ПредназначенДляМенеджера) ТОГДА
            8
        КОГДА РеквизитыВидаЗапасовВладельца.Предназначение = ЗНАЧЕНИЕ(Перечисление.ТипыПредназначенияВидовЗапасов.ПредназначенДляПодразделения) ТОГДА
            11
        КОГДА Остатки.ДатаПоступления <= КОНЕЦПЕРИОДА(РеквизитыДокумента.Дата, ДЕНЬ) ТОГДА
            14
        ИНАЧЕ
            17
        КОНЕЦ
    ИНАЧЕ
        ВЫБОР КОГДА РеквизитыВидаЗапасовВладельца.Предназначение = ЗНАЧЕНИЕ(Перечисление.ТипыПредназначенияВидовЗапасов.ПредназначенДляЗаказа) ТОГДА
            3
        КОГДА РеквизитыВидаЗапасовВладельца.Предназначение = ЗНАЧЕНИЕ(Перечисление.ТипыПредназначенияВидовЗапасов.ПредназначенДляСделки) ТОГДА
            6
        КОГДА РеквизитыВидаЗапасовВладельца.Предназначение = ЗНАЧЕНИЕ(Перечисление.ТипыПредназначенияВидовЗапасов.ПредназначенДляМенеджера) ТОГДА
            9
        КОГДА РеквизитыВидаЗапасовВладельца.Предназначение = ЗНАЧЕНИЕ(Перечисление.ТипыПредназначенияВидовЗапасов.ПредназначенДляПодразделения) ТОГДА
            12
        ИНАЧЕ
            18
        КОНЕЦ
    КОНЕЦ КАК Приоритет,

    ВЫБОР КОГДА Не &ИспользоватьРаздельныйУчетПоНалогообложению ТОГДА
        0
    ИНАЧЕ
        ВЫБОР КОГДА РеквизитыВидаЗапасовВладельца.НалогообложениеНДС ЕСТЬ NULL
                ИЛИ РеквизитыВидаЗапасовВладельца.НалогообложениеНДС В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка),
                                                                        РеквизитыДокумента.НалогообложениеНДС) ТОГДА
            1
        ИНАЧЕ
            2
        КОНЕЦ
    КОНЕЦ КАК ПриоритетЕНВД,

    ЛОЖЬ КАК ОстаткиДокумента,

    Остатки.Организация КАК Организация,
    Остатки.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
    Остатки.СкладОтгрузки КАК СкладОтгрузки,
    Остатки.ДокументРеализации КАК ДокументРеализации,
    Остатки.Сделка КАК Сделка,
    Остатки.Назначение КАК Назначение,

    Остатки.ВидЗапасов КАК ВидЗапасов,
    Остатки.ВидЗапасовВладельца КАК ВидЗапасовВладельца,
    Остатки.ВидЗапасовПолучателя КАК ВидЗапасовПолучателя,
    Остатки.ВидЗапасовОтгрузки КАК ВидЗапасовОтгрузки,
    РеквизитыВидаЗапасовОтгрузки.Организация КАК ОрганизацияОтгрузки,
    Остатки.РеализацияЗапасовДругойОрганизации КАК РеализацияЗапасовДругойОрганизации,

    Остатки.НомерГТД КАК НомерГТД,
    Остатки.ДатаПоступления КАК ДатаПоступления,

    Остатки.КоличествоОстаток - ЕСТЬNULL(ВидыЗапасов.Количество, 0) КАК КоличествоОстаток,
    ВЫБОР КОГДА Остатки.КоличествоОстаток <> 0 ТОГДА
        Остатки.СуммаОстаток
            - (ЕСТЬNULL(ВидыЗапасов.Количество, 0) * Остатки.СуммаОстаток / Остатки.КоличествоОстаток)
    КОГДА ЕСТЬNULL(ВидыЗапасов.Количество, 0) = 0 ТОГДА
        Остатки.СуммаОстаток
    ИНАЧЕ
        0// Сумма остатка подобралась в строках с видом запасов

    КОНЕЦ КАК СуммаОстаток
ИЗ
    ТаблицаОстатков КАК Остатки

    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        ТаблицаДанныхДокумента КАК РеквизитыДокумента
    ПО
        Истина

    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        Справочник.ВидыЗапасов КАК РеквизитыВидаЗапасовВладельца
    ПО
        Остатки.ВидЗапасовВладельца = РеквизитыВидаЗапасовВладельца.Ссылка

    ЛЕВОЕ СОЕДИНЕНИЕ
        Справочник.ВидыЗапасов КАК РеквизитыВидаЗапасовОтгрузки
    ПО
        Остатки.ВидЗапасовОтгрузки = РеквизитыВидаЗапасовОтгрузки.Ссылка

    ЛЕВОЕ СОЕДИНЕНИЕ
        ВтВидыЗапасовСводно КАК ВидыЗапасов
    ПО
        Остатки.АналитикаУчетаНоменклатуры = ВидыЗапасов.АналитикаУчетаНоменклатуры
        И Остатки.СкладОтгрузки = ВидыЗапасов.СкладОтгрузки
        И Остатки.ДокументРеализации = ВидыЗапасов.ДокументРеализации
        И Остатки.Сделка = ВидыЗапасов.Сделка
        И Остатки.ВидЗапасов = ВидыЗапасов.ВидЗапасов
        И Остатки.НомерГТД = ВидыЗапасов.НомерГТД
ГДЕ
    ВЫБОР КОГДА ВидыЗапасов.Количество ЕСТЬ NULL ТОГДА
        ИСТИНА
    КОГДА ВидыЗапасов.Количество = 0 ТОГДА
        НЕ ВидыЗапасов.НомерСтроки = 99999
    КОГДА ВидыЗапасов.Знак * ВидыЗапасов.Количество > 0 ТОГДА
        ВидыЗапасов.Знак * Остатки.КоличествоОстаток
            - ВидыЗапасов.Знак * ВидыЗапасов.Количество > 0
    ИНАЧЕ
        ВидыЗапасов.Знак * Остатки.КоличествоОстаток
            - ВидыЗапасов.Знак * ВидыЗапасов.Количество < 0
    КОНЕЦ 
;
/////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ЕСТЬNULL(Остатки.Приоритет, 0) КАК Приоритет,
    ЕСТЬNULL(Остатки.ПриоритетЕНВД, 0) КАК ПриоритетЕНВД,
    ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
    ТаблицаДокумента.Склад КАК Склад,
    ТаблицаДокумента.Сделка КАК Сделка,
    ТаблицаДокумента.Назначение КАК Назначение,
    ТаблицаДокумента.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
    ТаблицаДокумента.Номенклатура КАК Номенклатура,
    ТаблицаДокумента.ЭтоПодакцизныйТовар КАК ЭтоПодакцизныйТовар,
    ТаблицаДокумента.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ТаблицаДокумента.Характеристика КАК Характеристика,
    ТаблицаДокумента.Количество КАК Количество,
    ТаблицаДокумента.СуммаСНДС КАК СуммаСНДС,
    ТаблицаДокумента.СтавкаНДС КАК СтавкаНДС,
    ТаблицаДокумента.СуммаНДС КАК СуммаНДС,
    ТаблицаДокумента.СуммаВознаграждения КАК СуммаВознаграждения,
    ТаблицаДокумента.СуммаНДСВознаграждения КАК СуммаНДСВознаграждения,

    ЕСТЬNULL(Остатки.ВидЗапасов, Неопределено) КАК ВидЗапасов,
    ЕСТЬNULL(Остатки.ВидЗапасовВладельца, Неопределено) КАК ВидЗапасовВладельца,
    ЕСТЬNULL(Остатки.ВидЗапасовПолучателя, Неопределено) КАК ВидЗапасовПолучателя,
    ЕСТЬNULL(Остатки.ВидЗапасовОтгрузки, Неопределено) КАК ВидЗапасовОтгрузки,
    ЕСТЬNULL(Остатки.ОрганизацияОтгрузки, Неопределено) КАК ОрганизацияОтгрузки,
    ЕСТЬNULL(Остатки.РеализацияЗапасовДругойОрганизации, Ложь) КАК РеализацияЗапасовДругойОрганизации,
    ЕСТЬNULL(Остатки.НомерГТД, Неопределено) КАК НомерГТД,

    ВЫБОР КОГДА ТаблицаДокумента.ВестиУчетПоГТД
        И &ЗапретитьОформлениеОперацийСИмпортнымиТоварамиБезНомеровГТД
        И (Остатки.НомерГТД = ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка) ИЛИ Остатки.НомерГТД ЕСТЬ NULL)
    ТОГДА
        Истина
    ИНАЧЕ
        Ложь
    КОНЕЦ КАК НеУказанНомерГТД,

    ЕСТЬNULL(Остатки.ДатаПоступления, ДАТАВРЕМЯ(2399, 1, 1)) КАК ДатаПоступления,
    ЕСТЬNULL(Остатки.СкладОтгрузки, Неопределено) КАК СкладОтгрузки,
    ВЫБОР КОГДА ТаблицаДанныхДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтКомиссионера)
        И ТаблицаДокумента.ДокументРеализации <> НЕОПРЕДЕЛЕНО
    ТОГДА
        ТаблицаДокумента.ДокументРеализации
    ИНАЧЕ
        ЕСТЬNULL(Остатки.ДокументРеализации, Неопределено)
    КОНЕЦ КАК ДокументРеализации,
    ЕСТЬNULL(ТаблицаДокумента.Заказ, Неопределено) КАК Заказ,

    ЕСТЬNULL(Остатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    ЕСТЬNULL(Остатки.СуммаОстаток, 0) КАК СуммаОстаток
ИЗ
    ТаблицаДокумента КАК ТаблицаДокумента

    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        ТаблицаДанныхДокумента КАК ТаблицаДанныхДокумента
    ПО
        Истина
    
    ЛЕВОЕ СОЕДИНЕНИЕ
        ВтОстатки КАК Остатки
    ПО
        ТаблицаДокумента.АналитикаОстатков = Остатки.АналитикаУчетаНоменклатуры
        И (ТаблицаДокумента.ДокументРеализации = Остатки.ДокументРеализации
            ИЛИ (ТаблицаДокумента.ДокументРеализации = НЕОПРЕДЕЛЕНО И ТаблицаДокумента.ПодбиратьВидыЗапасов)
            ИЛИ ТаблицаДанныхДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОтКомиссионера)
            )
        И (Не ТаблицаДанныхДокумента.ЕстьСделкиВТабличнойЧасти
            ИЛИ ТаблицаДокумента.Сделка = Остатки.Сделка
            ИЛИ Остатки.Сделка = ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка)
            )
        И (ТаблицаДокумента.Назначение = Остатки.Назначение ИЛИ Остатки.ВидЗапасовПолучателя <> НЕОПРЕДЕЛЕНО)

УПОРЯДОЧИТЬ ПО
    Приоритет Возр,
    ПриоритетЕНВД Возр,
    НомерСтроки Возр,
    ДатаПоступления Возр

ИТОГИ
    МАКСИМУМ(Количество),
    МАКСИМУМ(СуммаСНДС),
    МАКСИМУМ(СтавкаНДС),
    МАКСИМУМ(СуммаНДС),
    МАКСИМУМ(СуммаВознаграждения),
    МАКСИМУМ(СуммаНДСВознаграждения),
    СУММА(КоличествоОстаток)
ПО
    НомерСтроки
 
 
   catena
 
1 - 05.09.18 - 13:41
Это же не весь запрос. ТаблицаТоваров - что?
   lamme
 
2 - 05.09.18 - 13:43
https://c2n.me/3Wu7KSg

ну примерно как то так
   catena
 
3 - 05.09.18 - 13:45
(2)Ага, сразу понятнее стало. Есть там че?
   lamme
 
4 - 05.09.18 - 13:45
есть
вот результат
https://clip2net.com/s/3Wu82o0
   lamme
 
5 - 05.09.18 - 13:46
вот запрос на эту таблицу

Товары.Выгрузить()

короче - это табличная часть документа Списания
   catena
 
6 - 05.09.18 - 13:51
(5)Ну, дальше вниз смотри, в каждой таблице, когда данные пропадают
   lamme
 
7 - 05.09.18 - 13:55
(6)
не уловил
после этого запроса в результатах запроса уже все сформировано.
там только выводи информации идет о том что не хватает товара по колонке ВыборкаПоСтрокам.Количество
   catena
 
8 - 05.09.18 - 13:59
(7)Ну тогда смотри, в какой таблице количество становится меньше нужного. Никто не будет разгребать эту простыню. Запускай в консоли и смотри данные каждой ВТ.
   lamme
 
9 - 05.09.18 - 14:13
как это можно посмотреть?
какой консолью запросов ?


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует