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

1. user1008893 09.07.20 09:34 Сейчас в теме
Помогите пожалуйста с запросом. Есть огромный запрос, в него надо добавить Регистр сведений Номенклатура поставщика,не получается добавить
Сначала задваивались данные,теперь строки не могу объединить в одну, т.е можно посмотреть картинку,как должно быть. И итоговая картинка вывода на отчет. Подскажите пожалуйста,уже не знаю то делать......
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СвернутыеБазовыеДанные.Номенклатура КАК Номенклатура,
    СвернутыеБазовыеДанные.ВариантИсполнения КАК ВариантИсполнения,
    СвернутыеБазовыеДанные.КолПотребностьВнешнаяя КАК КолПотребностьВнешнаяя,
    СвернутыеБазовыеДанные.КолПотребностьПроизводства КАК КолПотребностьПроизводства,
    СвернутыеБазовыеДанные.КолПотребностьВнутренняя КАК КолПотребностьВнутренняя,
    СвернутыеБазовыеДанные.ОснПоставщик КАК ОснПоставщик,
    СвернутыеБазовыеДанные.Активность КАК Активность,
    &БазоваяЕдИзм КАК ЕдИзм,
    &БазоваяЕдИзмКоэффициент КАК ЕдИзмКоэффициент,
    ВЫБОР
        КОГДА СвернутыеБазовыеДанные.Номенклатура.ОснЕдИзм_Закупки = ЗНАЧЕНИЕ(Справочник.ЕдИзм.ПустаяСсылка)
            ТОГДА СвернутыеБазовыеДанные.Номенклатура.БазоваяЕдИзм.Коэффициент
        ИНАЧЕ СвернутыеБазовыеДанные.Номенклатура.ОснЕдИзм_Закупки.Коэффициент
    КОНЕЦ КАК ЕдИзм_ЗакупкиКоэффициент,
    СвернутыеБазовыеДанные.Поставщик КАК Поставщик,
    СвернутыеБазовыеДанные.НоменклатураПоставщика КАК НоменклатураПоставщика,
    СвернутыеБазовыеДанные.ВариантИсполненияПоставщика КАК ВариантИсполненияПоставщика
ПОМЕСТИТЬ БазовыеДанные
ИЗ
    (ВЫБРАТЬ
        РазвернутыеБазовыеДанные.Номенклатура КАК Номенклатура,
        РазвернутыеБазовыеДанные.ВариантИсполнения КАК ВариантИсполнения,
        ВЫБОР
            КОГДА РазвернутыеБазовыеДанные.ВариантИсполнения.Активность
                ТОГДА РазвернутыеБазовыеДанные.Номенклатура.Активность
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ КАК Активность,
        ВЫБОР
            КОГДА РазвернутыеБазовыеДанные.ВариантИсполнения.ОснПоставщик = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ТОГДА РазвернутыеБазовыеДанные.Номенклатура.ОснПоставщик
            ИНАЧЕ РазвернутыеБазовыеДанные.ВариантИсполнения.ОснПоставщик
        КОНЕЦ КАК ОснПоставщик,
        СУММА(РазвернутыеБазовыеДанные.КолПотребностьВнешнаяя) КАК КолПотребностьВнешнаяя,
        СУММА(РазвернутыеБазовыеДанные.КолПотребностьПроизводства) КАК КолПотребностьПроизводства,
        СУММА(РазвернутыеБазовыеДанные.КолПотребностьВнутренняя) КАК КолПотребностьВнутренняя,
        РазвернутыеБазовыеДанные.Поставщик КАК Поставщик,
        РазвернутыеБазовыеДанные.НоменклатураПоставщика КАК НоменклатураПоставщика,
        РазвернутыеБазовыеДанные.ВариантИсполненияПоставщика КАК ВариантИсполненияПоставщика
    ИЗ
        (ВЫБРАТЬ
            ПотребностиВТМЦ_ПоВидамПотребностей.Номенклатура КАК Номенклатура,
            ПотребностиВТМЦ_ПоВидамПотребностей.ВариантИсполнения КАК ВариантИсполнения,
            ПотребностиВТМЦ_ПоВидамПотребностей.КолПотребностьВнешняя КАК КолПотребностьВнешнаяя,
            ПотребностиВТМЦ_ПоВидамПотребностей.КолПотребностьПроизводственная КАК КолПотребностьПроизводства,
            ПотребностиВТМЦ_ПоВидамПотребностей.КолПотребностьВнутренняя КАК КолПотребностьВнутренняя,
            NULL КАК Поставщик,
            NULL КАК НоменклатураПоставщика,
            NULL КАК ВариантИсполненияПоставщика
        ИЗ
            (ВЫБРАТЬ
                ПотребностиВТМЦ.ВидПотребности КАК ВидПотребности,
                ПотребностиВТМЦ.Номенклатура КАК Номенклатура,
                ПотребностиВТМЦ.ВариантИсполнения КАК ВариантИсполнения,
                ПотребностиВТМЦ.КолОстаток КАК КолОстаток,
                ВЫБОР
                    КОГДА ПотребностиВТМЦ.ВидПотребности = "Внешняя"
                            ИЛИ ПотребностиВТМЦ.ВидПотребности = "Межфилиальная"
                        ТОГДА ПотребностиВТМЦ.КолОстаток
                    ИНАЧЕ 0
                КОНЕЦ КАК КолПотребностьВнешняя,
                ВЫБОР
                    КОГДА ПотребностиВТМЦ.ВидПотребности = "Внутренняя"
                        ТОГДА ПотребностиВТМЦ.КолОстаток
                    ИНАЧЕ 0
                КОНЕЦ КАК КолПотребностьВнутренняя,
                ВЫБОР
                    КОГДА ПотребностиВТМЦ.ВидПотребности = "Производственная"
                        ТОГДА ПотребностиВТМЦ.КолОстаток
                    ИНАЧЕ 0
                КОНЕЦ КАК КолПотребностьПроизводственная
            ИЗ
                (ВЫБРАТЬ
                    ВЫБОР
                        КОГДА ПотребностиВТМЦОстатки.ЗаказПотребность ССЫЛКА Документ.ЗаказНаПроизводство
                            ТОГДА "Производственная"
                        КОГДА ПотребностиВТМЦОстатки.ЗаказПотребность ССЫЛКА Документ.ЗаказПокупателя
                            ТОГДА "Внешняя"
                        КОГДА ПотребностиВТМЦОстатки.ЗаказПотребность ССЫЛКА Документ.ЗаказВнутренний
                            ТОГДА "Внутренняя"
                        КОГДА ПотребностиВТМЦОстатки.ЗаказПотребность ССЫЛКА Документ.ЗаказНаПеремещениеТМЦМеждуФилиалами
                            ТОГДА "Межфилиальная"
                    КОНЕЦ КАК ВидПотребности,
                    ПотребностиВТМЦОстатки.Номенклатура КАК Номенклатура,
                    ПотребностиВТМЦОстатки.ВариантИсполнения КАК ВариантИсполнения,
                    ПотребностиВТМЦОстатки.КолОстаток КАК КолОстаток
                ИЗ
                    РегистрНакопления.ПотребностиВТМЦ.Остатки(
                            &ДатаКон,
                            (НЕ &УказанГоризонтАнализаПотребностей
                                ИЛИ НЕ &СУчетомСрокаПоставки
                                    И ЗаказПотребность.ДатаОбеспеченияПотребностей <= &ГоризонтАнализаПотребностей
                                ИЛИ &СУчетомСрокаПоставки
                                    И ВЫБОР
                                        КОГДА ВариантИсполнения.СрокПоставки = 0
                                            ТОГДА ДОБАВИТЬКДАТЕ(ЗаказПотребность.ДатаОбеспеченияПотребностей, ДЕНЬ, -Номенклатура.СрокПоставки) <= &ГоризонтАнализаПотребностей
                                        ИНАЧЕ ДОБАВИТЬКДАТЕ(ЗаказПотребность.ДатаОбеспеченияПотребностей, ДЕНЬ, -ВариантИсполнения.СрокПоставки) <= &ГоризонтАнализаПотребностей
                                    КОНЕЦ)
                                И (НЕ &ПоФирме
                                    ИЛИ Фирма = &Фирма)
                                И (НЕ &ПоФилиалу
                                    ИЛИ Филиал = &Филиал)) КАК ПотребностиВТМЦОстатки
                ГДЕ
                    (ПотребностиВТМЦОстатки.КолОстаток > 0
                            ИЛИ НЕ &БезУчетаОтрицательныхПотребностей)
                    И (НЕ &ТолькоУтвержденныеЗаказыПотребности
                            ИЛИ ПотребностиВТМЦОстатки.ЗаказПотребность.Утвержден)) КАК ПотребностиВТМЦ
            ГДЕ
                (&АнализВнешнейПотребности
                            И ПотребностиВТМЦ.ВидПотребности = "Внешняя"
                        ИЛИ &АнализВнешнейПотребности
                            И &ПоФилиалу
                            И ПотребностиВТМЦ.ВидПотребности = "Межфилиальная"
                        ИЛИ &АнализВнутреннейПотребности
                            И ПотребностиВТМЦ.ВидПотребности = "Внутренняя"
                        ИЛИ &АнализПотребностиПроизводства
                            И ПотребностиВТМЦ.ВидПотребности = "Производственная")) КАК ПотребностиВТМЦ_ПоВидамПотребностей
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
            МинимальныеОстаткиТМЦ.Номенклатура,
            МинимальныеОстаткиТМЦ.ВариантИсполнения,
            0,
            0,
            0,
            NULL,
            NULL,
            NULL
        ИЗ
            РегистрСведений.МинимальныеОстаткиТМЦ КАК МинимальныеОстаткиТМЦ
        ГДЕ
            МинимальныеОстаткиТМЦ.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
            И &ОтборПоЗаданнымМинимальнымОстаткам
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
            Номенклатура.Ссылка,
            ВариантыИсполнения.Ссылка,
            0,
            0,
            0,
            NULL,
            NULL,
            NULL
        ИЗ
            Справочник.Номенклатура КАК Номенклатура
                ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыИсполнения КАК ВариантыИсполнения
                ПО (ВариантыИсполнения.Владелец = Номенклатура.Ссылка)
        ГДЕ
            &ОтборПоИмеющимсяПотребностям = ЛОЖЬ
            И НЕ ВариантыИсполнения.Ссылка ЕСТЬ NULL
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
            НоменклатураПоставщиков.Номенклатура,
            НоменклатураПоставщиков.ВариантИсполнения,
            0,
            0,
            0,
            НоменклатураПоставщиков.Поставщик,
            НоменклатураПоставщиков.НоменклатураПоставщика,
            НоменклатураПоставщиков.ВариантИсполненияПоставщика
        ИЗ
            РегистрСведений.НоменклатураПоставщиков КАК НоменклатураПоставщиков) КАК РазвернутыеБазовыеДанные
    
    СГРУППИРОВАТЬ ПО
        РазвернутыеБазовыеДанные.ВариантИсполнения,
        РазвернутыеБазовыеДанные.Номенклатура,
        ВЫБОР
            КОГДА РазвернутыеБазовыеДанные.ВариантИсполнения.ОснПоставщик = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ТОГДА РазвернутыеБазовыеДанные.Номенклатура.ОснПоставщик
            ИНАЧЕ РазвернутыеБазовыеДанные.ВариантИсполнения.ОснПоставщик
        КОНЕЦ,
        ВЫБОР
            КОГДА РазвернутыеБазовыеДанные.ВариантИсполнения.Активность
                ТОГДА ИСТИНА
            ИНАЧЕ РазвернутыеБазовыеДанные.Номенклатура.Активность
        КОНЕЦ,
        ВЫБОР
            КОГДА РазвернутыеБазовыеДанные.ВариантИсполнения.Активность
                ТОГДА РазвернутыеБазовыеДанные.Номенклатура.Активность
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ,
        РазвернутыеБазовыеДанные.Поставщик,
        РазвернутыеБазовыеДанные.НоменклатураПоставщика,
        РазвернутыеБазовыеДанные.ВариантИсполненияПоставщика) КАК СвернутыеБазовыеДанные
ГДЕ
    &ТекстБазовыеУсловия
{ГДЕ
    СвернутыеБазовыеДанные.Номенклатура.*,
    СвернутыеБазовыеДанные.ВариантИсполнения.*,
    СвернутыеБазовыеДанные.ОснПоставщик.*}
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ПомесячныйРасходТМЦ.ВариантИсполнения КАК ВариантИсполнения,
    СУММА(ПомесячныйРасходТМЦ.КолРасход) КАК КолРасход,
    ПомесячныйРасходТМЦ.МесяцРасхода КАК МесяцРасхода
ИЗ
    (ВЫБРАТЬ
        ОстаткиТМЦОбороты.ВариантИсполнения КАК ВариантИсполнения,
        ОстаткиТМЦОбороты.КолРасход / БазовыеДанные.ЕдИзмКоэффициент КАК КолРасход,
        НАЧАЛОПЕРИОДА(ОстаткиТМЦОбороты.Период, МЕСЯЦ) КАК МесяцРасхода
    ИЗ
        РегистрНакопления.ОстаткиТМЦ.Обороты(
                &АнализРасходов_ДатаНач,
                &АнализРасходов_ДатаКон,
                Регистратор,
                НЕ &ПоФилиалу
                    ИЛИ Склад.Владелец = &Филиал) КАК ОстаткиТМЦОбороты
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ БазовыеДанные КАК БазовыеДанные
            ПО ОстаткиТМЦОбороты.ВариантИсполнения = БазовыеДанные.ВариантИсполнения
    ГДЕ
        НЕ ОстаткиТМЦОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТМЦ
        И &ТекстУсловий_ОстаткиТМЦОбороты_Регистратор
        И (НЕ &ПоФирме
                ИЛИ ОстаткиТМЦОбороты.Фирма = &Фирма)
        И (&ПоФилиалу
                ИЛИ НЕ ОстаткиТМЦОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТМЦМеждуФилиалами)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ВводРасходаТМЦТЧ.ВариантИсполнения,
        ВводРасходаТМЦТЧ.Кол * ВводРасходаТМЦТЧ.Коэффициент / БазовыеДанные.ЕдИзмКоэффициент,
        НАЧАЛОПЕРИОДА(ВводРасходаТМЦТЧ.Ссылка.Дата, МЕСЯЦ)
    ИЗ
        БазовыеДанные КАК БазовыеДанные
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВводРасходаТМЦ.ТЧ КАК ВводРасходаТМЦТЧ
            ПО БазовыеДанные.ВариантИсполнения = ВводРасходаТМЦТЧ.ВариантИсполнения
    ГДЕ
        ВводРасходаТМЦТЧ.Ссылка.ПометкаУдаления = ЛОЖЬ
        И ВводРасходаТМЦТЧ.Ссылка.Дата >= &АнализРасходов_ДатаНач
        И ВводРасходаТМЦТЧ.Ссылка.Дата <= &АнализРасходов_ДатаКон) КАК ПомесячныйРасходТМЦ

СГРУППИРОВАТЬ ПО
    ПомесячныйРасходТМЦ.ВариантИсполнения,
    ПомесячныйРасходТМЦ.МесяцРасхода

УПОРЯДОЧИТЬ ПО
    ПомесячныйРасходТМЦ.МесяцРасхода
ИТОГИ
    СУММА(КолРасход)
ПО
    ОБЩИЕ,
    ВариантИсполнения,
    МесяцРасхода
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    РассчитанныеДанные.Номенклатура КАК Номенклатура,
    РассчитанныеДанные.ВариантИсполнения КАК ВариантИсполнения,
    РассчитанныеДанные.КолПотребностьВнешнаяя КАК КолПотребностьВнешнаяя,
    РассчитанныеДанные.КолПотребностьПроизводства КАК КолПотребностьПроизводства,
    РассчитанныеДанные.КолПотребностьВнутренняя КАК КолПотребностьВнутренняя,
    РассчитанныеДанные.ОснПоставщик КАК ОснПоставщик,
    РассчитанныеДанные.Активность КАК Активность,
    РассчитанныеДанные.Номенклатура.РазрешитьНесколькоВариантовИсполнения КАК РазрешитьНесколькоВариантовИсполнения,
    ВЫБОР
        КОГДА РассчитанныеДанные.ВариантИсполнения.НормаПополнения = 0
            ТОГДА РассчитанныеДанные.Номенклатура.НормаПополнения
        ИНАЧЕ РассчитанныеДанные.ВариантИсполнения.НормаПополнения
    КОНЕЦ * РассчитанныеДанные.ЕдИзм_ЗакупкиКоэффициент / РассчитанныеДанные.ЕдИзмКоэффициент КАК НормаПополнения,
    ВЫБОР
        КОГДА РассчитанныеДанные.ВариантИсполнения.МинПартияЗакупки = 0
            ТОГДА РассчитанныеДанные.Номенклатура.МинПартияЗакупки
        ИНАЧЕ РассчитанныеДанные.ВариантИсполнения.МинПартияЗакупки
    КОНЕЦ * РассчитанныеДанные.ЕдИзм_ЗакупкиКоэффициент / РассчитанныеДанные.ЕдИзмКоэффициент КАК МинПартияЗакупки,
    ВЫБОР
        КОГДА РассчитанныеДанные.ВариантИсполнения.СрокПоставки = 0
            ТОГДА РассчитанныеДанные.Номенклатура.СрокПоставки
        ИНАЧЕ РассчитанныеДанные.ВариантИсполнения.СрокПоставки
    КОНЕЦ КАК СрокПоставкиДней,
    РассчитанныеДанные.КолОстаток КАК КолОстаток,
    РассчитанныеДанные.КолОстаток_ТМЦ КАК КолОстаток_ТМЦ,
    РассчитанныеДанные.КолОстаток_ТМЦПереданные КАК КолОстаток_ТМЦПереданные,
    РассчитанныеДанные.КолРезерв КАК КолРезерв,
    РассчитанныеДанные.КолРезерв_ТМЦ КАК КолРезерв_ТМЦ,
    РассчитанныеДанные.КолРезерв_ТМЦПереданные КАК КолРезерв_ТМЦПереданные,
    РассчитанныеДанные.КолОжидаемыеПоступления КАК КолОжидаемыеПоступления,
    РассчитанныеДанные.КолРасходЗаДень КАК КолРасходЗаДень,
    РассчитанныеДанные.КолМинОстаток КАК КолМинОстаток,
    РассчитанныеДанные.КолСвободныйОстаток КАК КолСвободныйОстаток,
    РассчитанныеДанные.КолПрофицит КАК КолПрофицит,
    РассчитанныеДанные.ЕдИзм КАК ЕдИзм,
    РассчитанныеДанные.ЕдИзмКоэффициент КАК ЕдИзмКоэффициент,
    РассчитанныеДанные.ЕдИзм_ЗакупкиКоэффициент КАК ЕдИзм_ЗакупкиКоэффициент,
    РассчитанныеДанные.КолОстаток_СкладМатериалов КАК КолОстаток_СкладМатериалов,
    РассчитанныеДанные.Поставщик КАК Поставщик,
    РассчитанныеДанные.НоменклатураПоставщика КАК НоменклатураПоставщика,
    РассчитанныеДанные.ВариантИсполненияПоставщика КАК ВариантИсполненияПоставщика
{ВЫБРАТЬ
    Номенклатура.*,
    ВариантИсполнения.*,
    ОснПоставщик.*,
    Поставщик.*,
    НоменклатураПоставщика,
    ВариантИсполненияПоставщика}
ИЗ
    (ВЫБРАТЬ
        БазовыеДанные.Номенклатура КАК Номенклатура,
        БазовыеДанные.ВариантИсполнения КАК ВариантИсполнения,
        БазовыеДанные.КолПотребностьВнешнаяя / БазовыеДанные.ЕдИзмКоэффициент КАК КолПотребностьВнешнаяя,
        БазовыеДанные.КолПотребностьПроизводства / БазовыеДанные.ЕдИзмКоэффициент КАК КолПотребностьПроизводства,
        БазовыеДанные.КолПотребностьВнутренняя / БазовыеДанные.ЕдИзмКоэффициент КАК КолПотребностьВнутренняя,
        БазовыеДанные.ОснПоставщик КАК ОснПоставщик,
        БазовыеДанные.Активность КАК Активность,
        ЕСТЬNULL(ДополнительныеДанные.КолОстаток, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолОстаток,
        ЕСТЬNULL(ДополнительныеДанные.КолОстаток_ТМЦ, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолОстаток_ТМЦ,
        ЕСТЬNULL(ДополнительныеДанные.КолОстаток_ТМЦПереданные, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолОстаток_ТМЦПереданные,
        ЕСТЬNULL(ДополнительныеДанные.КолРезерв, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолРезерв,
        ЕСТЬNULL(ДополнительныеДанные.КолРезерв_ТМЦ, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолРезерв_ТМЦ,
        ЕСТЬNULL(ДополнительныеДанные.КолРезерв_ТМЦПереданные, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолРезерв_ТМЦПереданные,
        ЕСТЬNULL(ДополнительныеДанные.КолОжидаемыеПоступления, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолОжидаемыеПоступления,
        ЕСТЬNULL(ДополнительныеДанные.КолРасходЗаДень, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолРасходЗаДень,
        ЕСТЬNULL(ДополнительныеДанные.КолМинОстаток, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолМинОстаток,
        (ЕСТЬNULL(ДополнительныеДанные.КолОстаток, 0) - ЕСТЬNULL(ДополнительныеДанные.КолРезерв, 0)) / БазовыеДанные.ЕдИзмКоэффициент КАК КолСвободныйОстаток,
        (ЕСТЬNULL(ДополнительныеДанные.КолОстаток, 0) + ЕСТЬNULL(ДополнительныеДанные.КолОжидаемыеПоступления, 0) - БазовыеДанные.КолПотребностьВнешнаяя - БазовыеДанные.КолПотребностьПроизводства - БазовыеДанные.КолПотребностьВнутренняя - ЕСТЬNULL(ДополнительныеДанные.КолМинОстаток, 0) * &ПрофицитСУчетомМинОстатка) / БазовыеДанные.ЕдИзмКоэффициент КАК КолПрофицит,
        БазовыеДанные.ЕдИзм КАК ЕдИзм,
        БазовыеДанные.ЕдИзмКоэффициент КАК ЕдИзмКоэффициент,
        БазовыеДанные.ЕдИзм_ЗакупкиКоэффициент КАК ЕдИзм_ЗакупкиКоэффициент,
        ЕСТЬNULL(ДополнительныеДанные.КолОстаток_СкладМатериалов, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолОстаток_СкладМатериалов,
        БазовыеДанные.Поставщик КАК Поставщик,
        БазовыеДанные.НоменклатураПоставщика КАК НоменклатураПоставщика,
        БазовыеДанные.ВариантИсполненияПоставщика КАК ВариантИсполненияПоставщика
    ИЗ
        БазовыеДанные КАК БазовыеДанные
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                РазвернутыеДополнительныеДанные.ВариантИсполнения КАК ВариантИсполнения,
                СУММА(РазвернутыеДополнительныеДанные.КолОстаток) КАК КолОстаток,
                СУММА(РазвернутыеДополнительныеДанные.КолОстаток_ТМЦ) КАК КолОстаток_ТМЦ,
                СУММА(РазвернутыеДополнительныеДанные.КолОстаток_ТМЦПереданные) КАК КолОстаток_ТМЦПереданные,
                СУММА(РазвернутыеДополнительныеДанные.КолРезерв) КАК КолРезерв,
                СУММА(РазвернутыеДополнительныеДанные.КолРезерв_ТМЦ) КАК КолРезерв_ТМЦ,
                СУММА(РазвернутыеДополнительныеДанные.КолРезерв_ТМЦПереданные) КАК КолРезерв_ТМЦПереданные,
                СУММА(РазвернутыеДополнительныеДанные.КолОжидаемыеПоступления) КАК КолОжидаемыеПоступления,
                СУММА(РазвернутыеДополнительныеДанные.КолРасходЗаДень) КАК КолРасходЗаДень,
                СУММА(РазвернутыеДополнительныеДанные.КолМинОстаток) КАК КолМинОстаток,
                СУММА(РазвернутыеДополнительныеДанные.КолОстаток_СкладМатериалов) КАК КолОстаток_СкладМатериалов
            ИЗ
                (ВЫБРАТЬ
                    БазовыеДанные.ВариантИсполнения КАК ВариантИсполнения,
                    0 КАК КолОстаток,
                    0 КАК КолОстаток_ТМЦ,
                    0 КАК КолОстаток_ТМЦПереданные,
                    0 КАК КолРезерв,
                    0 КАК КолРезерв_ТМЦ,
                    0 КАК КолРезерв_ТМЦПереданные,
                    0 КАК КолОжидаемыеПоступления,
                    0 КАК КолРасходЗаДень,
                    0 КАК КолМинОстаток,
                    0 КАК КолОстаток_СкладМатериалов
                ИЗ
                    БазовыеДанные КАК БазовыеДанные
                
                ОБЪЕДИНИТЬ ВСЕ
                
                ВЫБРАТЬ
                    БазовыеДанные.ВариантИсполнения,
                    ОстаткиТМЦОстатки.КолОстаток,
                    ОстаткиТМЦОстатки.КолОстаток,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ИЗ
                    БазовыеДанные КАК БазовыеДанные
                        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТМЦ.Остатки(&ДатаКон, ) КАК ОстаткиТМЦОстатки
                        ПО БазовыеДанные.ВариантИсполнения = ОстаткиТМЦОстатки.ВариантИсполнения
                ГДЕ
                    (НЕ &ПоФирме
                            ИЛИ ОстаткиТМЦОстатки.Фирма = &Фирма)
                    И ОстаткиТМЦОстатки.Склад = &СкладМатериалов
                {ГДЕ
                    ОстаткиТМЦОстатки.Склад.*}
                
                ОБЪЕДИНИТЬ ВСЕ
                
                ВЫБРАТЬ
                    БазовыеДанные.ВариантИсполнения,
                    ОстаткиТМЦПереданныеОстатки.КолОстаток,
                    0,
                    ОстаткиТМЦПереданныеОстатки.КолОстаток,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                ИЗ
                    БазовыеДанные КАК БазовыеДанные
                        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТМЦПереданные.Остатки(&ДатаКон, ) КАК ОстаткиТМЦПереданныеОстатки
                        ПО БазовыеДанные.ВариантИсполнения = ОстаткиТМЦПереданныеОстатки.ВариантИсполнения
                ГДЕ
                    (НЕ &ПоФирме
                            ИЛИ ОстаткиТМЦПереданныеОстатки.Фирма = &Фирма)
                
                ОБЪЕДИНИТЬ ВСЕ
                
                ВЫБРАТЬ
                    БазовыеДанные.ВариантИсполнения,
                    0,
                    0,
                    0,
                    РезервыОстатки.КолОстаток,
                    РезервыОстатки.КолОстаток,
                    0,
                    0,
                    0,
                    0,
                    0
                ИЗ
                    БазовыеДанные КАК БазовыеДанные
                        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Резервы.Остатки(
                                &ДатаКон,
                                (НЕ &ПоФилиалу
                                    ИЛИ Филиал = &Филиал)
                                    И (НЕ &ПоФирме
                                        ИЛИ ДокЗаказ.Фирма = &Фирма)) КАК РезервыОстатки
                        ПО БазовыеДанные.ВариантИсполнения = РезервыОстатки.ВариантИсполнения
                
                ОБЪЕДИНИТЬ ВСЕ
                
                ВЫБРАТЬ
                    БазовыеДанные.ВариантИсполнения,
                    0,
                    0,
                    0,
                    РезервыТМЦПереданныеОстатки.КолОстаток,
                    0,
                    РезервыТМЦПереданныеОстатки.КолОстаток,
                    0,
                    0,
                    0,
                    0
                ИЗ
                    БазовыеДанные КАК БазовыеДанные
                        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.РезервыТМЦПереданные.Остатки(&ДатаКон, ) КАК РезервыТМЦПереданныеОстатки
                        ПО БазовыеДанные.ВариантИсполнения = РезервыТМЦПереданныеОстатки.ВариантИсполнения
                ГДЕ
                    (НЕ &ПоФирме
                            ИЛИ РезервыТМЦПереданныеОстатки.ДокЗаказ.Фирма = &Фирма)
                
                ОБЪЕДИНИТЬ ВСЕ
                
                ВЫБРАТЬ
                    БазовыеДанные.ВариантИсполнения,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    ОжидаемыеПоступленияТМЦОстатки.КолОстаток,
                    0,
                    0,
                    0
                ИЗ
                    БазовыеДанные КАК БазовыеДанные
                        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОжидаемыеПоступленияТМЦ.Остатки(
                                &ДатаКон,
                                (НЕ &ПоФилиалу
                                    ИЛИ Филиал = &Филиал)
                                    И (НЕ &ПоФирме
                                        ИЛИ Фирма = &Фирма)
                                    И (НЕ &УказанГоризонтАнализаПотребностей
                                        ИЛИ НЕ &СУчетомСрокаПоставки
                                            И ЗаказОбеспечение.ДатаИсполнения <= &ГоризонтАнализаПотребностей
                                        ИЛИ &СУчетомСрокаПоставки
                                            И ВЫБОР
                                                КОГДА ВариантИсполнения.СрокПоставки = 0
                                                    ТОГДА ДОБАВИТЬКДАТЕ(ЗаказОбеспечение.ДатаИсполнения, ДЕНЬ, -Номенклатура.СрокПоставки) <= &ГоризонтАнализаПотребностей
                                                ИНАЧЕ ДОБАВИТЬКДАТЕ(ЗаказОбеспечение.ДатаИсполнения, ДЕНЬ, -ВариантИсполнения.СрокПоставки) <= &ГоризонтАнализаПотребностей
                                            КОНЕЦ)) КАК ОжидаемыеПоступленияТМЦОстатки
                        ПО БазовыеДанные.ВариантИсполнения = ОжидаемыеПоступленияТМЦОстатки.ВариантИсполнения
                ГДЕ
                    (&ПоФилиалу
                            ИЛИ НЕ ОжидаемыеПоступленияТМЦОстатки.ЗаказОбеспечение ССЫЛКА Документ.ЗаказНаПеремещениеТМЦМеждуФилиалами)
                    И (НЕ &ТолькоУтвержденныеЗаказыОбеспечение
                            ИЛИ ОжидаемыеПоступленияТМЦОстатки.ЗаказОбеспечение.Утвержден)
                
                ОБЪЕДИНИТЬ ВСЕ
                
                ВЫБРАТЬ
                    РасходТМЦ_Сводно.ВариантИсполнения,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    РасходТМЦ_Сводно.КолРасходЗаДень,
                    0,
                    0
                ИЗ
                    (ВЫБРАТЬ
                        БазовыеДанные.ВариантИсполнения КАК ВариантИсполнения,
                        ВЫБОР
                            КОГДА &ДнейВПериоде = 0
                                ТОГДА 0
                            ИНАЧЕ ОстаткиТМЦОбороты.КолРасход / &ДнейВПериоде
                        КОНЕЦ КАК КолРасходЗаДень
                    ИЗ
                        БазовыеДанные КАК БазовыеДанные
                            ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТМЦ.Обороты(&АнализРасходов_ДатаНач, &АнализРасходов_ДатаКон, Регистратор, ) КАК ОстаткиТМЦОбороты
                            ПО БазовыеДанные.ВариантИсполнения = ОстаткиТМЦОбороты.ВариантИсполнения
                    ГДЕ
                        НЕ ОстаткиТМЦОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТМЦ
                        И &ТекстУсловий_ОстаткиТМЦОбороты_Регистратор
                        И (НЕ &ПоФирме
                                ИЛИ ОстаткиТМЦОбороты.Фирма = &Фирма)
                    
                    ОБЪЕДИНИТЬ ВСЕ
                    
                    ВЫБРАТЬ
                        ВводРасходаТМЦТЧ.ВариантИсполнения,
                        ВЫБОР
                            КОГДА &ДнейВПериоде = 0
                                ТОГДА 0
                            ИНАЧЕ ВводРасходаТМЦТЧ.Кол * ВводРасходаТМЦТЧ.Коэффициент / &ДнейВПериоде
                        КОНЕЦ
                    ИЗ
                        БазовыеДанные КАК БазовыеДанные
                            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВводРасходаТМЦ.ТЧ КАК ВводРасходаТМЦТЧ
                            ПО БазовыеДанные.ВариантИсполнения = ВводРасходаТМЦТЧ.ВариантИсполнения
                    ГДЕ
                        ВводРасходаТМЦТЧ.Ссылка.ПометкаУдаления = ЛОЖЬ
                        И ВводРасходаТМЦТЧ.Ссылка.Дата >= &АнализРасходов_ДатаНач
                        И ВводРасходаТМЦТЧ.Ссылка.Дата <= &АнализРасходов_ДатаКон) КАК РасходТМЦ_Сводно
                
                ОБЪЕДИНИТЬ ВСЕ
                
                ВЫБРАТЬ
                    БазовыеДанные.ВариантИсполнения,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    МинимальныеОстаткиТМЦ.Кол,
                    0
                ИЗ
                    БазовыеДанные КАК БазовыеДанные
                        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МинимальныеОстаткиТМЦ КАК МинимальныеОстаткиТМЦ
                        ПО БазовыеДанные.ВариантИсполнения = МинимальныеОстаткиТМЦ.ВариантИсполнения
                            И (МинимальныеОстаткиТМЦ.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка))
                
                ОБЪЕДИНИТЬ ВСЕ
                
                ВЫБРАТЬ
                    БазовыеДанные.ВариантИсполнения,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    ОстаткиТМЦОстатки.КолОстаток
                ИЗ
                    БазовыеДанные КАК БазовыеДанные
                        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТМЦ.Остатки(&ДатаКон, Склад В (&СкладМатериалов)) КАК ОстаткиТМЦОстатки
                        ПО БазовыеДанные.ВариантИсполнения = ОстаткиТМЦОстатки.ВариантИсполнения) КАК РазвернутыеДополнительныеДанные
            
            СГРУППИРОВАТЬ ПО
                РазвернутыеДополнительныеДанные.ВариантИсполнения) КАК ДополнительныеДанные
            ПО БазовыеДанные.ВариантИсполнения = ДополнительныеДанные.ВариантИсполнения) КАК РассчитанныеДанные
{УПОРЯДОЧИТЬ ПО
    Номенклатура.*,
    ВариантИсполнения.*,
    ОснПоставщик.*}
ИТОГИ
    СУММА(КолПотребностьВнешнаяя),
    СУММА(КолПотребностьПроизводства),
    СУММА(КолПотребностьВнутренняя),
    МАКСИМУМ(НормаПополнения),
    МАКСИМУМ(МинПартияЗакупки),
    МАКСИМУМ(СрокПоставкиДней),
    СУММА(КолОстаток),
    СУММА(КолОстаток_ТМЦ),
    СУММА(КолОстаток_ТМЦПереданные),
    СУММА(КолРезерв),
    СУММА(КолРезерв_ТМЦ),
    СУММА(КолРезерв_ТМЦПереданные),
    СУММА(КолОжидаемыеПоступления),
    СУММА(КолРасходЗаДень),
    СУММА(КолМинОстаток),
    СУММА(КолСвободныйОстаток),
    СУММА(КолПрофицит),
    СУММА(КолОстаток_СкладМатериалов)
ПО
    ОБЩИЕ
{ИТОГИ ПО
    Номенклатура.*,
    ВариантИсполнения.*,
    КолПотребностьВнешнаяя,
    КолПотребностьПроизводства,
    КолПотребностьВнутренняя,
    ОснПоставщик.*,
    Активность,
    РазрешитьНесколькоВариантовИсполнения,
    НормаПополнения,
    СрокПоставкиДней,
    КолОстаток,
    КолОстаток_ТМЦ,
    КолОстаток_ТМЦПереданные,
    КолРезерв,
    КолРезерв_ТМЦ,
    КолРезерв_ТМЦПереданные,
    КолРасходЗаДень,
    КолМинОстаток,
    КолСвободныйОстаток,
    КолОстаток_СкладМатериалов,
    Поставщик.*,
    НоменклатураПоставщика,
    ВариантИсполненияПоставщика}
Показать
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
4. EVKash 14 09.07.20 10:12 Сейчас в теме
(1) левым соединением по номенклатуре. поставщика в колонку, номенклатуру поставщика в ресурс по максимуму. не?
6. user1008893 09.07.20 10:32 Сейчас в теме
(4)а если будет у одной номенклатуры несколько номенклатур поставщиков
7. EVKash 14 09.07.20 10:59 Сейчас в теме
(6) а что по вашему должно происходить в таком случае?
можно в вычисляемом поле тогда конкантенировать наименования и его в ресурс, но тогда расшифровкой они открываться не будут.
8. user1008893 09.07.20 11:10 Сейчас в теме
(7)Нужно получить отчет вот такого вида, это не СКД. Хорошо,а если мы получим данные вот в такой форме после запроса,то у меня не получается получить данные на форме макета, потому что группировка не дает и значение становится Null.
Прикрепленные файлы:
9. EVKash 14 09.07.20 11:35 Сейчас в теме
(8) если не СКД, то только вам видно как идет заполнение...
10. user1008893 09.07.20 11:39 Сейчас в теме
(9)
	// получим таблицу группировок
	_ТаблГр = ИзмеренияСтроки.Скопировать(Новый Структура("Использование", Истина));
	
	ЗапрВыборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, _ТаблГр[0].ИмяИзмерения);
    	
	ВхТаблДок.НачатьАвтогруппировкуСтрок();
	ВывестиГруппировку(_Макет, ЗапрВыборка, "Строки", 0, _ТаблГр, 0, ВхТаблДок);
	ВхТаблДок.ЗакончитьАвтогруппировкуСтрок();
Показать

Процедура ВывестиГруппировку(ВхМакет, ВхЗапрВыб, ВхТипГр, ВхНомГр, ВхТаблГр, ВхУровень, ВхТаблДок, ВхТаблПакетныйЗаказПоставщику = Неопределено)
	
	_ДнейВМесяце = 30;
	
	Если ВхУровень >= 5 Тогда // максимум 5 уровней (0-4) 
		Возврат;
	КонецЕсли;	
	
	_ИмяСекции                  = ?(ВхТипГр = "Строки", "Гр" + ВхУровень, "ГрИтоги");
	_ИмяГр                      = ВхТаблГр[ВхНомГр].ИмяИзмерения;
	_ВыводитьИтогиПоГруппировке = ВхТаблГр[ВхНомГр].ВыводитьИтоги;
	_ТипИзмерения               = ВхТаблГр[ВхНомГр].ТипИзмерения;
	
	Пока ВхЗапрВыб.Следующий() Цикл
		
		// "_ИмяСекции|Начало"
		Если ВхТипГр = "Итоги" Тогда 
			
			Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
			ВхТаблДок.Вывести(Область, ВхУровень);
			
		Иначе	
			
			_ЗначениеГр = ВхЗапрВыб[_ИмяГр]; // значение группировки по имени
			
			Если ВхНомГр = (ВхТаблГр.Количество() - 1) И _ИмяГр = "ВариантИсполнения" Тогда // последняя группировка ("ВариантИсполнения")
				Если глПустоеЗначение(_ЗначениеГр) Тогда
					Продолжить;	
				КонецЕсли; 	
			КонецЕсли;
            			
			Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Начало");
			Если ТипЗнч(_ЗначениеГр) = Тип("СправочникСсылка.Номенклатура") Тогда
				Если _ЗначениеГр.ЭтоГруппа Тогда
					Область.Параметры.ЗначениеГрСтр = ВРЕГ(глНоменклатураСтр(_ЗначениеГр));
				Иначе
					
					Если мИспользоватьАртикулы Тогда
						Область.Параметры.Артикул 	= _ЗначениеГр.Артикул;
					КонецЕсли;
					
					Область.Параметры.ЗначениеГрСтр = глНоменклатураСтр(_ЗначениеГр, Ложь) + ", " +  _ЗначениеГр[ИспользуемыеЕдиницыИзмерения];
					
					// для номенклатуры (элементов -> итоги будем выводить при условии, что тип измерения выбран как "Иерархия")
					Если _ТипИзмерения = ТипИзмеренияПостроителяОтчета.Иерархия Тогда
						_ВыводитьИтогиПоГруппировке = Истина;
					КонецЕсли;
					
				КонецЕсли;
			Иначе
				
				Если мИспользоватьАртикулы 
					И ТипЗнч(_ЗначениеГр) = Тип("СправочникСсылка.ВариантыИсполнения") Тогда 
					
					Область.Параметры.Артикул 	= _ЗначениеГр.Артикул;
					
				КонецЕсли;
				
				Область.Параметры.ЗначениеГрСтр = _ЗначениеГр;
				
			КонецЕсли; 
			Область.Параметры.Расшифровка   = _ЗначениеГр;
			ВхТаблДок.Вывести(Область, ВхУровень);
		КонецЕсли;	
						
		// "_ИмяСекции|ВертикальныйРазделитель"
		Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|ВертикальныйРазделитель1");
		ВхТаблДок.Присоединить(Область);
		
		   Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Поставщик");
			Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
				 Тогда
				Область.Параметры.ЗначениеГрСтрПостав 	= ВхЗапрВыб.НоменклатураПоставщика; 
			иначе Если  _ИмяГр = "ВариантИсполнения" тогда
				Область.Параметры.ЗначениеГрСтрПостав 	= ВхЗапрВыб.ВариантИсполненияПоставщика;
				КонецЕсли;
			КонецЕсли;
			ВхТаблДок.Присоединить(Область);
			 Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Поставщик1");
			Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
				 Тогда
				Область.Параметры.ЗначениеГрСтрПостав1 	= ВхЗапрВыб.НоменклатураПоставщика; 
			иначе Если  _ИмяГр = "ВариантИсполнения" тогда
				Область.Параметры.ЗначениеГрСтрПостав1 	= ВхЗапрВыб.ВариантИсполненияПоставщика;
				КонецЕсли;
			КонецЕсли;
			ВхТаблДок.Присоединить(Область);
			 Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Поставщик2");
			Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
				 Тогда
				Область.Параметры.ЗначениеГрСтрПостав2 	= ВхЗапрВыб.НоменклатураПоставщика; 
			иначе Если  _ИмяГр = "ВариантИсполнения" тогда
				Область.Параметры.ЗначениеГрСтрПостав2 	= ВхЗапрВыб.ВариантИсполненияПоставщика;
				КонецЕсли;
			КонецЕсли;
			ВхТаблДок.Присоединить(Область);
Показать
11. comptr 30 09.07.20 12:57 Сейчас в теме
12. user1008893 09.07.20 13:00 Сейчас в теме
(11)Это не СКД,Вот и хочу вывести,но номенклатура поставщика null
13. user1008893 09.07.20 13:01 Сейчас в теме +1 $m
(11)Т.е. в запросе то он получает значение,а при выводе,нужно глубже в группировку уйти похоже,пока что не пойму
2. Akuji 22 09.07.20 10:04 Сейчас в теме
Помести результат запроса во вложенный или временную таблицу. И в нее уже добавляй новый регистр.
5. user1008893 09.07.20 10:13 Сейчас в теме
(2) Вот так? Получается тоже самое
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	СвернутыеБазовыеДанные.Номенклатура КАК Номенклатура,
	СвернутыеБазовыеДанные.ВариантИсполнения КАК ВариантИсполнения,
	СвернутыеБазовыеДанные.КолПотребностьВнешнаяя КАК КолПотребностьВнешнаяя,
	СвернутыеБазовыеДанные.КолПотребностьПроизводства КАК КолПотребностьПроизводства,
	СвернутыеБазовыеДанные.КолПотребностьВнутренняя КАК КолПотребностьВнутренняя,
	СвернутыеБазовыеДанные.ОснПоставщик КАК ОснПоставщик,
	СвернутыеБазовыеДанные.Активность КАК Активность,
	&БазоваяЕдИзм КАК ЕдИзм,
	&БазоваяЕдИзмКоэффициент КАК ЕдИзмКоэффициент,
	ВЫБОР
		КОГДА СвернутыеБазовыеДанные.Номенклатура.ОснЕдИзм_Закупки = ЗНАЧЕНИЕ(Справочник.ЕдИзм.ПустаяСсылка)
			ТОГДА СвернутыеБазовыеДанные.Номенклатура.БазоваяЕдИзм.Коэффициент
		ИНАЧЕ СвернутыеБазовыеДанные.Номенклатура.ОснЕдИзм_Закупки.Коэффициент
	КОНЕЦ КАК ЕдИзм_ЗакупкиКоэффициент
ПОМЕСТИТЬ БазовыеДанные
ИЗ
	(ВЫБРАТЬ
		РазвернутыеБазовыеДанные.Номенклатура КАК Номенклатура,
		РазвернутыеБазовыеДанные.ВариантИсполнения КАК ВариантИсполнения,
		ВЫБОР
			КОГДА РазвернутыеБазовыеДанные.ВариантИсполнения.Активность
				ТОГДА РазвернутыеБазовыеДанные.Номенклатура.Активность
			ИНАЧЕ ЛОЖЬ
		КОНЕЦ КАК Активность,
		ВЫБОР
			КОГДА РазвернутыеБазовыеДанные.ВариантИсполнения.ОснПоставщик = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
				ТОГДА РазвернутыеБазовыеДанные.Номенклатура.ОснПоставщик
			ИНАЧЕ РазвернутыеБазовыеДанные.ВариантИсполнения.ОснПоставщик
		КОНЕЦ КАК ОснПоставщик,
		СУММА(РазвернутыеБазовыеДанные.КолПотребностьВнешнаяя) КАК КолПотребностьВнешнаяя,
		СУММА(РазвернутыеБазовыеДанные.КолПотребностьПроизводства) КАК КолПотребностьПроизводства,
		СУММА(РазвернутыеБазовыеДанные.КолПотребностьВнутренняя) КАК КолПотребностьВнутренняя
	ИЗ
		(ВЫБРАТЬ
			ПотребностиВТМЦ_ПоВидамПотребностей.Номенклатура КАК Номенклатура,
			ПотребностиВТМЦ_ПоВидамПотребностей.ВариантИсполнения КАК ВариантИсполнения,
			ПотребностиВТМЦ_ПоВидамПотребностей.КолПотребностьВнешняя КАК КолПотребностьВнешнаяя,
			ПотребностиВТМЦ_ПоВидамПотребностей.КолПотребностьПроизводственная КАК КолПотребностьПроизводства,
			ПотребностиВТМЦ_ПоВидамПотребностей.КолПотребностьВнутренняя КАК КолПотребностьВнутренняя
		ИЗ
			(ВЫБРАТЬ
				ПотребностиВТМЦ.ВидПотребности КАК ВидПотребности,
				ПотребностиВТМЦ.Номенклатура КАК Номенклатура,
				ПотребностиВТМЦ.ВариантИсполнения КАК ВариантИсполнения,
				ПотребностиВТМЦ.КолОстаток КАК КолОстаток,
				ВЫБОР
					КОГДА ПотребностиВТМЦ.ВидПотребности = "Внешняя"
							ИЛИ ПотребностиВТМЦ.ВидПотребности = "Межфилиальная"
						ТОГДА ПотребностиВТМЦ.КолОстаток
					ИНАЧЕ 0
				КОНЕЦ КАК КолПотребностьВнешняя,
				ВЫБОР
					КОГДА ПотребностиВТМЦ.ВидПотребности = "Внутренняя"
						ТОГДА ПотребностиВТМЦ.КолОстаток
					ИНАЧЕ 0
				КОНЕЦ КАК КолПотребностьВнутренняя,
				ВЫБОР
					КОГДА ПотребностиВТМЦ.ВидПотребности = "Производственная"
						ТОГДА ПотребностиВТМЦ.КолОстаток
					ИНАЧЕ 0
				КОНЕЦ КАК КолПотребностьПроизводственная
			ИЗ
				(ВЫБРАТЬ
					ВЫБОР
						КОГДА ПотребностиВТМЦОстатки.ЗаказПотребность ССЫЛКА Документ.ЗаказНаПроизводство
							ТОГДА "Производственная"
						КОГДА ПотребностиВТМЦОстатки.ЗаказПотребность ССЫЛКА Документ.ЗаказПокупателя
							ТОГДА "Внешняя"
						КОГДА ПотребностиВТМЦОстатки.ЗаказПотребность ССЫЛКА Документ.ЗаказВнутренний
							ТОГДА "Внутренняя"
						КОГДА ПотребностиВТМЦОстатки.ЗаказПотребность ССЫЛКА Документ.ЗаказНаПеремещениеТМЦМеждуФилиалами
							ТОГДА "Межфилиальная"
					КОНЕЦ КАК ВидПотребности,
					ПотребностиВТМЦОстатки.Номенклатура КАК Номенклатура,
					ПотребностиВТМЦОстатки.ВариантИсполнения КАК ВариантИсполнения,
					ПотребностиВТМЦОстатки.КолОстаток КАК КолОстаток
				ИЗ
					РегистрНакопления.ПотребностиВТМЦ.Остатки(
							&ДатаКон,
							(НЕ &УказанГоризонтАнализаПотребностей
								ИЛИ НЕ &СУчетомСрокаПоставки
									И ЗаказПотребность.ДатаОбеспеченияПотребностей <= &ГоризонтАнализаПотребностей
								ИЛИ &СУчетомСрокаПоставки
									И ВЫБОР
										КОГДА ВариантИсполнения.СрокПоставки = 0
											ТОГДА ДОБАВИТЬКДАТЕ(ЗаказПотребность.ДатаОбеспеченияПотребностей, ДЕНЬ, -Номенклатура.СрокПоставки) <= &ГоризонтАнализаПотребностей
										ИНАЧЕ ДОБАВИТЬКДАТЕ(ЗаказПотребность.ДатаОбеспеченияПотребностей, ДЕНЬ, -ВариантИсполнения.СрокПоставки) <= &ГоризонтАнализаПотребностей
									КОНЕЦ)
								И (НЕ &ПоФирме
									ИЛИ Фирма = &Фирма)
								И (НЕ &ПоФилиалу
									ИЛИ Филиал = &Филиал)) КАК ПотребностиВТМЦОстатки
				ГДЕ
					(ПотребностиВТМЦОстатки.КолОстаток > 0
							ИЛИ НЕ &БезУчетаОтрицательныхПотребностей)
					И (НЕ &ТолькоУтвержденныеЗаказыПотребности
							ИЛИ ПотребностиВТМЦОстатки.ЗаказПотребность.Утвержден)) КАК ПотребностиВТМЦ
			ГДЕ
				(&АнализВнешнейПотребности
							И ПотребностиВТМЦ.ВидПотребности = "Внешняя"
						ИЛИ &АнализВнешнейПотребности
							И &ПоФилиалу
							И ПотребностиВТМЦ.ВидПотребности = "Межфилиальная"
						ИЛИ &АнализВнутреннейПотребности
							И ПотребностиВТМЦ.ВидПотребности = "Внутренняя"
						ИЛИ &АнализПотребностиПроизводства
							И ПотребностиВТМЦ.ВидПотребности = "Производственная")) КАК ПотребностиВТМЦ_ПоВидамПотребностей
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			МинимальныеОстаткиТМЦ.Номенклатура,
			МинимальныеОстаткиТМЦ.ВариантИсполнения,
			0,
			0,
			0
		ИЗ
			РегистрСведений.МинимальныеОстаткиТМЦ КАК МинимальныеОстаткиТМЦ
		ГДЕ
			МинимальныеОстаткиТМЦ.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
			И &ОтборПоЗаданнымМинимальнымОстаткам
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			Номенклатура.Ссылка,
			ВариантыИсполнения.Ссылка,
			0,
			0,
			0
		ИЗ
			Справочник.Номенклатура КАК Номенклатура
				ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыИсполнения КАК ВариантыИсполнения
				ПО (ВариантыИсполнения.Владелец = Номенклатура.Ссылка)
		ГДЕ
			&ОтборПоИмеющимсяПотребностям = ЛОЖЬ
			И НЕ ВариантыИсполнения.Ссылка ЕСТЬ NULL) КАК РазвернутыеБазовыеДанные
	
	СГРУППИРОВАТЬ ПО
		РазвернутыеБазовыеДанные.ВариантИсполнения,
		РазвернутыеБазовыеДанные.Номенклатура,
		ВЫБОР
			КОГДА РазвернутыеБазовыеДанные.ВариантИсполнения.ОснПоставщик = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
				ТОГДА РазвернутыеБазовыеДанные.Номенклатура.ОснПоставщик
			ИНАЧЕ РазвернутыеБазовыеДанные.ВариантИсполнения.ОснПоставщик
		КОНЕЦ,
		ВЫБОР
			КОГДА РазвернутыеБазовыеДанные.ВариантИсполнения.Активность
				ТОГДА ИСТИНА
			ИНАЧЕ РазвернутыеБазовыеДанные.Номенклатура.Активность
		КОНЕЦ,
		ВЫБОР
			КОГДА РазвернутыеБазовыеДанные.ВариантИсполнения.Активность
				ТОГДА РазвернутыеБазовыеДанные.Номенклатура.Активность
			ИНАЧЕ ЛОЖЬ
		КОНЕЦ) КАК СвернутыеБазовыеДанные
ГДЕ
	&ТекстБазовыеУсловия
{ГДЕ
	СвернутыеБазовыеДанные.Номенклатура.*,
	СвернутыеБазовыеДанные.ВариантИсполнения.*,
	СвернутыеБазовыеДанные.ОснПоставщик.*}
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ПомесячныйРасходТМЦ.ВариантИсполнения КАК ВариантИсполнения,
	СУММА(ПомесячныйРасходТМЦ.КолРасход) КАК КолРасход,
	ПомесячныйРасходТМЦ.МесяцРасхода КАК МесяцРасхода
ИЗ
	(ВЫБРАТЬ
		ОстаткиТМЦОбороты.ВариантИсполнения КАК ВариантИсполнения,
		ОстаткиТМЦОбороты.КолРасход / БазовыеДанные.ЕдИзмКоэффициент КАК КолРасход,
		НАЧАЛОПЕРИОДА(ОстаткиТМЦОбороты.Период, МЕСЯЦ) КАК МесяцРасхода
	ИЗ
		РегистрНакопления.ОстаткиТМЦ.Обороты(
				&АнализРасходов_ДатаНач,
				&АнализРасходов_ДатаКон,
				Регистратор,
				НЕ &ПоФилиалу
					ИЛИ Склад.Владелец = &Филиал) КАК ОстаткиТМЦОбороты
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ БазовыеДанные КАК БазовыеДанные
			ПО ОстаткиТМЦОбороты.ВариантИсполнения = БазовыеДанные.ВариантИсполнения
	ГДЕ
		НЕ ОстаткиТМЦОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТМЦ
		И &ТекстУсловий_ОстаткиТМЦОбороты_Регистратор
		И (НЕ &ПоФирме
				ИЛИ ОстаткиТМЦОбороты.Фирма = &Фирма)
		И (&ПоФилиалу
				ИЛИ НЕ ОстаткиТМЦОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТМЦМеждуФилиалами)
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		ВводРасходаТМЦТЧ.ВариантИсполнения,
		ВводРасходаТМЦТЧ.Кол * ВводРасходаТМЦТЧ.Коэффициент / БазовыеДанные.ЕдИзмКоэффициент,
		НАЧАЛОПЕРИОДА(ВводРасходаТМЦТЧ.Ссылка.Дата, МЕСЯЦ)
	ИЗ
		БазовыеДанные КАК БазовыеДанные
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВводРасходаТМЦ.ТЧ КАК ВводРасходаТМЦТЧ
			ПО БазовыеДанные.ВариантИсполнения = ВводРасходаТМЦТЧ.ВариантИсполнения
	ГДЕ
		ВводРасходаТМЦТЧ.Ссылка.ПометкаУдаления = ЛОЖЬ
		И ВводРасходаТМЦТЧ.Ссылка.Дата >= &АнализРасходов_ДатаНач
		И ВводРасходаТМЦТЧ.Ссылка.Дата <= &АнализРасходов_ДатаКон) КАК ПомесячныйРасходТМЦ

СГРУППИРОВАТЬ ПО
	ПомесячныйРасходТМЦ.ВариантИсполнения,
	ПомесячныйРасходТМЦ.МесяцРасхода

УПОРЯДОЧИТЬ ПО
	ПомесячныйРасходТМЦ.МесяцРасхода
ИТОГИ
	СУММА(КолРасход)
ПО
	ОБЩИЕ,
	ВариантИсполнения,
	МесяцРасхода
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	РассчитанныеДанные.Номенклатура КАК Номенклатура,
	РассчитанныеДанные.ВариантИсполнения КАК ВариантИсполнения,
	РассчитанныеДанные.КолПотребностьВнешнаяя КАК КолПотребностьВнешнаяя,
	РассчитанныеДанные.КолПотребностьПроизводства КАК КолПотребностьПроизводства,
	РассчитанныеДанные.КолПотребностьВнутренняя КАК КолПотребностьВнутренняя,
	РассчитанныеДанные.ОснПоставщик КАК ОснПоставщик,
	РассчитанныеДанные.Активность КАК Активность,
	РассчитанныеДанные.Номенклатура.РазрешитьНесколькоВариантовИсполнения КАК РазрешитьНесколькоВариантовИсполнения,
	ВЫБОР
		КОГДА РассчитанныеДанные.ВариантИсполнения.НормаПополнения = 0
			ТОГДА РассчитанныеДанные.Номенклатура.НормаПополнения
		ИНАЧЕ РассчитанныеДанные.ВариантИсполнения.НормаПополнения
	КОНЕЦ * РассчитанныеДанные.ЕдИзм_ЗакупкиКоэффициент / РассчитанныеДанные.ЕдИзмКоэффициент КАК НормаПополнения,
	ВЫБОР
		КОГДА РассчитанныеДанные.ВариантИсполнения.МинПартияЗакупки = 0
			ТОГДА РассчитанныеДанные.Номенклатура.МинПартияЗакупки
		ИНАЧЕ РассчитанныеДанные.ВариантИсполнения.МинПартияЗакупки
	КОНЕЦ * РассчитанныеДанные.ЕдИзм_ЗакупкиКоэффициент / РассчитанныеДанные.ЕдИзмКоэффициент КАК МинПартияЗакупки,
	ВЫБОР
		КОГДА РассчитанныеДанные.ВариантИсполнения.СрокПоставки = 0
			ТОГДА РассчитанныеДанные.Номенклатура.СрокПоставки
		ИНАЧЕ РассчитанныеДанные.ВариантИсполнения.СрокПоставки
	КОНЕЦ КАК СрокПоставкиДней,
	РассчитанныеДанные.КолОстаток КАК КолОстаток,
	РассчитанныеДанные.КолОстаток_ТМЦ КАК КолОстаток_ТМЦ,
	РассчитанныеДанные.КолОстаток_ТМЦПереданные КАК КолОстаток_ТМЦПереданные,
	РассчитанныеДанные.КолРезерв КАК КолРезерв,
	РассчитанныеДанные.КолРезерв_ТМЦ КАК КолРезерв_ТМЦ,
	РассчитанныеДанные.КолРезерв_ТМЦПереданные КАК КолРезерв_ТМЦПереданные,
	РассчитанныеДанные.КолОжидаемыеПоступления КАК КолОжидаемыеПоступления,
	РассчитанныеДанные.КолРасходЗаДень КАК КолРасходЗаДень,
	РассчитанныеДанные.КолМинОстаток КАК КолМинОстаток,
	РассчитанныеДанные.КолСвободныйОстаток КАК КолСвободныйОстаток,
	РассчитанныеДанные.КолПрофицит КАК КолПрофицит,
	РассчитанныеДанные.ЕдИзм КАК ЕдИзм,
	РассчитанныеДанные.ЕдИзмКоэффициент КАК ЕдИзмКоэффициент,
	РассчитанныеДанные.ЕдИзм_ЗакупкиКоэффициент КАК ЕдИзм_ЗакупкиКоэффициент,
	РассчитанныеДанные.КолОстаток_СкладМатериалов КАК КолОстаток_СкладМатериалов,
	НоменклатураПоставщиков.Поставщик КАК Поставщик,
	НоменклатураПоставщиков.НоменклатураПоставщика КАК НоменклатураПоставщика,
	НоменклатураПоставщиков.ВариантИсполненияПоставщика КАК ВариантИсполненияПоставщика
{ВЫБРАТЬ
	Номенклатура.*,
	ВариантИсполнения.*,
	ОснПоставщик.*}
ИЗ
	(ВЫБРАТЬ
		БазовыеДанные.Номенклатура КАК Номенклатура,
		БазовыеДанные.ВариантИсполнения КАК ВариантИсполнения,
		БазовыеДанные.КолПотребностьВнешнаяя / БазовыеДанные.ЕдИзмКоэффициент КАК КолПотребностьВнешнаяя,
		БазовыеДанные.КолПотребностьПроизводства / БазовыеДанные.ЕдИзмКоэффициент КАК КолПотребностьПроизводства,
		БазовыеДанные.КолПотребностьВнутренняя / БазовыеДанные.ЕдИзмКоэффициент КАК КолПотребностьВнутренняя,
		БазовыеДанные.ОснПоставщик КАК ОснПоставщик,
		БазовыеДанные.Активность КАК Активность,
		ЕСТЬNULL(ДополнительныеДанные.КолОстаток, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолОстаток,
		ЕСТЬNULL(ДополнительныеДанные.КолОстаток_ТМЦ, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолОстаток_ТМЦ,
		ЕСТЬNULL(ДополнительныеДанные.КолОстаток_ТМЦПереданные, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолОстаток_ТМЦПереданные,
		ЕСТЬNULL(ДополнительныеДанные.КолРезерв, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолРезерв,
		ЕСТЬNULL(ДополнительныеДанные.КолРезерв_ТМЦ, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолРезерв_ТМЦ,
		ЕСТЬNULL(ДополнительныеДанные.КолРезерв_ТМЦПереданные, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолРезерв_ТМЦПереданные,
		ЕСТЬNULL(ДополнительныеДанные.КолОжидаемыеПоступления, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолОжидаемыеПоступления,
		ЕСТЬNULL(ДополнительныеДанные.КолРасходЗаДень, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолРасходЗаДень,
		ЕСТЬNULL(ДополнительныеДанные.КолМинОстаток, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолМинОстаток,
		(ЕСТЬNULL(ДополнительныеДанные.КолОстаток, 0) - ЕСТЬNULL(ДополнительныеДанные.КолРезерв, 0)) / БазовыеДанные.ЕдИзмКоэффициент КАК КолСвободныйОстаток,
		(ЕСТЬNULL(ДополнительныеДанные.КолОстаток, 0) + ЕСТЬNULL(ДополнительныеДанные.КолОжидаемыеПоступления, 0) - БазовыеДанные.КолПотребностьВнешнаяя - БазовыеДанные.КолПотребностьПроизводства - БазовыеДанные.КолПотребностьВнутренняя - ЕСТЬNULL(ДополнительныеДанные.КолМинОстаток, 0) * &ПрофицитСУчетомМинОстатка) / БазовыеДанные.ЕдИзмКоэффициент КАК КолПрофицит,
		БазовыеДанные.ЕдИзм КАК ЕдИзм,
		БазовыеДанные.ЕдИзмКоэффициент КАК ЕдИзмКоэффициент,
		БазовыеДанные.ЕдИзм_ЗакупкиКоэффициент КАК ЕдИзм_ЗакупкиКоэффициент,
		ЕСТЬNULL(ДополнительныеДанные.КолОстаток_СкладМатериалов, 0) / БазовыеДанные.ЕдИзмКоэффициент КАК КолОстаток_СкладМатериалов
	ИЗ
		БазовыеДанные КАК БазовыеДанные
			ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
				РазвернутыеДополнительныеДанные.ВариантИсполнения КАК ВариантИсполнения,
				СУММА(РазвернутыеДополнительныеДанные.КолОстаток) КАК КолОстаток,
				СУММА(РазвернутыеДополнительныеДанные.КолОстаток_ТМЦ) КАК КолОстаток_ТМЦ,
				СУММА(РазвернутыеДополнительныеДанные.КолОстаток_ТМЦПереданные) КАК КолОстаток_ТМЦПереданные,
				СУММА(РазвернутыеДополнительныеДанные.КолРезерв) КАК КолРезерв,
				СУММА(РазвернутыеДополнительныеДанные.КолРезерв_ТМЦ) КАК КолРезерв_ТМЦ,
				СУММА(РазвернутыеДополнительныеДанные.КолРезерв_ТМЦПереданные) КАК КолРезерв_ТМЦПереданные,
				СУММА(РазвернутыеДополнительныеДанные.КолОжидаемыеПоступления) КАК КолОжидаемыеПоступления,
				СУММА(РазвернутыеДополнительныеДанные.КолРасходЗаДень) КАК КолРасходЗаДень,
				СУММА(РазвернутыеДополнительныеДанные.КолМинОстаток) КАК КолМинОстаток,
				СУММА(РазвернутыеДополнительныеДанные.КолОстаток_СкладМатериалов) КАК КолОстаток_СкладМатериалов
			ИЗ
				(ВЫБРАТЬ
					БазовыеДанные.ВариантИсполнения КАК ВариантИсполнения,
					0 КАК КолОстаток,
					0 КАК КолОстаток_ТМЦ,
					0 КАК КолОстаток_ТМЦПереданные,
					0 КАК КолРезерв,
					0 КАК КолРезерв_ТМЦ,
					0 КАК КолРезерв_ТМЦПереданные,
					0 КАК КолОжидаемыеПоступления,
					0 КАК КолРасходЗаДень,
					0 КАК КолМинОстаток,
					0 КАК КолОстаток_СкладМатериалов
				ИЗ
					БазовыеДанные КАК БазовыеДанные
				
				ОБЪЕДИНИТЬ ВСЕ
				
				ВЫБРАТЬ
					БазовыеДанные.ВариантИсполнения,
					ОстаткиТМЦОстатки.КолОстаток,
					ОстаткиТМЦОстатки.КолОстаток,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0
				ИЗ
					БазовыеДанные КАК БазовыеДанные
						ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТМЦ.Остатки(&ДатаКон, ) КАК ОстаткиТМЦОстатки
						ПО БазовыеДанные.ВариантИсполнения = ОстаткиТМЦОстатки.ВариантИсполнения
				ГДЕ
					(НЕ &ПоФирме
							ИЛИ ОстаткиТМЦОстатки.Фирма = &Фирма)
					И ОстаткиТМЦОстатки.Склад = &СкладМатериалов
				{ГДЕ
					ОстаткиТМЦОстатки.Склад.*}
				
				ОБЪЕДИНИТЬ ВСЕ
				
				ВЫБРАТЬ
					БазовыеДанные.ВариантИсполнения,
					ОстаткиТМЦПереданныеОстатки.КолОстаток,
					0,
					ОстаткиТМЦПереданныеОстатки.КолОстаток,
					0,
					0,
					0,
					0,
					0,
					0,
					0
				ИЗ
					БазовыеДанные КАК БазовыеДанные
						ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТМЦПереданные.Остатки(&ДатаКон, ) КАК ОстаткиТМЦПереданныеОстатки
						ПО БазовыеДанные.ВариантИсполнения = ОстаткиТМЦПереданныеОстатки.ВариантИсполнения
				ГДЕ
					(НЕ &ПоФирме
							ИЛИ ОстаткиТМЦПереданныеОстатки.Фирма = &Фирма)
				
				ОБЪЕДИНИТЬ ВСЕ
				
				ВЫБРАТЬ
					БазовыеДанные.ВариантИсполнения,
					0,
					0,
					0,
					РезервыОстатки.КолОстаток,
					РезервыОстатки.КолОстаток,
					0,
					0,
					0,
					0,
					0
				ИЗ
					БазовыеДанные КАК БазовыеДанные
						ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Резервы.Остатки(
								&ДатаКон,
								(НЕ &ПоФилиалу
									ИЛИ Филиал = &Филиал)
									И (НЕ &ПоФирме
										ИЛИ ДокЗаказ.Фирма = &Фирма)) КАК РезервыОстатки
						ПО БазовыеДанные.ВариантИсполнения = РезервыОстатки.ВариантИсполнения
				
				ОБЪЕДИНИТЬ ВСЕ
				
				ВЫБРАТЬ
					БазовыеДанные.ВариантИсполнения,
					0,
					0,
					0,
					РезервыТМЦПереданныеОстатки.КолОстаток,
					0,
					РезервыТМЦПереданныеОстатки.КолОстаток,
					0,
					0,
					0,
					0
				ИЗ
					БазовыеДанные КАК БазовыеДанные
						ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.РезервыТМЦПереданные.Остатки(&ДатаКон, ) КАК РезервыТМЦПереданныеОстатки
						ПО БазовыеДанные.ВариантИсполнения = РезервыТМЦПереданныеОстатки.ВариантИсполнения
				ГДЕ
					(НЕ &ПоФирме
							ИЛИ РезервыТМЦПереданныеОстатки.ДокЗаказ.Фирма = &Фирма)
				
				ОБЪЕДИНИТЬ ВСЕ
				
				ВЫБРАТЬ
					БазовыеДанные.ВариантИсполнения,
					0,
					0,
					0,
					0,
					0,
					0,
					ОжидаемыеПоступленияТМЦОстатки.КолОстаток,
					0,
					0,
					0
				ИЗ
					БазовыеДанные КАК БазовыеДанные
						ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОжидаемыеПоступленияТМЦ.Остатки(
								&ДатаКон,
								(НЕ &ПоФилиалу
									ИЛИ Филиал = &Филиал)
									И (НЕ &ПоФирме
										ИЛИ Фирма = &Фирма)
									И (НЕ &УказанГоризонтАнализаПотребностей
										ИЛИ НЕ &СУчетомСрокаПоставки
											И ЗаказОбеспечение.ДатаИсполнения <= &ГоризонтАнализаПотребностей
										ИЛИ &СУчетомСрокаПоставки
											И ВЫБОР
												КОГДА ВариантИсполнения.СрокПоставки = 0
													ТОГДА ДОБАВИТЬКДАТЕ(ЗаказОбеспечение.ДатаИсполнения, ДЕНЬ, -Номенклатура.СрокПоставки) <= &ГоризонтАнализаПотребностей
												ИНАЧЕ ДОБАВИТЬКДАТЕ(ЗаказОбеспечение.ДатаИсполнения, ДЕНЬ, -ВариантИсполнения.СрокПоставки) <= &ГоризонтАнализаПотребностей
											КОНЕЦ)) КАК ОжидаемыеПоступленияТМЦОстатки
						ПО БазовыеДанные.ВариантИсполнения = ОжидаемыеПоступленияТМЦОстатки.ВариантИсполнения
				ГДЕ
					(&ПоФилиалу
							ИЛИ НЕ ОжидаемыеПоступленияТМЦОстатки.ЗаказОбеспечение ССЫЛКА Документ.ЗаказНаПеремещениеТМЦМеждуФилиалами)
					И (НЕ &ТолькоУтвержденныеЗаказыОбеспечение
							ИЛИ ОжидаемыеПоступленияТМЦОстатки.ЗаказОбеспечение.Утвержден)
				
				ОБЪЕДИНИТЬ ВСЕ
				
				ВЫБРАТЬ
					РасходТМЦ_Сводно.ВариантИсполнения,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					РасходТМЦ_Сводно.КолРасходЗаДень,
					0,
					0
				ИЗ
					(ВЫБРАТЬ
						БазовыеДанные.ВариантИсполнения КАК ВариантИсполнения,
						ВЫБОР
							КОГДА &ДнейВПериоде = 0
								ТОГДА 0
							ИНАЧЕ ОстаткиТМЦОбороты.КолРасход / &ДнейВПериоде
						КОНЕЦ КАК КолРасходЗаДень
					ИЗ
						БазовыеДанные КАК БазовыеДанные
							ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТМЦ.Обороты(&АнализРасходов_ДатаНач, &АнализРасходов_ДатаКон, Регистратор, ) КАК ОстаткиТМЦОбороты
							ПО БазовыеДанные.ВариантИсполнения = ОстаткиТМЦОбороты.ВариантИсполнения
					ГДЕ
						НЕ ОстаткиТМЦОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТМЦ
						И &ТекстУсловий_ОстаткиТМЦОбороты_Регистратор
						И (НЕ &ПоФирме
								ИЛИ ОстаткиТМЦОбороты.Фирма = &Фирма)
					
					ОБЪЕДИНИТЬ ВСЕ
					
					ВЫБРАТЬ
						ВводРасходаТМЦТЧ.ВариантИсполнения,
						ВЫБОР
							КОГДА &ДнейВПериоде = 0
								ТОГДА 0
							ИНАЧЕ ВводРасходаТМЦТЧ.Кол * ВводРасходаТМЦТЧ.Коэффициент / &ДнейВПериоде
						КОНЕЦ
					ИЗ
						БазовыеДанные КАК БазовыеДанные
							ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВводРасходаТМЦ.ТЧ КАК ВводРасходаТМЦТЧ
							ПО БазовыеДанные.ВариантИсполнения = ВводРасходаТМЦТЧ.ВариантИсполнения
					ГДЕ
						ВводРасходаТМЦТЧ.Ссылка.ПометкаУдаления = ЛОЖЬ
						И ВводРасходаТМЦТЧ.Ссылка.Дата >= &АнализРасходов_ДатаНач
						И ВводРасходаТМЦТЧ.Ссылка.Дата <= &АнализРасходов_ДатаКон) КАК РасходТМЦ_Сводно
				
				ОБЪЕДИНИТЬ ВСЕ
				
				ВЫБРАТЬ
					БазовыеДанные.ВариантИсполнения,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					МинимальныеОстаткиТМЦ.Кол,
					0
				ИЗ
					БазовыеДанные КАК БазовыеДанные
						ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МинимальныеОстаткиТМЦ КАК МинимальныеОстаткиТМЦ
						ПО БазовыеДанные.ВариантИсполнения = МинимальныеОстаткиТМЦ.ВариантИсполнения
							И (МинимальныеОстаткиТМЦ.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка))
				
				ОБЪЕДИНИТЬ ВСЕ
				
				ВЫБРАТЬ
					БазовыеДанные.ВариантИсполнения,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					ОстаткиТМЦОстатки.КолОстаток
				ИЗ
					БазовыеДанные КАК БазовыеДанные
						ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТМЦ.Остатки(&ДатаКон, Склад В (&СкладМатериалов)) КАК ОстаткиТМЦОстатки
						ПО БазовыеДанные.ВариантИсполнения = ОстаткиТМЦОстатки.ВариантИсполнения) КАК РазвернутыеДополнительныеДанные
			
			СГРУППИРОВАТЬ ПО
				РазвернутыеДополнительныеДанные.ВариантИсполнения) КАК ДополнительныеДанные
			ПО БазовыеДанные.ВариантИсполнения = ДополнительныеДанные.ВариантИсполнения) КАК РассчитанныеДанные
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураПоставщиков КАК НоменклатураПоставщиков
		ПО РассчитанныеДанные.Номенклатура = НоменклатураПоставщиков.Номенклатура
			И РассчитанныеДанные.ВариантИсполнения = НоменклатураПоставщиков.ВариантИсполнения
{УПОРЯДОЧИТЬ ПО
	Номенклатура.*,
	ВариантИсполнения.*,
	ОснПоставщик.*}
ИТОГИ
	СУММА(КолПотребностьВнешнаяя),
	СУММА(КолПотребностьПроизводства),
	СУММА(КолПотребностьВнутренняя),
	МАКСИМУМ(НормаПополнения),
	МАКСИМУМ(МинПартияЗакупки),
	МАКСИМУМ(СрокПоставкиДней),
	СУММА(КолОстаток),
	СУММА(КолОстаток_ТМЦ),
	СУММА(КолОстаток_ТМЦПереданные),
	СУММА(КолРезерв),
	СУММА(КолРезерв_ТМЦ),
	СУММА(КолРезерв_ТМЦПереданные),
	СУММА(КолОжидаемыеПоступления),
	СУММА(КолРасходЗаДень),
	СУММА(КолМинОстаток),
	СУММА(КолСвободныйОстаток),
	СУММА(КолПрофицит),
	СУММА(КолОстаток_СкладМатериалов)
ПО
	ОБЩИЕ
{ИТОГИ ПО
	Номенклатура.*,
	ВариантИсполнения.*,
	КолПотребностьВнешнаяя,
	КолПотребностьПроизводства,
	КолПотребностьВнутренняя,
	ОснПоставщик.*,
	Активность,
	РазрешитьНесколькоВариантовИсполнения,
	НормаПополнения,
	СрокПоставкиДней,
	КолОстаток,
	КолОстаток_ТМЦ,
	КолОстаток_ТМЦПереданные,
	КолРезерв,
	КолРезерв_ТМЦ,
	КолРезерв_ТМЦПереданные,
	КолРасходЗаДень,
	КолМинОстаток,
	КолСвободныйОстаток,
	КолОстаток_СкладМатериалов}
Показать
3. quNas 6 09.07.20 10:09 Сейчас в теме
Здравствуйте, запрос очень большой можно в личку. И демо базу нужно.
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день

Специалист техподдержки
Санкт-Петербург
зарплата от 100 руб. до 150 руб.
Полный день