Имя: Пароль:
1C
 
РегистрБухгалтерии.ОборотыДтКт некорректные ресурсы
0 qwerty_1789
 
09.11.16
16:54
Из виртуальной таблицы РБ хочу выбрать те записи, в которых СчетКТ = 60.01 или 60.02.
И соответственно, получить обороты и понять, кредитовые были или дебетовые.
Вот запрос
ВЫБРАТЬ
    ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор,
    ХозрасчетныйОборотыДтКт.СчетДт КАК СчетДт,
    ХозрасчетныйОборотыДтКт.СчетКт КАК СчетКт,
    ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК СубконтоДт1,
    ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК СубконтоКт1,
    ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
    ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
            ,
            ,
            Авто,
            ,
            Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПоставщиками)
                ИЛИ Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоАвансамВыданным),
            ,
            {(Организация = &Организация) КАК Поле2}) КАК ХозрасчетныйОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
                &нач,
                &кон,
                Авто,
                ,
                ,
                СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПоставщиками)
                    ИЛИ СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоАвансамВыданным),
                ,
                {(Организация = &Организация) КАК Поле2}) КАК ХозрасчетныйОборотыДтКт
        ПО (ХозрасчетныйОборотыДтКт.Регистратор = ХозрасчетныйОстаткиИОбороты.Регистратор)
            И (ХозрасчетныйОборотыДтКт.Организация = ХозрасчетныйОстаткиИОбороты.Организация)
            И (ВЫБОР
                КОГДА ХозрасчетныйОборотыДтКт.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПоставщиками)
                        ИЛИ ХозрасчетныйОборотыДтКт.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоАвансамВыданным)
                    ТОГДА ХозрасчетныйОборотыДтКт.СчетДт = ХозрасчетныйОстаткиИОбороты.Счет
                            И ХозрасчетныйОборотыДтКт.СубконтоДт1 = ХозрасчетныйОстаткиИОбороты.Субконто1
                            И ХозрасчетныйОборотыДтКт.СубконтоДт2 = ХозрасчетныйОстаткиИОбороты.Субконто2
                            И ХозрасчетныйОборотыДтКт.СубконтоДт3 = ХозрасчетныйОстаткиИОбороты.Субконто3
                ИНАЧЕ ХозрасчетныйОборотыДтКт.СчетКт = ХозрасчетныйОстаткиИОбороты.Счет
                        И ХозрасчетныйОборотыДтКт.СубконтоКт1 = ХозрасчетныйОстаткиИОбороты.Субконто1
                        И ХозрасчетныйОборотыДтКт.СубконтоКт2 = ХозрасчетныйОстаткиИОбороты.Субконто2
                        И ХозрасчетныйОборотыДтКт.СубконтоКт3 = ХозрасчетныйОстаткиИОбороты.Субконто3
            КОНЕЦ)
ГДЕ
    ВЫБОР
            КОГДА ХозрасчетныйОборотыДтКт.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПоставщиками)
                ТОГДА ВЫБОР
                        КОГДА ХозрасчетныйОборотыДтКт.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоАвансамВыданным)
                            ТОГДА ЛОЖЬ
                        ИНАЧЕ ИСТИНА
                    КОНЕЦ
            ИНАЧЕ ВЫБОР
                    КОГДА ХозрасчетныйОборотыДтКт.СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоАвансамВыданным)
                        ТОГДА ВЫБОР
                                КОГДА ХозрасчетныйОборотыДтКт.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПоставщиками)
                                    ТОГДА ЛОЖЬ
                                ИНАЧЕ ИСТИНА
                            КОНЕЦ
                КОНЕЦ
        КОНЕЦ
    И ХозрасчетныйОборотыДтКт.СчетДт <> ХозрасчетныйОборотыДтКт.СчетКт
    И ХозрасчетныйОстаткиИОбороты.Регистратор = &Регистратор
А вот результат
http://i82.fastpic.ru/big/2016/1109/41/f375e1244c27947ecd5c4b3e7f1fe541.png
а вот сам документ. У меня должны были быть получены отчетом кредитовые обороты, а в результате у меня обороты и в Дт и в Кт. почему так произошло?
http://i82.fastpic.ru/big/2016/1109/41/f375e1244c27947ecd5c4b3e7f1fe541.png
1 Cyberhawk
 
09.11.16
17:13
Про двойную запись ничего не слышал что ли?
2 Cyberhawk
 
09.11.16
17:14
"У меня должны были быть получены отчетом кредитовые обороты" // пожалуйста, получай. Но только по какому-то одному счету
3 Cyberhawk
 
09.11.16
17:14
Собственно, ты и получил кредитовый оборот по одному счету. Который всегда идет в паре оборотом по другому счету (в твоем случае с дебетовым)
4 Cyberhawk
 
09.11.16
17:15
*в паре с
5 DailyLookingOnA Sunse
 
09.11.16
17:17
А чем поле из первой таблицы не устраивает?

ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший