Вход | Регистрация


Чуть подправленный Запрос не выдает часть документов. Комплексная 1.1

Чуть подправленный Запрос не выдает часть документов. Комплексная 1.1
Я
   kIR
 
23.09.16 - 14:44
Доброго дня!
В КА 1.1  в Акте сверки попросили допилить возможность формирования акта по нескольким договорам одновременно.
Сделал, взял стандартный запрос заполнения по данным бух учета

ВЫБРАТЬ
    ХозрасчетныйОбороты.Регистратор.Дата КАК Дата,
    ХозрасчетныйОбороты.Регистратор КАК ДокументРегистратор,
    ХозрасчетныйОбороты.Субконто2 КАК Договор,
    ВЫБОР
        КОГДА &Валюта = НЕОПРЕДЕЛЕНО
            ТОГДА ХозрасчетныйОбороты.СуммаОборотДт
        ИНАЧЕ ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт
    КОНЕЦ КАК Дебет,
    ВЫБОР
        КОГДА &Валюта = НЕОПРЕДЕЛЕНО
            ТОГДА ХозрасчетныйОбороты.СуммаОборотКт
        ИНАЧЕ ХозрасчетныйОбороты.ВалютнаяСуммаОборотКт
    КОНЕЦ КАК Кредит,
    ЕСТЬNULL(ХозрасчетныйОбороты.Регистратор.НомерВходящегоДокумента, НЕОПРЕДЕЛЕНО) КАК НомерВходящегоДокумента,
    ЕСТЬNULL(ХозрасчетныйОбороты.Регистратор.ДатаВходящегоДокумента, НЕОПРЕДЕЛЕНО) КАК ДатаВходящегоДокумента,
    ХозрасчетныйОбороты.КорСчет,
    ХозрасчетныйОбороты.КорСубконто1,
    ХозрасчетныйОбороты.КорСубконто2,
    ХозрасчетныйОбороты.КорСубконто3,
    ХозрасчетныйОбороты.Валюта,
    ХозрасчетныйОбороты.ВалютнаяСуммаОборот,
    ВЫБОР
        КОГДА ХозрасчетныйОбороты.КорСубконто1 ССЫЛКА Справочник.ПрочиеДоходыИРасходы
            ТОГДА ХозрасчетныйОбороты.КорСубконто1.ВидПрочихДоходовИРасходов
        ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ КАК ВидПрочихДоходовИРасходов,
    ХозрасчетныйОбороты.Счет
ПОМЕСТИТЬ ВременнаяТаблицаДанных
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(
            &ДатаНачала,
            &ДатаОкончания,
            Регистратор,
            Счет В (&ФильтрСписокСчетов),
            &АналитикаРасчетов,
            Организация = &Организация
                И ВЫБОР
                    КОГДА &Валюта = НЕОПРЕДЕЛЕНО
                        ТОГДА ИСТИНА
                    ИНАЧЕ Валюта = &Валюта
                КОНЕЦ
                И Субконто1 = &Контрагент
                И ВЫБОР
                    КОГДА &ДоговорКонтрагента = НЕОПРЕДЕЛЕНО
                        ТОГДА ИСТИНА
                    ИНАЧЕ Субконто2 = &ДоговорКонтрагента
                КОНЕЦ,
            ,
            ) КАК ХозрасчетныйОбороты
ГДЕ
    ВЫБОР
            КОГДА ХозрасчетныйОбороты.КорСчет В (&ФильтрСписокСчетов)
                ТОГДА ВЫБОР
                        КОГДА &ДоговорКонтрагента = НЕОПРЕДЕЛЕНО
                            ТОГДА НЕ ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) = &Контрагент
                        ИНАЧЕ НЕ(ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) = &Контрагент
                                    И ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто2, НЕОПРЕДЕЛЕНО) = &ДоговорКонтрагента)
                    КОНЕЦ
            ИНАЧЕ ИСТИНА
        КОНЕЦ
    И НЕ(ВЫБОР
                    КОГДА &Валюта = НЕОПРЕДЕЛЕНО
                        ТОГДА ХозрасчетныйОбороты.СуммаОборотДт
                    ИНАЧЕ ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт
                КОНЕЦ = 0
                И ВЫБОР
                    КОГДА &Валюта = НЕОПРЕДЕЛЕНО
                        ТОГДА ХозрасчетныйОбороты.СуммаОборотКт
                    ИНАЧЕ ХозрасчетныйОбороты.ВалютнаяСуммаОборотКт
                КОНЕЦ = 0)
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВременнаяТаблицаДанных.Дата,
    ВременнаяТаблицаДанных.ДокументРегистратор,
    ВременнаяТаблицаДанных.Договор,
    СУММА(ВременнаяТаблицаДанных.Дебет) КАК Дебет,
    СУММА(ВременнаяТаблицаДанных.Кредит) КАК Кредит,
    ВременнаяТаблицаДанных.НомерВходящегоДокумента,
    ВременнаяТаблицаДанных.ДатаВходящегоДокумента,
    ВременнаяТаблицаДанных.КорСчет,
    ВЫРАЗИТЬ(ВременнаяТаблицаДанных.КорСубконто1 КАК Справочник.ПрочиеДоходыИРасходы) КАК КорСубконто1,
    ВременнаяТаблицаДанных.Валюта,
    СУММА(ВременнаяТаблицаДанных.ВалютнаяСуммаОборот) КАК ВалютнаяСуммаОборот,
    ВременнаяТаблицаДанных.ВидПрочихДоходовИРасходов,
    ВременнаяТаблицаДанных.Счет
ИЗ
    ВременнаяТаблицаДанных КАК ВременнаяТаблицаДанных

СГРУППИРОВАТЬ ПО
    ВременнаяТаблицаДанных.Договор,
    ВременнаяТаблицаДанных.НомерВходящегоДокумента,
    ВременнаяТаблицаДанных.ДатаВходящегоДокумента,
    ВременнаяТаблицаДанных.КорСчет,
    ВЫРАЗИТЬ(ВременнаяТаблицаДанных.КорСубконто1 КАК Справочник.ПрочиеДоходыИРасходы),
    ВременнаяТаблицаДанных.Валюта,
    ВременнаяТаблицаДанных.ВидПрочихДоходовИРасходов,
    ВременнаяТаблицаДанных.Счет,
    ВременнаяТаблицаДанных.Дата,
    ВременнаяТаблицаДанных.ДокументРегистратор

ИМЕЮЩИЕ
    НЕ(СУММА(ВременнаяТаблицаДанных.Дебет) = 0
            И СУММА(ВременнаяТаблицаДанных.Кредит) = 0)

УПОРЯДОЧИТЬ ПО
    ВременнаяТаблицаДанных.Дата,
    ВременнаяТаблицаДанных.ДокументРегистратор


Чуть его перепилил, убрав условие на неопределенность параметра &ДоговорКонтрагента и исправил сравнение с договоров на проверку нахождения "В". В коде дописал условие на тип заполнения и передавая при необходимости вместо одного договора - массив договоров. Получилось так


ВЫБРАТЬ
    ХозрасчетныйОбороты.Регистратор.Дата КАК Дата,
    ХозрасчетныйОбороты.Регистратор КАК ДокументРегистратор,
    ХозрасчетныйОбороты.Субконто2 КАК Договор,
    ВЫБОР
        КОГДА &Валюта = НЕОПРЕДЕЛЕНО
            ТОГДА ХозрасчетныйОбороты.СуммаОборотДт
        ИНАЧЕ ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт
    КОНЕЦ КАК Дебет,
    ВЫБОР
        КОГДА &Валюта = НЕОПРЕДЕЛЕНО
            ТОГДА ХозрасчетныйОбороты.СуммаОборотКт
        ИНАЧЕ ХозрасчетныйОбороты.ВалютнаяСуммаОборотКт
    КОНЕЦ КАК Кредит,
    ЕСТЬNULL(ХозрасчетныйОбороты.Регистратор.НомерВходящегоДокумента, НЕОПРЕДЕЛЕНО) КАК НомерВходящегоДокумента,
    ЕСТЬNULL(ХозрасчетныйОбороты.Регистратор.ДатаВходящегоДокумента, НЕОПРЕДЕЛЕНО) КАК ДатаВходящегоДокумента,
    ХозрасчетныйОбороты.КорСчет,
    ХозрасчетныйОбороты.КорСубконто1,
    ХозрасчетныйОбороты.КорСубконто2,
    ХозрасчетныйОбороты.КорСубконто3,
    ХозрасчетныйОбороты.Валюта,
    ХозрасчетныйОбороты.ВалютнаяСуммаОборот,
    ВЫБОР
        КОГДА ХозрасчетныйОбороты.КорСубконто1 ССЫЛКА Справочник.ПрочиеДоходыИРасходы
            ТОГДА ХозрасчетныйОбороты.КорСубконто1.ВидПрочихДоходовИРасходов
        ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ КАК ВидПрочихДоходовИРасходов,
    ХозрасчетныйОбороты.Счет
