СКД. Обороты счета

1. andrei_vashilko 17.01.17 16:24 Сейчас в теме
Есть самостоятельно доработанный отчет на СКД Обороты счета под управляемые формы.
Там делаю три запроса: "Остатки", "Обороты", "Счет". Левым соединением к "Остаткам" присоединяю "Обороты" по субконто, орг-и, счету, валюте.

Собственно сами запросы.
"Обороты":

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Хозрасчетный.Счет,

    Хозрасчетный.Субконто1,
    Хозрасчетный.Субконто2,
    Хозрасчетный.Субконто3,
    Хозрасчетный.КорСчет,
    Хозрасчетный.КорСубконто1,
    Хозрасчетный.КорСубконто2,
    Хозрасчетный.КорСубконто3,
    Хозрасчетный.Организация,
    Хозрасчетный.Валюта,
    Хозрасчетный.СуммаОборотДт КАК БУОборотДт,
    Хозрасчетный.СуммаОборотКт КАК БУОборотКт,
    Хозрасчетный.ВалютнаяСуммаОборотДт,
    Хозрасчетный.ВалютнаяСуммаОборотКт,
    Хозрасчетный.КоличествоОборотДт,
    Хозрасчетный.КоличествоОборотКт,
    Хозрасчетный.Период,
    1 КАК Показатель,
    Хозрасчетный.Регистратор

ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты({(&НачалоПериода)}, {(&КонецПериода)}, Регистратор {(&Периодичность)}, Счет В ИЕРАРХИИ (&Счет), , {(ВалютаКор).* КАК КорВалюта, (Организация).* КАК Организация, (Валюта).* КАК Валюта, (Субконто1).* КАК Субконто1, (Субконто2).* КАК Субконто2, (Субконто3).* КАК Субконто3, (КорСубконто1).* КАК КорСубконто1, (КорСубконто2).* КАК КорСубконто2, (КорСубконто3).* КАК КорСубконто3}, , ) КАК Хозрасчетный
    

Запрос "Остатки":

ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ    
    ВЫБОР
        КОГДА Хозрасчетный.Счет ЕСТЬ NULL

            ТОГДА Обороты.Счет
        ИНАЧЕ Хозрасчетный.Счет
    КОНЕЦ КАК Счет,

    ВЫБОР
        КОГДА Хозрасчетный.Субконто1 ЕСТЬ NULL

            ТОГДА Обороты.Субконто1
        ИНАЧЕ Хозрасчетный.Субконто1
    КОНЕЦ КАК Субконто1,

    ВЫБОР
        КОГДА Хозрасчетный.Субконто2 ЕСТЬ NULL

            ТОГДА Обороты.Субконто2
        ИНАЧЕ Хозрасчетный.Субконто2
    КОНЕЦ КАК Субконто2,

    ВЫБОР
        КОГДА Хозрасчетный.Субконто3 ЕСТЬ NULL

            ТОГДА Обороты.Субконто3
        ИНАЧЕ Хозрасчетный.Субконто3
    КОНЕЦ КАК Субконто3,
    //Обороты.КорСчет КАК КорСчет,

    //Обороты.КорСубконто1 КАК КорСубконто1,

    //Обороты.КорСубконто2 КАК КорСубконто2,

    //Обороты.КорСубконто3 КАК КорСубконто3,    

    ВЫБОР
        КОГДА Хозрасчетный.Организация ЕСТЬ NULL 
            ТОГДА Обороты.Организация
        ИНАЧЕ Хозрасчетный.Организация
    КОНЕЦ КАК Организация,
    ВЫБОР

        КОГДА Хозрасчетный.Валюта ЕСТЬ NULL

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

        //ХозрасчетныйОбороты.КорСубконто1 КАК КорСубконто1,

        //ХозрасчетныйОбороты.КорСубконто2 КАК КорСубконто2,

        //ХозрасчетныйОбороты.КорСубконто3 КАК КорСубконто3,        

        ХозрасчетныйОбороты.Организация КАК Организация,
        ХозрасчетныйОбороты.Валюта КАК Валюта
    {ВЫБРАТЬ
        Счет.*,
        Субконто1.*,
        Субконто2.*,
        Субконто3.*,
        //КорСчет.*,

        //КорСубконто1.*,

        //КорСубконто2.*,

        //КорСубконто3.*,        

        Организация.*,
        Валюта.*}
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.Обороты({(&НачалоПериода)}, {(&КонецПериода)}, Период, Счет В ИЕРАРХИИ (&Счет), , {(Организация).* КАК Организация, (Валюта).* КАК Валюта, (Субконто1).* КАК Субконто1, (Субконто2).* КАК Субконто2, (Субконто3).* КАК Субконто3}, , ) КАК ХозрасчетныйОбороты) КАК Обороты
        ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, Период, ДвиженияИГраницыПериода, Счет В ИЕРАРХИИ (&Счет), , {(Организация).* КАК Организация, (Валюта).* КАК Валюта, (Субконто1).* КАК Субконто1, (Субконто2).* КАК Субконто2, (Субконто3).* КАК Субконто3}) КАК Хозрасчетный
        ПО Обороты.Счет = Хозрасчетный.Счет
            И Обороты.Валюта = Хозрасчетный.Валюта
            И Обороты.Организация = Хозрасчетный.Организация
            И Обороты.Субконто1 = Хозрасчетный.Субконто1
            И Обороты.Субконто2 = Хозрасчетный.Субконто2
            И Обороты.Субконто3 = Хозрасчетный.Субконто3


Показать

ПРОБЛЕМА. В случае если были обороты по счету с одинаковыми субконто, валютой, орг-й, отрицательной и положительной суммой И нету остатков не на начало, не на конец периода, то в запросе "Остатки" сворочавает эту строку. Следовательно в результате в отчете нету этих оборотов ((

Что предпринимал. Во вложенном запросе обороты в "Остатках" ставил периодичность по регистратору, выбирал поля регистратор, период. Ставил для них в свойствах поля уже в СКД признак "Обязательное". Не помогло. Хотя при тестировании в консоле запросов отрабатывало правильно.

Вопрос. Может кто сталкивался с подобной ситуацией ? Есть какие нибудь мысли, как это решить ?
Прикрепленные файлы:
ОборотыСчета.erf
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. plevakin 08.11.17 11:04 Сейчас в теме
Столкнулся с такой же проблемой в БП 3.0. Приложенный отчет к сожалению в БП 3.0 не открывается по причине "Переменная не определена (ДляОтчетовКлиентСервер)". Удалось ли победить проблему? В БП 3.0 также ставил где только можно Роль Обязательный и связи делал обязательными. Все равно обороты попадают только при периодичности по документу, как только периодичность укрупняется, не выводится нечего.
3. plevakin 09.11.17 10:35 Сейчас в теме
В общем разобрался. "Обороты счета" (по крайней мере в БП 3.0) использует периодичность указанную в настройках отчета, и если выбрать, например, день и оборот за день равен нулю, то обороты не показываются.

Мне помогли 3 изменения:
1. Периодичность в наборах данных ОсновнойНаборДанных и Обороты изменил на Авто
2. Регистратору в обоих наборах поставил Роль Обязательное
3. Изменил формулу для поля период на

ВЫБОР
   КОГДА &Периодичность = 6 ТОГДА ПериодДень
   КОГДА &Периодичность = 7 ТОГДА ПериодНеделя
   КОГДА &Периодичность = 8 ТОГДА ПериодДекада
   КОГДА &Периодичность = 9 ТОГДА ПериодМесяц
   КОГДА &Периодичность = 10 ТОГДА ПериодКвартал
   КОГДА &Периодичность = 11 ТОГДА ПериодПолугодие
   КОГДА &Периодичность = 12 ТОГДА ПериодГод
   ИНАЧЕ ПериодМесяц
КОНЕЦ КАК Период
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот