8.х Отчет на СКД с начальным остатком если не попадает в период

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем kosalex, 16 апр 2015.

  1. TopicStarter Overlay
    kosalex
    Offline

    kosalex Опытный в 1С

    Регистрация:
    6 июн 2013
    Сообщения:
    127
    Симпатии:
    1
    Баллы:
    29
    Доброго времени суток! Помогите с отчетом, есть РН:
    [​IMG]
    Нужно получить отчет вида:
    [​IMG]
    В отчете возможны две ситуации:
    а) Это когда документ отгрузки не попадает в период отчета, тогда нужно взять НачальныйОстаток на начало периода отчета и вывести ссылку на документ и НачальныйОстаток в группировку.
    б) Когда документ отгрузки попадает в период отчета, тогда просто берем его движения.

    Вот что имею:
    [​IMG]
    Код:
    ВЫБРАТЬ РАЗЛИЧНЫЕ
        *_ДанныеДляПереоценкиПоФьючерсам.Период,
        *_ДанныеДляПереоценкиПоФьючерсам.Регистратор КАК Регистратор,
        *_ДанныеДляПереоценкиПоФьючерсам.Документ,
        *_ДанныеДляПереоценкиПоФьючерсам.Контрагент,
        ВЫБОР
            КОГДА *_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
                ТОГДА *_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов
            ИНАЧЕ *_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов * -1
        КОНЕЦ КАК СуммаВзаиморасчетов,
        ВЫБОР
            КОГДА *_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
                ТОГДА *_ДанныеДляПереоценкиПоФьючерсам.СуммаУпр
            ИНАЧЕ *_ДанныеДляПереоценкиПоФьючерсам.СуммаУпр * -1
        КОНЕЦ КАК СуммаУпр,
        ВЫБОР
            КОГДА *_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
                ТОГДА *_ДанныеДляПереоценкиПоФьючерсам.СуммаПереоценкиУпр
            ИНАЧЕ *_ДанныеДляПереоценкиПоФьючерсам.СуммаПереоценкиУпр * -1
        КОНЕЦ КАК СуммаПереоценкиУпр
    ПОМЕСТИТЬ ВТ
    ИЗ
        РегистрНакопления.*_ДанныеДляПереоценкиПоФьючерсам КАК *_ДанныеДляПереоценкиПоФьючерсам
    ГДЕ
        НЕ *_ДанныеДляПереоценкиПоФьючерсам.Регистратор ССЫЛКА Документ.ПереоценкаВалютныхСредств
        И *_ДанныеДляПереоценкиПоФьючерсам.Период МЕЖДУ &НачалоПериода И &КонецПериода
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.Документ КАК Документ1,
        *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток
    ПОМЕСТИТЬ ВТ_2
    ИЗ
        РегистрНакопления.*_ДанныеДляПереоценкиПоФьючерсам.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Период, , НЕ Документ ССЫЛКА Документ.ПереоценкаВалютныхСредств) КАК *_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТ.Период,
        ВТ.Регистратор,
        ВТ.Документ,
        ВТ.Контрагент,
        ВТ.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
        ВТ.СуммаУпр,
        ВТ.СуммаПереоценкиУпр,
        ВТ_2.Документ1,
        ВТ_2.СуммаВзаиморасчетовНачальныйОстаток КАК СуммаВзаиморасчетовНачальныйОстаток
    ИЗ
        ВТ КАК ВТ
            ПОЛНОЕ СОЕДИНЕНИЕ ВТ_2 КАК ВТ_2
            ПО ВТ.Документ = ВТ_2.Документ1
    Настройки отчета:
    [​IMG]
    Запросы разные делал, все не буду писать.

    Документ отгрузки(он делает приход)(группировка), раскрываем группировку, в ней, документы которые сделали оплату этой отгрузки(делают расход). Документы которые делают оплату пишут в свое измерение "Документ" ссылку на документ который они оплачивают, на картинке видно.

    ПОЖАЛУЙСТА, ПОМОГИТЕ!
  2. TopicStarter Overlay
    kosalex
    Offline

    kosalex Опытный в 1С

    Регистрация:
    6 июн 2013
    Сообщения:
    127
    Симпатии:
    1
    Баллы:
    29
    Вроде получилось, вот запрос:

    Код:
    ВЫБРАТЬ РАЗЛИЧНЫЕ
        ВЫБОР
            КОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.Регистратор = NULL
                ТОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.Документ
            ИНАЧЕ Ниракс_ДанныеДляПереоценкиПоФьючерсам.Регистратор
        КОНЕЦ КАК Регистратор,
        Ниракс_ДанныеДляПереоценкиПоФьючерсам.Документ КАК Документ,
        Ниракс_ДанныеДляПереоценкиПоФьючерсам.Контрагент,
        ВЫБОР
            КОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
                ТОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов
            ИНАЧЕ Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаВзаиморасчетов * -1
        КОНЕЦ КАК СуммаВзаиморасчетов,
        ВЫБОР
            КОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
                ТОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаУпр
            ИНАЧЕ Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаУпр * -1
        КОНЕЦ КАК СуммаУпр,
        ВЫБОР
            КОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
                ТОГДА Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаПереоценкиУпр
            ИНАЧЕ Ниракс_ДанныеДляПереоценкиПоФьючерсам.СуммаПереоценкиУпр * -1
        КОНЕЦ КАК СуммаПереоценкиУпр
    ИЗ
        РегистрНакопления.Ниракс_ДанныеДляПереоценкиПоФьючерсам КАК Ниракс_ДанныеДляПереоценкиПоФьючерсам
    ГДЕ
        НЕ Ниракс_ДанныеДляПереоценкиПоФьючерсам.Регистратор ССЫЛКА Документ.ПереоценкаВалютныхСредств
        И Ниракс_ДанныеДляПереоценкиПоФьючерсам.Период МЕЖДУ &НачалоПериода И &КонецПериода
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        Ниракс_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.Документ,
        Ниракс_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.Документ,
        Ниракс_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.Контрагент,
        Ниракс_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток,
        Ниракс_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.СуммаУпрНачальныйОстаток,
        Ниракс_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты.СуммаПереоценкиУпрНачальныйОстаток
    ИЗ
        РегистрНакопления.Ниракс_ДанныеДляПереоценкиПоФьючерсам.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Период, , НЕ Документ ССЫЛКА Документ.ПереоценкаВалютныхСредств) КАК Ниракс_ДанныеДляПереоценкиПоФьючерсамОстаткиИОбороты
    
    УПОРЯДОЧИТЬ ПО
        Документ
  3. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    Не совсем понял постановку задачи
    особенно первый пункт
    Это когда документ отгрузки не попадает в период отчета, тогда нужно взять НачальныйОстаток на начало периода отчета и вывести ссылку на документ и НачальныйОстаток в группировку.

    Вам надо разложить из чего собрался начальный остаток по регистраторам и все это поместить в отдельную колонку?
  4. TopicStarter Overlay
    kosalex
    Offline

    kosalex Опытный в 1С

    Регистрация:
    6 июн 2013
    Сообщения:
    127
    Симпатии:
    1
    Баллы:
    29
    Если на период формирования отчета документ который делает отгрузку не попадает в период отчета, то нужно взять НачальныйОстаток на период отчета (ДатаНачала) и всунуть в группировку
  5. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    Ну то что в период тогда берете одним запросом то что за периодом другим и в звисимости от того как располагать данные там уже скорее всего объединение будет

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