ПОМЕСТИТЬ ВременнаяТаблицаДанных
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(
            &ДатаНачала,
            &ДатаОкончания,
            Регистратор,
            Счет В (&ФильтрСписокСчетов),
            &АналитикаРасчетов,
            Организация = &Организация
                И ВЫБОР
                    КОГДА &Валюта = НЕОПРЕДЕЛЕНО
                        ТОГДА ИСТИНА
                    ИНАЧЕ Валюта = &Валюта
                КОНЕЦ
                И Субконто1 = &Контрагент
                И Субконто2 В (&ДоговорКонтрагента),
            ,
            ) КАК ХозрасчетныйОбороты
ГДЕ
    ВЫБОР
            КОГДА ХозрасчетныйОбороты.КорСчет В (&ФильтрСписокСчетов)
                ТОГДА НЕ(ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто1, НЕОПРЕДЕЛЕНО) = &Контрагент
                            И ЕСТЬNULL(ХозрасчетныйОбороты.КорСубконто2, НЕОПРЕДЕЛЕНО) В (&ДоговорКонтрагента))
            ИНАЧЕ ИСТИНА
        КОНЕЦ
    И НЕ(ВЫБОР
                    КОГДА &Валюта = НЕОПРЕДЕЛЕНО
                        ТОГДА ХозрасчетныйОбороты.СуммаОборотДт
                    ИНАЧЕ ХозрасчетныйОбороты.ВалютнаяСуммаОборотДт
                КОНЕЦ = 0
                И ВЫБОР
                    КОГДА &Валюта = НЕОПРЕДЕЛЕНО
                        ТОГДА ХозрасчетныйОбороты.СуммаОборотКт
                    ИНАЧЕ ХозрасчетныйОбороты.ВалютнаяСуммаОборотКт
                КОНЕЦ = 0)
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВременнаяТаблицаДанных.Дата,
    ВременнаяТаблицаДанных.ДокументРегистратор,
    ВременнаяТаблицаДанных.Договор,
    СУММА(ВременнаяТаблицаДанных.Дебет) КАК Дебет,
    СУММА(ВременнаяТаблицаДанных.Кредит) КАК Кредит,
    ВременнаяТаблицаДанных.НомерВходящегоДокумента,
    ВременнаяТаблицаДанных.ДатаВходящегоДокумента,
    ВременнаяТаблицаДанных.КорСчет,
    ВЫРАЗИТЬ(ВременнаяТаблицаДанных.КорСубконто1 КАК Справочник.ПрочиеДоходыИРасходы) КАК КорСубконто1,
    ВременнаяТаблицаДанных.Валюта,
    СУММА(ВременнаяТаблицаДанных.ВалютнаяСуммаОборот) КАК ВалютнаяСуммаОборот,
    ВременнаяТаблицаДанных.ВидПрочихДоходовИРасходов,
    ВременнаяТаблицаДанных.Счет
ИЗ
    ВременнаяТаблицаДанных КАК ВременнаяТаблицаДанных

СГРУППИРОВАТЬ ПО
    ВременнаяТаблицаДанных.Договор,
    ВременнаяТаблицаДанных.НомерВходящегоДокумента,
    ВременнаяТаблицаДанных.ДатаВходящегоДокумента,
    ВременнаяТаблицаДанных.КорСчет,
    ВЫРАЗИТЬ(ВременнаяТаблицаДанных.КорСубконто1 КАК Справочник.ПрочиеДоходыИРасходы),
    ВременнаяТаблицаДанных.Валюта,
    ВременнаяТаблицаДанных.ВидПрочихДоходовИРасходов,
    ВременнаяТаблицаДанных.Счет,
    ВременнаяТаблицаДанных.Дата,
    ВременнаяТаблицаДанных.ДокументРегистратор

ИМЕЮЩИЕ
    НЕ(СУММА(ВременнаяТаблицаДанных.Дебет) = 0
            И СУММА(ВременнаяТаблицаДанных.Кредит) = 0)

УПОРЯДОЧИТЬ ПО
    ВременнаяТаблицаДанных.Дата,
    ВременнаяТаблицаДанных.ДокументРегистратор


Вроде ничего критичного - но не выводит документы "корректировка долга" и все,ХКТТБ. При этом если по одному отдельному договору формировать - то корректировка отображается.
Пните в нужное направление, где ошибка?

Спасибо
 
 
   kIR
 
1 - 23.09.16 - 14:48
читается не особо,прошу прощения, но не знал,как по другому выложить

Список тем форума
Рекламное место пустует  Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки - вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует