8.х Отчет по остаткам с выводом движений

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Profaner, 25 авг 2016.

  1. TopicStarter Overlay
    Profaner
    Offline

    Profaner

    Регистрация:
    8 авг 2016
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток, коллеги, вновь взываю к вашей помощи. После пары дней мучений решился попытать удачу здесь. Суть сабжа: написал отчет по балансам организации. Один из его пунктов - остатки по расчетам с покупателями в разрезе сегментов. (УТ 11.2). Отчет формируется без СКД.
    Сначала брал таблицу "РасчетыСКлиентами.Остатки", присоединял к полученным в предыдущем пакете покупателям сегмента и отчет формировался корректно, остатки сходились. Позже заказчик попросил вывести расшифровку по движениям внутри каждого сегмента. Изменил таблицу на "РАсчетыСКлиентами.ОстаткиИОбороты", беру конечный остаток - всё сходится. Движения выводил по заказам клиента, но нужен вариант, чтобы был виден регистратор. Но как только я добавляю в выборку поле регистратора, остатки сразу же плывут... Есть типовой отчет "Расчеты с клиентами", но не совсем разобрался, как он так лихо всё выводит. Подскажите, может кто сталкивался с такой задачей, как можно удобнее получить результат средствами запроса?

    Прилагаю запрос и скрины.

    Код:
    ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
        Сегменты.Сегмент,
        Сегменты.Партнер
    ПОМЕСТИТЬ ОтборПоСегментуПартнеров
    ИЗ
        РегистрСведений.ПартнерыСегмента КАК Сегменты
    ГДЕ
        Сегменты.Сегмент В(&СписокСегментов)
    {ГДЕ
        Сегменты.Сегмент.* КАК СегментПартнеров,
        Сегменты.Партнер.* КАК Партнер}
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
        ОтборПоСегментуПартнеров.Сегмент КАК Покупатель,
        ВЫБОР
            КОГДА РасчетыСКлиентамиОстаткиИОбороты.ЗаказКлиента = НЕОПРЕДЕЛЕНО
                ТОГДА NULL
            ИНАЧЕ РасчетыСКлиентамиОстаткиИОбороты.ЗаказКлиента
        КОНЕЦ КАК Документ,
        РасчетыСКлиентамиОстаткиИОбороты.СуммаНачальныйОстаток КАК НачальныйОстаток,
        РасчетыСКлиентамиОстаткиИОбороты.СуммаПриход КАК Приход,
        РасчетыСКлиентамиОстаткиИОбороты.СуммаРасход КАК Расход,
        РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток КАК Сумма,
        ОтборПоСегментуПартнеров.Партнер КАК Партнер
    ИЗ
        ОтборПоСегментуПартнеров КАК ОтборПоСегментуПартнеров
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(
                    &НачДата,
                    &КонДата,
                    Авто,
                    ,
                    АналитикаУчетаПоПартнерам.Партнер В
                            (ВЫБРАТЬ
                                ОтборПоСегментуПартнеров.Партнер
                            ИЗ
                                ОтборПоСегментуПартнеров КАК ОтборПоСегментуПартнеров)
                        И ЗаказКлиента.Соглашение.СегментНоменклатуры = &СегментНоменклатуры) КАК РасчетыСКлиентамиОстаткиИОбороты
            ПО ОтборПоСегментуПартнеров.Партнер = РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам.Партнер
    ИТОГИ
        СУММА(НачальныйОстаток),
        СУММА(Приход),
        СУММА(Расход),
        СУММА(Сумма)
    ПО
        ОБЩИЕ,
        Покупатель
    На первом скрине остатки корректные, расшифровка с заказами клиента.
    На втором - добавил в поля запроса регистратор и переобозвал его в "Документ", остатки поплыли. В расшифровках тоже полный бред. Возможно проблема в неправильном соединении... Кто чем может.

    Вложения:

    • 1.jpeg
      Размер файла:
      505,5 КБ
      Просмотров:
      3
    • 2.jpeg
      Размер файла:
      451,7 КБ
      Просмотров:
      2
    • 3.jpeg
      Размер файла:
      792,7 КБ
      Просмотров:
      2
  2. TopicStarter Overlay
    Profaner
    Offline

    Profaner

    Регистрация:
    8 авг 2016
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Остатки удалось получить верные, добавил поле "Период" и отсортировал по нему, однако движения все равно не совсем корректные, а именно - Сумма начального и конечного остатков. Запрос теперь выглядит так:
    Код:
    ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
        Сегменты.Сегмент,
        Сегменты.Партнер
    ПОМЕСТИТЬ ОтборПоСегментуПартнеров
    ИЗ
        РегистрСведений.ПартнерыСегмента КАК Сегменты
    ГДЕ
        Сегменты.Сегмент В(&СписокСегментов)
    {ГДЕ
        Сегменты.Сегмент.* КАК СегментПартнеров,
        Сегменты.Партнер.* КАК Партнер}
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
        ОтборПоСегментуПартнеров.Сегмент КАК Покупатель,
        СУММА(РасчетыСКлиентамиОстаткиИОбороты.СуммаНачальныйОстаток) КАК НачальныйОстаток,
        СУММА(РасчетыСКлиентамиОстаткиИОбороты.СуммаПриход) КАК Приход,
        СУММА(РасчетыСКлиентамиОстаткиИОбороты.СуммаРасход) КАК Расход,
        СУММА(РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток) КАК Сумма,
        ОтборПоСегментуПартнеров.Партнер КАК Партнер,
        ВЫБОР
            КОГДА РасчетыСКлиентамиОстаткиИОбороты.Регистратор = НЕОПРЕДЕЛЕНО
                ТОГДА NULL
            ИНАЧЕ РасчетыСКлиентамиОстаткиИОбороты.Регистратор
        КОНЕЦ КАК Документ,
        РасчетыСКлиентамиОстаткиИОбороты.Период КАК Период
    ИЗ
        ОтборПоСегментуПартнеров КАК ОтборПоСегментуПартнеров
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(
                    &НачДата,
                    &КонДата,
                    Регистратор,
                    ,
                    ЗаказКлиента.Соглашение.СегментНоменклатуры = &СегментНоменклатуры
                        И АналитикаУчетаПоПартнерам.Партнер В
                            (ВЫБРАТЬ
                                ОтборПоСегментуПартнеров.Партнер
                            ИЗ
                                ОтборПоСегментуПартнеров КАК ОтборПоСегментуПартнеров)) КАК РасчетыСКлиентамиОстаткиИОбороты
            ПО ОтборПоСегментуПартнеров.Партнер = РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам.Партнер
    
    СГРУППИРОВАТЬ ПО
        ОтборПоСегментуПартнеров.Сегмент,
        ОтборПоСегментуПартнеров.Партнер,
        ВЫБОР
            КОГДА РасчетыСКлиентамиОстаткиИОбороты.Регистратор = НЕОПРЕДЕЛЕНО
                ТОГДА NULL
            ИНАЧЕ РасчетыСКлиентамиОстаткиИОбороты.Регистратор
        КОНЕЦ,
        РасчетыСКлиентамиОстаткиИОбороты.Период
    
    УПОРЯДОЧИТЬ ПО
        Период
    ИТОГИ
        СУММА(НачальныйОстаток),
        СУММА(Приход),
        СУММА(Расход),
        СУММА(Сумма)
    ПО
        ОБЩИЕ,
        Покупатель
    На скринах мои движения (1) и как должно быть (2).

    Вложения:

    • 1.jpeg
      Размер файла:
      917,2 КБ
      Просмотров:
      3
    • 2.jpeg
      Размер файла:
      884,8 КБ
      Просмотров:
      4

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