8.х Не выводятся некоторые значения

Тема в разделе "Система компоновки данных (СКД)", создана пользователем selig, 8 дек 2016.

  1. TopicStarter Overlay
    selig
    Offline

    selig Опытный в 1С

    Регистрация:
    30 май 2012
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Доброго времени суток!
    Создаю отчет и написал к нему запрос. Запрос формирует пакеты, затем формируется очередной пакет с полями, в которых конструкции ВЫБОР КОГДА ... В последнем запросе просто выбираются данные из последнего пакета. В общем не суть. Запрос выводит нужные мне данные, затем я его копирую в компоновку, делаю все по минимуму настройки (группировок, упорядочивания нет) и пытаюсь сформировать отчет. Так вот данных по некоторым позициям просто нет. Какой-либо закономерности не нашел, в запросе данные по этим позициям есть, а СКД их не выводит.
    Заранее спасибо!
    upload_2016-12-8_9-18-23.png upload_2016-12-8_9-19-20.png
  2. 1с-ник
    Offline

    1с-ник Профессионал в 1С

    Регистрация:
    5 окт 2014
    Сообщения:
    988
    Симпатии:
    159
    Баллы:
    104
    Запрос в студию! (а ещё желательно с настройками СКД). Телепатов нет!
    Типичные проблемы описаны на ИТС: http://its.1c.ru/db/metod8dev#content:3093:hdoc
  3. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.722
    Симпатии:
    959
    Баллы:
    204
    Ну все логично. Все зарыто тут "делаю все по минимуму настройки (группировок, упорядочивания нет) "
    чем отличается СКД от простых запросов. Тем что запрос в СКД - это шаблон. А зам запрос будет динамически формироваться при комановке.

    Ну объясню на примере .

    Есть у вас запрос в котором две таблица Номеклатура и цены номеклатуры - соедиенены левым соединением.
    Выполняете запрос - в запросе две таблицы из обоих выбираются данные.

    Этот запрос в СКд передаете. В СКД ставите что Вам нужно выводить и номеклатуру и цену. Запрос выполняется все таблицы в запросе учвствуют.
    Затем в настрокйках говорите что выводить только номеклатуру. СКД что делает. Анализирует. цены не нужны, зачем тогда таблица с ценами и в итоге запрос у вас будет содержать только одну таблицу.

    Так скорее все и у Вас у Вас в СКД не все поля которые вы наприер в консоле берете.

    Тут либо все поля выводить надо, либо в настройах СКД ставить что эта таблица обязательна. что бы несмотря от данных она в компановке то же была
  4. TopicStarter Overlay
    selig
    Offline

    selig Опытный в 1С

    Регистрация:
    30 май 2012
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Код:
    ВЫБРАТЬ
        ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Касса
                ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.БланкиСтрогойОтчетности)
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Номенклатура)
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура)
                КОНЕЦ
        КОНЕЦ КАК Номенклатура,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Касса
                ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.БланкиСтрогойОтчетности).Код
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Номенклатура).Код
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).Код
                КОНЕЦ
        КОНЕЦ КАК Номенклатура_Код,
        ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет В ИЕРАРХИИ (&Спецодежда)
                ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто2
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто1
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Склады)
                КОНЕЦ
        КОНЕЦ КАК Склад,
        ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаПУ,
        ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК X_СуммаНачальныйОстаток,
        ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК X_КоличествоНачальныйОстаток,
        ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК X_СуммаОборотДт,
        ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК X_КоличествоОборотДт,
        ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК X_СуммаОборотКт,
        ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК X_КоличествоОборотКт,
        ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК X_Сумма,
        ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК X_Количество,
        ВЫБОР
            КОГДА ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток, 0) = 0
                    ИЛИ ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток, 0) = 0
                ТОГДА 0
            ИНАЧЕ ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток, 0) / ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток, 1)
        КОНЕЦ КАК ЦенаОстаток
    ПОМЕСТИТЬ X_Остатки
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Начало, КОНЕЦПЕРИОДА(&Конец, МЕСЯЦ), , , , &НоменклатураСклады, ) КАК ХозрасчетныйОстаткиИОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                    КОНЕЦПЕРИОДА(&Конец, МЕСЯЦ),
                    ТипЦен В
                        (ВЫБРАТЬ
                            Константы.ТипЦенПлановойСебестоимостиНоменклатуры
                        ИЗ
                            Константы КАК Константы)) КАК ЦеныНоменклатурыСрезПоследних
            ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ЦеныНоменклатурыСрезПоследних.Номенклатура
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Касса
                ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.БланкиСтрогойОтчетности)
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Номенклатура)
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура)
                КОНЕЦ
        КОНЕЦ КАК Номенклатура,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Касса
                ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.БланкиСтрогойОтчетности).Код
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Номенклатура).Код
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).Код
                КОНЕЦ
        КОНЕЦ КАК Номенклатура_Код,
        ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет В ИЕРАРХИИ (&Спецодежда)
                ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто2
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто1
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Склады)
                КОНЕЦ
        КОНЕЦ КАК Склад,
        ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаПУ,
        ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК Y_СуммаНачальныйОстаток,
        ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК Y_КоличествоНачальныйОстаток,
        ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК Y_Сумма,
        ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК Y_Количество,
        ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК Y_СуммаОборотКт,
        ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК Y_КоличествоОборотКт,
        ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК Y_СуммаКонечныйОстаток,
        ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК Y_КоличествоКонечныйОстаток
    ПОМЕСТИТЬ Y_ПриходДо6Месяцев
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(&Начало, ГОД, 6), МЕСЯЦ, 6), КОНЕЦПЕРИОДА(&Конец, МЕСЯЦ), , , , &НоменклатураСклады, ) КАК ХозрасчетныйОстаткиИОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                    КОНЕЦПЕРИОДА(&Конец, МЕСЯЦ),
                    ТипЦен В
                        (ВЫБРАТЬ
                            Константы.ТипЦенПлановойСебестоимостиНоменклатуры
                        ИЗ
                            Константы КАК Константы)) КАК ЦеныНоменклатурыСрезПоследних
            ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ЦеныНоменклатурыСрезПоследних.Номенклатура
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Касса
                ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.БланкиСтрогойОтчетности)
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Номенклатура)
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура)
                КОНЕЦ
        КОНЕЦ КАК Номенклатура,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Касса
                ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.БланкиСтрогойОтчетности).Код
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Номенклатура).Код
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).Код
                КОНЕЦ
        КОНЕЦ КАК Номенклатура_Код,
        ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет В ИЕРАРХИИ (&Спецодежда)
                ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто2
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто1
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Склады)
                КОНЕЦ
        КОНЕЦ КАК Склад,
        ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаПУ,
        ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК Z_СуммаНачальныйОстаток,
        ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК Z_КоличествоНачальныйОстаток,
        ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК Z_Сумма,
        ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК Z_Количество,
        ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК Z_СуммаОборотКт,
        ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК Z_КоличествоОборотКт,
        ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК Z_СуммаКонечныйОстаток,
        ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК Z_КоличествоКонечныйОстаток
    ПОМЕСТИТЬ Z_ПриходОт6До12Месяцев
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(ДОБАВИТЬКДАТЕ(&Начало, ГОД, 6), КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Конец, МЕСЯЦ, -6), МЕСЯЦ), , , , &НоменклатураСклады, ) КАК ХозрасчетныйОстаткиИОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                    КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Конец, МЕСЯЦ, -6), МЕСЯЦ),
                    ТипЦен В
                        (ВЫБРАТЬ
                            Константы.ТипЦенПлановойСебестоимостиНоменклатуры
                        ИЗ
                            Константы КАК Константы)) КАК ЦеныНоменклатурыСрезПоследних
            ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ЦеныНоменклатурыСрезПоследних.Номенклатура
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Касса
                ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.БланкиСтрогойОтчетности)
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Номенклатура)
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура)
                КОНЕЦ
        КОНЕЦ КАК Номенклатура,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Касса
                ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.БланкиСтрогойОтчетности).Код
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Номенклатура).Код
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).Код
                КОНЕЦ
        КОНЕЦ КАК Номенклатура_Код,
        ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет В ИЕРАРХИИ (&Спецодежда)
                ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто2
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто1
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Склады)
                КОНЕЦ
        КОНЕЦ КАК Склад,
        ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаПУ,
        ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК B_СуммаНачальныйОстаток,
        ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК B_КоличествоНачальныйОстаток,
        ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК B_Сумма,
        ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК B_Количество,
        ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК B_СуммаОборотКт,
        ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК B_КоличествоОборотКт,
        ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК B_СуммаКонечныйОстаток,
        ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК B_КоличествоКонечныйОстаток
    ПОМЕСТИТЬ B_ПриходОт1До2Лет
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(ДОБАВИТЬКДАТЕ(&Начало, ГОД, 5), КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Конец, ГОД, -1), ГОД), , , , &НоменклатураСклады, ) КАК ХозрасчетныйОстаткиИОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                    КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Конец, ГОД, -1), ГОД),
                    ТипЦен В
                        (ВЫБРАТЬ
                            Константы.ТипЦенПлановойСебестоимостиНоменклатуры
                        ИЗ
                            Константы КАК Константы)) КАК ЦеныНоменклатурыСрезПоследних
            ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ЦеныНоменклатурыСрезПоследних.Номенклатура
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Касса
                ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.БланкиСтрогойОтчетности)
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Номенклатура)
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура)
                КОНЕЦ
        КОНЕЦ КАК Номенклатура,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Касса
                ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.БланкиСтрогойОтчетности).Код
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Номенклатура).Код
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).Код
                КОНЕЦ
        КОНЕЦ КАК Номенклатура_Код,
        ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет В ИЕРАРХИИ (&Спецодежда)
                ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто2
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Контрагенты
                        ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто1
                    ИНАЧЕ ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Склады)
                КОНЕЦ
        КОНЕЦ КАК Склад,
        ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаПУ,
        ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК D_СуммаНачальныйОстаток,
        ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК D_КоличествоНачальныйОстаток,
        ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК D_Сумма,
        ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК D_Количество,
        ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК D_СуммаОборотКт,
        ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК D_КоличествоОборотКт,
        ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК D_СуммаКонечныйОстаток,
        ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК D_КоличествоКонечныйОстаток
    ПОМЕСТИТЬ D_ПриходОт2До5Лет
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(ДОБАВИТЬКДАТЕ(&Начало, ГОД, 2), КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Конец, ГОД, -2), ГОД), , , , &НоменклатураСклады, ) КАК ХозрасчетныйОстаткиИОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                    КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Конец, ГОД, -2), ГОД),
                    ТипЦен В
                        (ВЫБРАТЬ
                            Константы.ТипЦенПлановойСебестоимостиНоменклатуры
                        ИЗ
                            Константы КАК Константы)) КАК ЦеныНоменклатурыСрезПоследних
            ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ЦеныНоменклатурыСрезПоследних.Номенклатура
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    
  5. TopicStarter Overlay
    selig
    Offline

    selig Опытный в 1С

    Регистрация:
    30 май 2012
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Код:
    ВЫБРАТЬ
        ЕСТЬNULL(X_Остатки.Счет, ЕСТЬNULL(Y_ПриходДо6Месяцев.Счет, Z_ПриходОт6До12Месяцев.Счет)) КАК Счет,
        ЕСТЬNULL(X_Остатки.Номенклатура, ЕСТЬNULL(Y_ПриходДо6Месяцев.Номенклатура, Z_ПриходОт6До12Месяцев.Номенклатура)) КАК Номенклатура,
        ЕСТЬNULL(X_Остатки.Номенклатура_Код, ЕСТЬNULL(Y_ПриходДо6Месяцев.Номенклатура_Код, Z_ПриходОт6До12Месяцев.Номенклатура_Код)) КАК НоменклатураКод,
        ЕСТЬNULL(X_Остатки.ЕдиницаИзмерения, ЕСТЬNULL(Y_ПриходДо6Месяцев.ЕдиницаИзмерения, Z_ПриходОт6До12Месяцев.ЕдиницаИзмерения)) КАК ЕдиницаИзмерения,
        ЕСТЬNULL(X_Остатки.Склад, ЕСТЬNULL(Y_ПриходДо6Месяцев.Склад, Z_ПриходОт6До12Месяцев.Склад)) КАК Склад,
        ЕСТЬNULL(X_Остатки.ЦенаПУ, ЕСТЬNULL(Y_ПриходДо6Месяцев.ЦенаПУ, Z_ПриходОт6До12Месяцев.ЦенаПУ)) КАК ЦенаПУ,
        X_Остатки.X_КоличествоОборотДт,
        X_Остатки.X_Сумма,
        X_Остатки.X_Количество,
        Z_ПриходОт6До12Месяцев.Z_Сумма,
        Z_ПриходОт6До12Месяцев.Z_Количество,
        Y_ПриходДо6Месяцев.Y_Сумма,
        Y_ПриходДо6Месяцев.Y_Количество,
        ВЫБОР
            КОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) <> 0
                ТОГДА ВЫБОР
                        КОГДА ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) > ЕСТЬNULL(X_Остатки.X_Количество, 0)
                            ТОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0)
                        ИНАЧЕ ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0)
                    КОНЕЦ
            ИНАЧЕ 0
        КОНЕЦ КАК до6МесКолВо,
        ВЫБОР
            КОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) <> 0
                    И ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) <= ЕСТЬNULL(X_Остатки.X_Количество, 0)
                ТОГДА ВЫБОР
                        КОГДА ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) > ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0)
                            ТОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0)
                        ИНАЧЕ ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0)
                    КОНЕЦ
        КОНЕЦ КАК от6до12МесКолВо,
        ВЫБОР
            КОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) <> 0
                    И ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) <= ЕСТЬNULL(X_Остатки.X_Количество, 0)
                    И ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) < ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0)
                ТОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) - ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0)
            ИНАЧЕ 0
        КОНЕЦ КАК свыше12МесКолВо,
        ВЫБОР
            КОГДА ЕСТЬNULL(X_Остатки.X_Сумма, 0) <> 0
                    И ЕСТЬNULL(X_Остатки.X_Количество, 0) <> 0
                ТОГДА ВЫБОР
                        КОГДА ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) * X_Остатки.ЦенаОстаток > ЕСТЬNULL(X_Остатки.X_Сумма, 0)
                            ТОГДА ЕСТЬNULL(X_Остатки.X_Сумма, 0)
                        ИНАЧЕ ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) * X_Остатки.ЦенаОстаток
                    КОНЕЦ
            КОГДА ЕСТЬNULL(X_Остатки.X_Сумма, 0) <> 0
                    И ЕСТЬNULL(X_Остатки.X_Количество, 0) = 0
                ТОГДА ВЫБОР
                        КОГДА ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Сумма, 0) > ЕСТЬNULL(X_Остатки.X_Сумма, 0)
                            ТОГДА ЕСТЬNULL(X_Остатки.X_Сумма, 0)
                        ИНАЧЕ ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Сумма, 0)
                    КОНЕЦ
            ИНАЧЕ 0
        КОНЕЦ КАК до6МесСумма,
        ВЫБОР
            КОГДА ЕСТЬNULL(X_Остатки.X_Сумма, 0) <> 0
                    И ЕСТЬNULL(X_Остатки.X_Количество, 0) <> 0
                    И ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) * X_Остатки.ЦенаОстаток <= ЕСТЬNULL(X_Остатки.X_Сумма, 0)
                ТОГДА ВЫБОР
                        КОГДА ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) * X_Остатки.ЦенаОстаток > ЕСТЬNULL(X_Остатки.X_Сумма, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) * X_Остатки.ЦенаОстаток
                            ТОГДА ЕСТЬNULL(X_Остатки.X_Сумма, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) * X_Остатки.ЦенаОстаток
                        ИНАЧЕ ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) * X_Остатки.ЦенаОстаток
                    КОНЕЦ
            КОГДА ЕСТЬNULL(X_Остатки.X_Сумма, 0) <> 0
                    И ЕСТЬNULL(X_Остатки.X_Количество, 0) = 0
                    И ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Сумма, 0) <= ЕСТЬNULL(X_Остатки.X_Сумма, 0)
                ТОГДА ВЫБОР
                        КОГДА ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Сумма, 0) > ЕСТЬNULL(X_Остатки.X_Сумма, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Сумма, 0)
                            ТОГДА ЕСТЬNULL(X_Остатки.X_Сумма, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Сумма, 0)
                        ИНАЧЕ ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Сумма, 0)
                    КОНЕЦ
        КОНЕЦ КАК от6до12МесСумма,
        ВЫБОР
            КОГДА ЕСТЬNULL(X_Остатки.X_Сумма, 0) <> 0
                    И ЕСТЬNULL(X_Остатки.X_Количество, 0) <> 0
                    И ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) * X_Остатки.ЦенаОстаток <= ЕСТЬNULL(X_Остатки.X_Сумма, 0)
                    И ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) * X_Остатки.ЦенаОстаток < ЕСТЬNULL(X_Остатки.X_Сумма, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) * X_Остатки.ЦенаОстаток
                ТОГДА ЕСТЬNULL(X_Остатки.X_Сумма, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) * X_Остатки.ЦенаОстаток - ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) * X_Остатки.ЦенаОстаток
            КОГДА ЕСТЬNULL(X_Остатки.X_Сумма, 0) <> 0
                    И ЕСТЬNULL(X_Остатки.X_Количество, 0) = 0
                    И ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Сумма, 0) <= ЕСТЬNULL(X_Остатки.X_Сумма, 0)
                    И ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Сумма, 0) < ЕСТЬNULL(X_Остатки.X_Сумма, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Сумма, 0)
                ТОГДА ЕСТЬNULL(X_Остатки.X_Сумма, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Сумма, 0) - ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Сумма, 0)
            ИНАЧЕ 0
        КОНЕЦ КАК свыше12МесСумма,
        Y_ПриходДо6Месяцев.Y_СуммаОборотКт,
        Y_ПриходДо6Месяцев.Y_КоличествоОборотКт,
        Z_ПриходОт6До12Месяцев.Z_СуммаОборотКт,
        Z_ПриходОт6До12Месяцев.Z_КоличествоОборотКт,
        X_Остатки.X_СуммаНачальныйОстаток,
        X_Остатки.X_КоличествоНачальныйОстаток,
        B_ПриходОт1До2Лет.B_Количество,
        B_ПриходОт1До2Лет.B_Сумма,
        D_ПриходОт2До5Лет.D_Количество,
        D_ПриходОт2До5Лет.D_Сумма,
        ВЫБОР
            КОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) <> 0
                ТОГДА ВЫБОР
                        КОГДА ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) <= ЕСТЬNULL(X_Остатки.X_Количество, 0)
                            ТОГДА ВЫБОР
                                    КОГДА ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) > ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0)
                                        ТОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0)
                                    ИНАЧЕ ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0)
                                КОНЕЦ
                    КОНЕЦ
        КОНЕЦ КАК от6до12МесКолВо_,
        ВЫБОР
            КОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) <> 0
                ТОГДА ВЫБОР
                        КОГДА ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) <= ЕСТЬNULL(X_Остатки.X_Количество, 0)
                            ТОГДА ВЫБОР
                                    КОГДА ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) <= ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0)
                                        ТОГДА ВЫБОР
                                                КОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) - ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) > 0
                                                    ТОГДА ВЫБОР
                                                            КОГДА ЕСТЬNULL(B_ПриходОт1До2Лет.B_Количество, 0) > ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) - ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0)
                                                                ТОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) - ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0)
                                                            ИНАЧЕ B_ПриходОт1До2Лет.B_Количество
                                                        КОНЕЦ
                                            КОНЕЦ
                                КОНЕЦ
                    КОНЕЦ
        КОНЕЦ КАК от1До2Лет,
        ВЫБОР
            КОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) <> 0
                ТОГДА ВЫБОР
                        КОГДА ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) <= ЕСТЬNULL(X_Остатки.X_Количество, 0)
                            ТОГДА ВЫБОР
                                    КОГДА ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) <= ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0)
                                        ТОГДА ВЫБОР
                                                КОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) - ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) > 0
                                                    ТОГДА ВЫБОР
                                                            КОГДА ЕСТЬNULL(B_ПриходОт1До2Лет.B_Количество, 0) <= ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) - ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0)
                                                                ТОГДА ВЫБОР
                                                                        КОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) - ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) - ЕСТЬNULL(B_ПриходОт1До2Лет.B_Количество, 0) > 0
                                                                            ТОГДА ВЫБОР
                                                                                    КОГДА ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) - ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) - ЕСТЬNULL(B_ПриходОт1До2Лет.B_Количество, 0) > D_ПриходОт2До5Лет.D_Количество
                                                                                        ТОГДА D_ПриходОт2До5Лет.D_Количество
                                                                                    ИНАЧЕ ЕСТЬNULL(X_Остатки.X_Количество, 0) - ЕСТЬNULL(Y_ПриходДо6Месяцев.Y_Количество, 0) - ЕСТЬNULL(Z_ПриходОт6До12Месяцев.Z_Количество, 0) - ЕСТЬNULL(B_ПриходОт1До2Лет.B_Количество, 0)
                                                                                КОНЕЦ
                                                                    КОНЕЦ
                                                        КОНЕЦ
                                            КОНЕЦ
                                КОНЕЦ
                    КОНЕЦ
        КОНЕЦ КАК от2До5Лет,
        B_ПриходОт1До2Лет.B_КоличествоОборотКт,
        B_ПриходОт1До2Лет.B_СуммаОборотКт,
        D_ПриходОт2До5Лет.D_КоличествоОборотКт,
        D_ПриходОт2До5Лет.D_СуммаОборотКт,
        ВЫБОР
            КОГДА X_Остатки.X_Сумма <> 0
                    И X_Остатки.X_Количество <> 0
                ТОГДА ВЫБОР
                        КОГДА Y_ПриходДо6Месяцев.Y_Количество * X_Остатки.ЦенаОстаток <= X_Остатки.X_Сумма
                            ТОГДА ВЫБОР
                                    КОГДА Z_ПриходОт6До12Месяцев.Z_Количество * X_Остатки.ЦенаОстаток <= X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Количество * X_Остатки.ЦенаОстаток
                                        ТОГДА ВЫБОР
                                                КОГДА X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Количество * X_Остатки.ЦенаОстаток - Z_ПриходОт6До12Месяцев.Z_Количество * X_Остатки.ЦенаОстаток > 0
                                                    ТОГДА ВЫБОР
                                                            КОГДА B_ПриходОт1До2Лет.B_Количество * X_Остатки.ЦенаОстаток > X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Количество * X_Остатки.ЦенаОстаток - Z_ПриходОт6До12Месяцев.Z_Количество * X_Остатки.ЦенаОстаток
                                                                ТОГДА X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Количество * X_Остатки.ЦенаОстаток - Z_ПриходОт6До12Месяцев.Z_Количество * X_Остатки.ЦенаОстаток
                                                            ИНАЧЕ B_ПриходОт1До2Лет.B_Количество * X_Остатки.ЦенаОстаток
                                                        КОНЕЦ
                                            КОНЕЦ
                                КОНЕЦ
                    КОНЕЦ
            КОГДА X_Остатки.X_Сумма <> 0
                    И X_Остатки.X_Количество = 0
                ТОГДА ВЫБОР
                        КОГДА Y_ПриходДо6Месяцев.Y_Сумма <= X_Остатки.X_Сумма
                            ТОГДА ВЫБОР
                                    КОГДА Z_ПриходОт6До12Месяцев.Z_Сумма <= X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Сумма
                                        ТОГДА ВЫБОР
                                                КОГДА X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Сумма - Z_ПриходОт6До12Месяцев.Z_Сумма > 0
                                                    ТОГДА ВЫБОР
                                                            КОГДА B_ПриходОт1До2Лет.B_Сумма > X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Сумма - Z_ПриходОт6До12Месяцев.Z_Сумма
                                                                ТОГДА X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Сумма - Z_ПриходОт6До12Месяцев.Z_Сумма
                                                            ИНАЧЕ B_ПриходОт1До2Лет.B_Сумма
                                                        КОНЕЦ
                                            КОНЕЦ
                                КОНЕЦ
                    КОНЕЦ
            ИНАЧЕ 0
        КОНЕЦ КАК от1До2ЛетСумма,
        ВЫБОР
            КОГДА X_Остатки.X_Сумма <> 0
                    И X_Остатки.X_Количество <> 0
                ТОГДА ВЫБОР
                        КОГДА Y_ПриходДо6Месяцев.Y_Количество * X_Остатки.ЦенаОстаток <= X_Остатки.X_Сумма
                            ТОГДА ВЫБОР
                                    КОГДА Z_ПриходОт6До12Месяцев.Z_Количество * X_Остатки.ЦенаОстаток <= X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Количество * X_Остатки.ЦенаОстаток
                                        ТОГДА ВЫБОР
                                                КОГДА X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Количество * X_Остатки.ЦенаОстаток - Z_ПриходОт6До12Месяцев.Z_Количество * X_Остатки.ЦенаОстаток > 0
                                                    ТОГДА ВЫБОР
                                                            КОГДА B_ПриходОт1До2Лет.B_Количество * X_Остатки.ЦенаОстаток <= X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Количество * X_Остатки.ЦенаОстаток - Z_ПриходОт6До12Месяцев.Z_Количество * X_Остатки.ЦенаОстаток
                                                                ТОГДА ВЫБОР
                                                                        КОГДА X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Количество * X_Остатки.ЦенаОстаток - Z_ПриходОт6До12Месяцев.Z_Количество * X_Остатки.ЦенаОстаток - B_ПриходОт1До2Лет.B_Количество * X_Остатки.ЦенаОстаток > 0
                                                                            ТОГДА ВЫБОР
                                                                                    КОГДА X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Количество * X_Остатки.ЦенаОстаток - Z_ПриходОт6До12Месяцев.Z_Количество * X_Остатки.ЦенаОстаток - B_ПриходОт1До2Лет.B_Количество * X_Остатки.ЦенаОстаток > D_ПриходОт2До5Лет.D_Количество * X_Остатки.ЦенаОстаток
                                                                                        ТОГДА D_ПриходОт2До5Лет.D_Количество * X_Остатки.ЦенаОстаток
                                                                                    ИНАЧЕ X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Количество * X_Остатки.ЦенаОстаток - Z_ПриходОт6До12Месяцев.Z_Количество * X_Остатки.ЦенаОстаток - B_ПриходОт1До2Лет.B_Количество * X_Остатки.ЦенаОстаток
                                                                                КОНЕЦ
                                                                    КОНЕЦ
                                                        КОНЕЦ
                                            КОНЕЦ
                                КОНЕЦ
                    КОНЕЦ
            КОГДА X_Остатки.X_Сумма <> 0
                    И X_Остатки.X_Количество = 0
                ТОГДА ВЫБОР
                        КОГДА Y_ПриходДо6Месяцев.Y_Сумма <= X_Остатки.X_Сумма
                            ТОГДА ВЫБОР
                                    КОГДА Z_ПриходОт6До12Месяцев.Z_Сумма <= X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Сумма
                                        ТОГДА ВЫБОР
                                                КОГДА X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Сумма - Z_ПриходОт6До12Месяцев.Z_Сумма > 0
                                                    ТОГДА ВЫБОР
                                                            КОГДА B_ПриходОт1До2Лет.B_Сумма <= X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Сумма - Z_ПриходОт6До12Месяцев.Z_Сумма
                                                                ТОГДА ВЫБОР
                                                                        КОГДА X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Сумма - Z_ПриходОт6До12Месяцев.Z_Сумма - B_ПриходОт1До2Лет.B_Сумма > 0
                                                                            ТОГДА ВЫБОР
                                                                                    КОГДА X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Сумма - Z_ПриходОт6До12Месяцев.Z_Сумма - B_ПриходОт1До2Лет.B_Сумма > D_ПриходОт2До5Лет.D_Сумма
                                                                                        ТОГДА D_ПриходОт2До5Лет.D_Сумма
                                                                                    ИНАЧЕ X_Остатки.X_Сумма - Y_ПриходДо6Месяцев.Y_Сумма - Z_ПриходОт6До12Месяцев.Z_Сумма - B_ПриходОт1До2Лет.B_Сумма
                                                                                КОНЕЦ
                                                                    КОНЕЦ
                                                        КОНЕЦ
                                            КОНЕЦ
                                КОНЕЦ
                    КОНЕЦ
            ИНАЧЕ 0
        КОНЕЦ КАК от2До5ЛетСумма
    ПОМЕСТИТЬ Результат
    ИЗ
        X_Остатки КАК X_Остатки
            ПОЛНОЕ СОЕДИНЕНИЕ Y_ПриходДо6Месяцев КАК Y_ПриходДо6Месяцев
            ПО X_Остатки.Номенклатура = Y_ПриходДо6Месяцев.Номенклатура
                И X_Остатки.Склад = Y_ПриходДо6Месяцев.Склад
                И X_Остатки.Счет = Y_ПриходДо6Месяцев.Счет
            ПОЛНОЕ СОЕДИНЕНИЕ Z_ПриходОт6До12Месяцев КАК Z_ПриходОт6До12Месяцев
            ПО X_Остатки.Номенклатура = Z_ПриходОт6До12Месяцев.Номенклатура
                И X_Остатки.Склад = Z_ПриходОт6До12Месяцев.Склад
                И X_Остатки.Счет = Z_ПриходОт6До12Месяцев.Счет
            ПОЛНОЕ СОЕДИНЕНИЕ B_ПриходОт1До2Лет КАК B_ПриходОт1До2Лет
            ПО X_Остатки.Номенклатура = B_ПриходОт1До2Лет.Номенклатура
                И X_Остатки.Склад = B_ПриходОт1До2Лет.Склад
                И X_Остатки.Счет = B_ПриходОт1До2Лет.Счет
            ПОЛНОЕ СОЕДИНЕНИЕ D_ПриходОт2До5Лет КАК D_ПриходОт2До5Лет
            ПО X_Остатки.Номенклатура = D_ПриходОт2До5Лет.Номенклатура
                И X_Остатки.Склад = D_ПриходОт2До5Лет.Склад
                И X_Остатки.Счет = D_ПриходОт2До5Лет.Счет
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    --- Объединение сообщений, 8 дек 2016 ---
    Код:
    ВЫБРАТЬ
        Результат.Счет КАК Счет,
        Результат.Номенклатура КАК Номенклатура,
        Результат.НоменклатураКод КАК Код,
        Результат.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        Результат.Склад КАК Склад,
        Результат.ЦенаПУ КАК ЦенаПУ,
        Результат.X_КоличествоОборотДт КАК ПриходКоличество,
        Результат.X_Сумма КАК ОстатокНаКонецСумма,
        Результат.Z_Сумма КАК ПриходЗа1ПолугодиеСумма,
        Результат.Y_Сумма КАК ПриходЗа2ПолугодиеСумма,
        Результат.X_Количество КАК ОстатокНаКонецКоличество,
        Результат.Y_Количество КАК ПриходЗа2ПолугодиеКоличество,
        Результат.Z_Количество КАК ПриходЗа1ПолугодиеКоличество,
        Результат.B_Количество КАК B_Количество,
        Результат.до6МесКолВо КАК до6МесКолВо,
        Результат.от6до12МесКолВо КАК от6до12МесКолВо,
        Результат.от6до12МесКолВо_ КАК от6до12МесКолВо_,
        Результат.свыше12МесКолВо КАК свыше12МесКолВо,
        Результат.от1До2Лет КАК от1До2ЛетКолво,
        Результат.от1До2ЛетСумма КАК НужнаяСумма,
        Результат.от2До5Лет КАК от2До5ЛетКолво,
        Результат.до6МесСумма КАК до6МесСумма,
        Результат.от6до12МесСумма КАК от6до12МесСумма,
        Результат.свыше12МесСумма КАК свыше12МесСумма,
        Результат.Y_СуммаОборотКт КАК РасходЗа2ПолугодиеСумма,
        Результат.Y_КоличествоОборотКт КАК РасходЗа2ПолугодиеКоличество,
        Результат.Z_СуммаОборотКт КАК РасходЗа1ПолугодиеСумма,
        Результат.Z_КоличествоОборотКт КАК РасходЗа1ПолугодиеКоличество,
        Результат.X_СуммаНачальныйОстаток КАК ОстатокНаНачалоСумма,
        Результат.X_КоличествоНачальныйОстаток КАК ОстатокНаНачалоКоличество,
        Результат.B_КоличествоОборотКт КАК B_КоличествоОборотКт,
        Результат.B_СуммаОборотКт КАК B_СуммаОборотКт,
        Результат.D_КоличествоОборотКт КАК D_КоличествоОборотКт,
        Результат.D_СуммаОборотКт КАК D_СуммаОборотКт,
        Результат.D_Количество КАК D_Количество,
        Результат.B_Сумма КАК B_Сумма,
        Результат.D_Сумма КАК D_Сумма,
        Результат.от2До5ЛетСумма КАК от2До5ЛетСумма
    {ВЫБРАТЬ
        Счет.*,
        Номенклатура.*,
        Код,
        ЕдиницаИзмерения.*,
        Склад.*,
        ЦенаПУ,
        ПриходКоличество,
        ОстатокНаКонецСумма,
        ПриходЗа1ПолугодиеСумма,
        ПриходЗа2ПолугодиеСумма,
        ОстатокНаКонецКоличество,
        ПриходЗа2ПолугодиеКоличество,
        ПриходЗа1ПолугодиеКоличество,
        B_Количество,
        до6МесКолВо,
        от6до12МесКолВо,
        от6до12МесКолВо_,
        свыше12МесКолВо,
        от1До2ЛетКолво,
        НужнаяСумма,
        от2До5ЛетКолво,
        до6МесСумма,
        от6до12МесСумма,
        свыше12МесСумма,
        РасходЗа2ПолугодиеСумма,
        РасходЗа2ПолугодиеКоличество,
        РасходЗа1ПолугодиеСумма,
        РасходЗа1ПолугодиеКоличество,
        ОстатокНаНачалоСумма,
        ОстатокНаНачалоКоличество,
        B_КоличествоОборотКт,
        B_СуммаОборотКт,
        D_КоличествоОборотКт,
        D_СуммаОборотКт,
        D_Количество,
        B_Сумма,
        D_Сумма,
        от2До5ЛетСумма}
    ИЗ
        Результат КАК Результат
    ГДЕ
        Результат.Номенклатура В(&Номенклатура)
        И Результат.Счет = &СчетОтбор
        И Результат.Склад = &СкладОтбор
  6. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.722
    Симпатии:
    959
    Баллы:
    204
    Да я говорю в СКД у полей поставьте Обязательное. Что бы в запросе все поля учавствовали, как это у Вас в консоле. и смотрите тогда
  7. TopicStarter Overlay
    selig
    Offline

    selig Опытный в 1С

    Регистрация:
    30 май 2012
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26


    это чтобы возможных ошибок избежать, вариант с группировкой и упорядочиванием есть, там ничего нового. Для проверки мне и этого достаточно.

    Соединение - ПОЛНОЕ, и всё вставлено в один набор данных

    Вывожу вообще все данные (галочка автозаполнение или вкладки компоновка данных в конструкторе)
    --- Объединение сообщений, 8 дек 2016 ---
    upload_2016-12-8_13-52-47.png
    Что Вы имеете ввиду под обязательными полями?

    Вложения:

    Последнее редактирование: 8 дек 2016
  8. 1с-ник
    Offline

    1с-ник Профессионал в 1С

    Регистрация:
    5 окт 2014
    Сообщения:
    988
    Симпатии:
    159
    Баллы:
    104
    Жесть какая-то. Зачем столько лишних условий "Выбор Когда".
    Может проще получить остатки и сгруппировать их по периоду?
    Draco имеет ввиду флаг "Обязательное" в настройках ролей проблемного поля набора данных, правда не верится, что это поможет.
    Как это поле в запросе называется?
    --- Объединение сообщений, 8 дек 2016 ---
    Попробуй периодичность ВТ авто поставь
    Последнее редактирование: 8 дек 2016
  9. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.722
    Симпатии:
    959
    Баллы:
    204
    На вкладке набор данных. усть у каждого поля колонка роль и там.
    Я бы Вам посоветовал эо все в консоль СКД загнать и посмотреть конечный запрос , который СКд выдает и сравнить его
  10. TopicStarter Overlay
    selig
    Offline

    selig Опытный в 1С

    Регистрация:
    30 май 2012
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Алгоритм сверху (головная организация).

    Консоль отчетов пьяна и ничего не выводит - разбираюсь.
  11. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.722
    Симпатии:
    959
    Баллы:
    204
    Я не про консоль отчетов, я про консоль СКД - она позволяет увидеть конечный запрос, который СКд выполняет
  12. TopicStarter Overlay
    selig
    Offline

    selig Опытный в 1С

    Регистрация:
    30 май 2012
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Она вообще существует для обычного приложения?
  13. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.722
    Симпатии:
    959
    Баллы:
    204
Похожие темы
  1. Steel Rain
    Ответов:
    6
    Просмотров:
    1.106
  2. T-1000
    Ответов:
    6
    Просмотров:
    721
  3. iceborn
    Ответов:
    5
    Просмотров:
    914
  4. Vitaly
    Ответов:
    12
    Просмотров:
    735
  5. НиколайН
    Ответов:
    16
    Просмотров:
    814
Загрузка...

Поделиться этой страницей