|
Условие в запросе СКД | ☑ | ||
---|---|---|---|---|
0
maptbln
27.02.18
✎
10:32
|
День добрый , возможно ли в СКД в условиях использовать подобную запись?
ДолгПоГодам.СуммаРазвернутыйОстатокКт <> ДолгПоГодам.СуммаРазвернутыйОстатокДт ДолгПоГодам - временная таблица , строящаяся из регистра Хозрасчетный таблица Остатки если нельзя использовать такой синтаксис в условии , то как можно его реализовать? |
|||
1
Flover
27.02.18
✎
10:37
|
(0) На все что нельзя - программа ругается!
пробуй! |
|||
2
maptbln
27.02.18
✎
10:37
|
да в том то и дело,что не ругается
но судя по отработке,условие не выполняется.. |
|||
3
Flover
27.02.18
✎
10:42
|
(2) "но судя по отработке,условие не выполняется.."
Уверен? или оно не выполняется так как хочется? Выгрузи в ТЗ и посмотри чему построчно равны колонки СуммаРазвернутыйОстатокКт и СуммаРазвернутыйОстатокДт |
|||
4
nordbox
27.02.18
✎
10:42
|
>>ДолгПоГодам - временная таблица
Уверен что там что то есть? |
|||
5
Shurjk
27.02.18
✎
10:52
|
В СКД или в запросе который источник данных для СКД?
|
|||
6
maptbln
27.02.18
✎
11:02
|
||||
7
Shurjk
27.02.18
✎
11:11
|
(6) Если в запросе нет группировки то эти показатели будут в разных строках (скорее всего зависит от того из какой еще таблицы выбирается), я думаю причина скорее всего в этом.
|
|||
8
Franchiser
гуру
27.02.18
✎
11:16
|
Попробуй использовать естьnull() и условие на уровне группировок
|
|||
9
catena
27.02.18
✎
11:17
|
(7)Дт и Кт в разных строках? Это как надо запрос составлять?
|
|||
10
Franchiser
гуру
27.02.18
✎
11:18
|
Анализируй запрос в макете компоновки
|
|||
11
maptbln
27.02.18
✎
11:32
|
без условий и группировок запрос выглядит так :
ВЫБРАТЬ ВзаиморасчетыОстатки.Организация КАК Организация, ВЫРАЗИТЬ(ВзаиморасчетыОстатки.Субконто1 КАК Справочник.Контрагенты) КАК Контрагент, ВЫРАЗИТЬ(ВзаиморасчетыОстатки.Субконто2 КАК Справочник.ДоговорыКонтрагентов) КАК Договор, ВзаиморасчетыОстатки.Счет КАК Счет, ВзаиморасчетыОстатки.СуммаРазвернутыйОстатокКт КАК СуммаРазвернутыйОстатокКт, ВзаиморасчетыОстатки.Подразделение КАК Подразделение, ВзаиморасчетыОстатки.Субконто3 КАК ДокументРасчетов, ВЫРАЗИТЬ(ВЫБОР КОГДА ВзаиморасчетыОстатки.Субконто3 = НЕОПРЕДЕЛЕНО ТОГДА &ПустаяДата ИНАЧЕ ВзаиморасчетыОстатки.Субконто3.Дата КОНЕЦ КАК ДАТА) КАК ДатаДокРасчетов, НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, СЕКУНДА, -1), ГОД) КАК ТекущийГод, ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, СЕКУНДА, -1), ГОД), ГОД, -1) КАК ПредыдущийГод1, ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, СЕКУНДА, -1), ГОД), ГОД, -2) КАК ПредыдущийГод2, ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, СЕКУНДА, -1), ГОД), ГОД, -3) КАК ПредыдущийГод3, ВзаиморасчетыОстатки.СуммаРазвернутыйОстатокДт КАК СуммаРазвернутыйОстатокДт ПОМЕСТИТЬ ОстаткиВсе ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&Период {(&Период)}, Счет В (&СчетаСДокументомРасчетов), , ВЫРАЗИТЬ(Субконто2 КАК Справочник.ДоговорыКонтрагентов).ВидДоговора В (&ВидыДоговоров) {(Организация).*, (Подразделение).*, (Субконто1).* КАК Контрагент, (Субконто2).* КАК Договор, (Субконто3).* КАК Документ}) КАК ВзаиморасчетыОстатки ГДЕ ВзаиморасчетыОстатки.ВалютнаяСуммаОстатокКт <> ВзаиморасчетыОстатки.ВалютнаяСуммаОстатокДт СГРУППИРОВАТЬ ПО ВзаиморасчетыОстатки.Счет, ВзаиморасчетыОстатки.Организация, ВзаиморасчетыОстатки.СуммаРазвернутыйОстатокКт, ВзаиморасчетыОстатки.Подразделение, ВзаиморасчетыОстатки.Субконто3, ВзаиморасчетыОстатки.СуммаРазвернутыйОстатокДт, ВЫРАЗИТЬ(ВзаиморасчетыОстатки.Субконто1 КАК Справочник.Контрагенты), ВЫРАЗИТЬ(ВзаиморасчетыОстатки.Субконто2 КАК Справочник.ДоговорыКонтрагентов), ВЫРАЗИТЬ(ВЫБОР КОГДА ВзаиморасчетыОстатки.Субконто3 = НЕОПРЕДЕЛЕНО ТОГДА &ПустаяДата ИНАЧЕ ВзаиморасчетыОстатки.Субконто3.Дата КОНЕЦ КАК ДАТА) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОстаткиВсе.Организация КАК Организация, ОстаткиВсе.Контрагент КАК Контрагент, ОстаткиВсе.Договор КАК Договор, ОстаткиВсе.Счет КАК Счет, ОстаткиВсе.Подразделение КАК Подразделение, ОстаткиВсе.ДокументРасчетов КАК ДокументРасчетов, ВЫБОР КОГДА ОстаткиВсе.ДатаДокРасчетов >= ОстаткиВсе.ТекущийГод ТОГДА ОстаткиВсе.СуммаРазвернутыйОстатокКт ИНАЧЕ 0 КОНЕЦ КАК ДолгТекущийГод, ВЫБОР КОГДА ОстаткиВсе.ДатаДокРасчетов < ОстаткиВсе.ТекущийГод И ОстаткиВсе.ДатаДокРасчетов >= ОстаткиВсе.ПредыдущийГод1 ТОГДА ОстаткиВсе.СуммаРазвернутыйОстатокКт ИНАЧЕ 0 КОНЕЦ КАК ДолгПредыдущийГод1, ВЫБОР КОГДА ОстаткиВсе.ДатаДокРасчетов < ОстаткиВсе.ПредыдущийГод1 И ОстаткиВсе.ДатаДокРасчетов >= ОстаткиВсе.ПредыдущийГод2 ТОГДА ОстаткиВсе.СуммаРазвернутыйОстатокКт ИНАЧЕ 0 КОНЕЦ КАК ДолгПредыдущийГод2, ВЫБОР КОГДА ОстаткиВсе.ДатаДокРасчетов < ОстаткиВсе.ПредыдущийГод2 И ОстаткиВсе.ДатаДокРасчетов > &ПустаяДата ТОГДА ОстаткиВсе.СуммаРазвернутыйОстатокКт ИНАЧЕ 0 КОНЕЦ КАК ДолгПредыдущийГод3, ОстаткиВсе.СуммаРазвернутыйОстатокКт КАК СуммаРазвернутыйОстатокКт, ОстаткиВсе.СуммаРазвернутыйОстатокДт КАК СуммаРазвернутыйОстатокДт ПОМЕСТИТЬ ДолгПоГодам ИЗ ОстаткиВсе КАК ОстаткиВсе ГДЕ ОстаткиВсе.СуммаРазвернутыйОстатокКт <> ОстаткиВсе.СуммаРазвернутыйОстатокДт СГРУППИРОВАТЬ ПО ОстаткиВсе.Счет, ОстаткиВсе.Организация, ОстаткиВсе.Контрагент, ОстаткиВсе.Договор, ОстаткиВсе.Подразделение, ОстаткиВсе.ДокументРасчетов, ОстаткиВсе.СуммаРазвернутыйОстатокКт, ОстаткиВсе.СуммаРазвернутыйОстатокДт, ВЫБОР КОГДА ОстаткиВсе.ДатаДокРасчетов >= ОстаткиВсе.ТекущийГод ТОГДА ОстаткиВсе.СуммаРазвернутыйОстатокКт ИНАЧЕ 0 КОНЕЦ, ВЫБОР КОГДА ОстаткиВсе.ДатаДокРасчетов < ОстаткиВсе.ТекущийГод И ОстаткиВсе.ДатаДокРасчетов >= ОстаткиВсе.ПредыдущийГод1 ТОГДА ОстаткиВсе.СуммаРазвернутыйОстатокКт ИНАЧЕ 0 КОНЕЦ, ВЫБОР КОГДА ОстаткиВсе.ДатаДокРасчетов < ОстаткиВсе.ПредыдущийГод1 И ОстаткиВсе.ДатаДокРасчетов >= ОстаткиВсе.ПредыдущийГод2 ТОГДА ОстаткиВсе.СуммаРазвернутыйОстатокКт ИНАЧЕ 0 КОНЕЦ, ВЫБОР КОГДА ОстаткиВсе.ДатаДокРасчетов < ОстаткиВсе.ПредыдущийГод2 И ОстаткиВсе.ДатаДокРасчетов > &ПустаяДата ТОГДА ОстаткиВсе.СуммаРазвернутыйОстатокКт ИНАЧЕ 0 КОНЕЦ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДолгПоГодам.Организация КАК Организация, ДолгПоГодам.Контрагент КАК Контрагент, ДолгПоГодам.Договор КАК Договор, ДолгПоГодам.Счет КАК Счет, ЕСТЬNULL(ДолгПоГодам.Подразделение, НЕОПРЕДЕЛЕНО) КАК Подразделение, ДолгПоГодам.ДокументРасчетов КАК Документ, ДолгПоГодам.ДолгТекущийГод КАК ДолгТекущийГод, ДолгПоГодам.ДолгПредыдущийГод1 КАК ДолгПредыдущийГод1, ДолгПоГодам.ДолгПредыдущийГод2 КАК ДолгПредыдущийГод2, ДолгПоГодам.ДолгПредыдущийГод3 КАК ДолгПредыдущийГод3, ДолгПоГодам.СуммаРазвернутыйОстатокКт - (ДолгПоГодам.ДолгТекущийГод + ДолгПоГодам.ДолгПредыдущийГод1 + ДолгПоГодам.ДолгПредыдущийГод2 + ДолгПоГодам.ДолгПредыдущийГод3) КАК ДолгСрокНеопределен, ДолгПоГодам.СуммаРазвернутыйОстатокКт КАК ОбщаяСуммаЗадолженности, ДолгПоГодам.СуммаРазвернутыйОстатокДт КАК СуммаРазвернутыйОстатокДт {ВЫБРАТЬ Организация.*, Подразделение.*, Контрагент.*, Договор.*, Документ.*} ИЗ ДолгПоГодам КАК ДолгПоГодам ГДЕ ДолгПоГодам.СуммаРазвернутыйОстатокКт <> ДолгПоГодам.СуммаРазвернутыйОстатокДт {ГДЕ ДолгПоГодам.Организация.*, ДолгПоГодам.Подразделение.*, ДолгПоГодам.Контрагент.*, ДолгПоГодам.Договор.*} СГРУППИРОВАТЬ ПО ДолгПоГодам.Счет, ДолгПоГодам.Организация, ДолгПоГодам.Контрагент, ДолгПоГодам.Договор, ДолгПоГодам.ДокументРасчетов, ДолгПоГодам.ДолгТекущийГод, ДолгПоГодам.ДолгПредыдущийГод1, ДолгПоГодам.ДолгПредыдущийГод2, ДолгПоГодам.ДолгПредыдущийГод3, ДолгПоГодам.СуммаРазвернутыйОстатокКт, ДолгПоГодам.СуммаРазвернутыйОстатокДт, ЕСТЬNULL(ДолгПоГодам.Подразделение, НЕОПРЕДЕЛЕНО) |
|||
12
maptbln
27.02.18
✎
11:34
|
точнее С
|
|||
13
catena
27.02.18
✎
11:34
|
(11)С теперь в картинках, с чего ты решил, что условие не работает.
|
|||
14
maptbln
27.02.18
✎
11:52
|
(13) сейчас выложу
а можете объяснить пожалуйста,почему когда я добавляю группировку по полю Счет система автоматически добавляет остальные группировки? |
|||
15
catena
27.02.18
✎
11:54
|
(14)Потому что такие правила синтаксиса запросов: все поля должны участвовать либо в группировке, либо в агрегатных функциях.
|
|||
16
maptbln
27.02.18
✎
11:56
|
(15)
либо ни одно не должно участвовать , так получается? |
|||
17
catena
27.02.18
✎
12:04
|
(16)Да. Как вы себе представляете группировку по одному полю?
|
|||
18
maptbln
27.02.18
✎
15:16
|
В общем , экспериментировал с запросом
сначала добавил группировку и условие в 1 пакет - не работает, затем во второй - тоже самое ,ну и наконец в 3 - тоже толку 0 текст запроса ВЫБРАТЬ ВзаиморасчетыОстатки.Организация КАК Организация, ВЫРАЗИТЬ(ВзаиморасчетыОстатки.Субконто1 КАК Справочник.Контрагенты) КАК Контрагент, ВЫРАЗИТЬ(ВзаиморасчетыОстатки.Субконто2 КАК Справочник.ДоговорыКонтрагентов) КАК Договор, ВзаиморасчетыОстатки.Счет КАК Счет, СУММА(ВзаиморасчетыОстатки.СуммаРазвернутыйОстатокКт) КАК СуммаРазвернутыйОстатокКт, ВзаиморасчетыОстатки.Подразделение КАК Подразделение, ВзаиморасчетыОстатки.Субконто3 КАК ДокументРасчетов, ВЫРАЗИТЬ(ВЫБОР КОГДА ВзаиморасчетыОстатки.Субконто3 = НЕОПРЕДЕЛЕНО ТОГДА &ПустаяДата ИНАЧЕ ВзаиморасчетыОстатки.Субконто3.Дата КОНЕЦ КАК ДАТА) КАК ДатаДокРасчетов, НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, СЕКУНДА, -1), ГОД) КАК ТекущийГод, ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, СЕКУНДА, -1), ГОД), ГОД, -1) КАК ПредыдущийГод1, ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, СЕКУНДА, -1), ГОД), ГОД, -2) КАК ПредыдущийГод2, ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, СЕКУНДА, -1), ГОД), ГОД, -3) КАК ПредыдущийГод3, СУММА(ВзаиморасчетыОстатки.СуммаРазвернутыйОстатокДт) КАК СуммаРазвернутыйОстатокДт ПОМЕСТИТЬ ОстаткиВсе ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&Период {(&Период)}, Счет В (&СчетаСДокументомРасчетов), , ВЫРАЗИТЬ(Субконто2 КАК Справочник.ДоговорыКонтрагентов).ВидДоговора В (&ВидыДоговоров) {(Организация).*, (Подразделение).*, (Субконто1).* КАК Контрагент, (Субконто2).* КАК Договор, (Субконто3).* КАК Документ}) КАК ВзаиморасчетыОстатки ГДЕ ВзаиморасчетыОстатки.СуммаРазвернутыйОстатокКт <> ВзаиморасчетыОстатки.СуммаРазвернутыйОстатокДт СГРУППИРОВАТЬ ПО ВзаиморасчетыОстатки.Счет, ВзаиморасчетыОстатки.Организация, ВзаиморасчетыОстатки.Подразделение, ВзаиморасчетыОстатки.Субконто3, ВЫРАЗИТЬ(ВзаиморасчетыОстатки.Субконто1 КАК Справочник.Контрагенты), ВЫРАЗИТЬ(ВзаиморасчетыОстатки.Субконто2 КАК Справочник.ДоговорыКонтрагентов), ВЫРАЗИТЬ(ВЫБОР КОГДА ВзаиморасчетыОстатки.Субконто3 = НЕОПРЕДЕЛЕНО ТОГДА &ПустаяДата ИНАЧЕ ВзаиморасчетыОстатки.Субконто3.Дата КОНЕЦ КАК ДАТА) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОстаткиВсе.Организация КАК Организация, ОстаткиВсе.Контрагент КАК Контрагент, ОстаткиВсе.Договор КАК Договор, ОстаткиВсе.Счет КАК Счет, ОстаткиВсе.Подразделение КАК Подразделение, ОстаткиВсе.ДокументРасчетов КАК ДокументРасчетов, СУММА(ВЫБОР КОГДА ОстаткиВсе.ДатаДокРасчетов >= ОстаткиВсе.ТекущийГод ТОГДА ОстаткиВсе.СуммаРазвернутыйОстатокКт ИНАЧЕ 0 КОНЕЦ) КАК ДолгТекущийГод, СУММА(ВЫБОР КОГДА ОстаткиВсе.ДатаДокРасчетов < ОстаткиВсе.ТекущийГод И ОстаткиВсе.ДатаДокРасчетов >= ОстаткиВсе.ПредыдущийГод1 ТОГДА ОстаткиВсе.СуммаРазвернутыйОстатокКт ИНАЧЕ 0 КОНЕЦ) КАК ДолгПредыдущийГод1, СУММА(ВЫБОР КОГДА ОстаткиВсе.ДатаДокРасчетов < ОстаткиВсе.ПредыдущийГод1 И ОстаткиВсе.ДатаДокРасчетов >= ОстаткиВсе.ПредыдущийГод2 ТОГДА ОстаткиВсе.СуммаРазвернутыйОстатокКт ИНАЧЕ 0 КОНЕЦ) КАК ДолгПредыдущийГод2, СУММА(ВЫБОР КОГДА ОстаткиВсе.ДатаДокРасчетов < ОстаткиВсе.ПредыдущийГод2 И ОстаткиВсе.ДатаДокРасчетов > &ПустаяДата ТОГДА ОстаткиВсе.СуммаРазвернутыйОстатокКт ИНАЧЕ 0 КОНЕЦ) КАК ДолгПредыдущийГод3, СУММА(ОстаткиВсе.СуммаРазвернутыйОстатокКт) КАК СуммаРазвернутыйОстатокКт, СУММА(ОстаткиВсе.СуммаРазвернутыйОстатокДт) КАК СуммаРазвернутыйОстатокДт ПОМЕСТИТЬ ДолгПоГодам ИЗ ОстаткиВсе КАК ОстаткиВсе ГДЕ ОстаткиВсе.СуммаРазвернутыйОстатокКт <> ОстаткиВсе.СуммаРазвернутыйОстатокДт СГРУППИРОВАТЬ ПО ОстаткиВсе.Организация, ОстаткиВсе.Контрагент, ОстаткиВсе.Договор, ОстаткиВсе.Счет, ОстаткиВсе.Подразделение, ОстаткиВсе.ДокументРасчетов ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДолгПоГодам.Организация КАК Организация, ДолгПоГодам.Контрагент КАК Контрагент, ДолгПоГодам.Договор КАК Договор, ДолгПоГодам.Счет КАК Счет, ЕСТЬNULL(ДолгПоГодам.Подразделение, НЕОПРЕДЕЛЕНО) КАК Подразделение, ДолгПоГодам.ДокументРасчетов КАК Документ, ДолгПоГодам.ДолгТекущийГод КАК ДолгТекущийГод, ДолгПоГодам.ДолгПредыдущийГод1 КАК ДолгПредыдущийГод1, ДолгПоГодам.ДолгПредыдущийГод2 КАК ДолгПредыдущийГод2, ДолгПоГодам.ДолгПредыдущийГод3 КАК ДолгПредыдущийГод3, ДолгПоГодам.СуммаРазвернутыйОстатокКт - (ДолгПоГодам.ДолгТекущийГод + ДолгПоГодам.ДолгПредыдущийГод1 + ДолгПоГодам.ДолгПредыдущийГод2 + ДолгПоГодам.ДолгПредыдущийГод3) КАК ДолгСрокНеопределен, СУММА(ДолгПоГодам.СуммаРазвернутыйОстатокКт) КАК ОбщаяСуммаЗадолженности, СУММА(ДолгПоГодам.СуммаРазвернутыйОстатокДт) КАК СуммаРазвернутыйОстатокДт {ВЫБРАТЬ Организация.*, Подразделение.*, Контрагент.*, Договор.*, Документ.*} ИЗ ДолгПоГодам КАК ДолгПоГодам ГДЕ ДолгПоГодам.СуммаРазвернутыйОстатокКт <> ДолгПоГодам.СуммаРазвернутыйОстатокДт {ГДЕ ДолгПоГодам.Организация.*, ДолгПоГодам.Подразделение.*, ДолгПоГодам.Контрагент.*, ДолгПоГодам.Договор.*} СГРУППИРОВАТЬ ПО ДолгПоГодам.Организация, ДолгПоГодам.Контрагент, ДолгПоГодам.Договор, ДолгПоГодам.Счет, ЕСТЬNULL(ДолгПоГодам.Подразделение, НЕОПРЕДЕЛЕНО), ДолгПоГодам.ДокументРасчетов, ДолгПоГодам.ДолгТекущийГод, ДолгПоГодам.ДолгПредыдущийГод1, ДолгПоГодам.ДолгПредыдущийГод2, ДолгПоГодам.ДолгПредыдущийГод3, ДолгПоГодам.СуммаРазвернутыйОстатокКт - (ДолгПоГодам.ДолгТекущийГод + ДолгПоГодам.ДолгПредыдущийГод1 + ДолгПоГодам.ДолгПредыдущийГод2 + ДолгПоГодам.ДолгПредыдущийГод3) Контрагент Имеретинская Ривьера , если смотреть по оборотке , то он как раз не попадает в данное условие и не должен отображаться в отчёте |
|||
19
maptbln
27.02.18
✎
15:18
|
Поля СуммаРазвернутыйОстатокКт и СуммаРазвернутыйОстатокДт в группировках использовал как суммируемые
|
|||
20
tesseract
27.02.18
✎
15:22
|
(19) Тогда суммируй в запросе их.
ИМЕЮЩИЕ СУММА(СуммаРазвернутыйОстатокКт) <> СУММА(СуммаРазвернутыйОстатокДт) как пример. |
|||
21
maptbln
27.02.18
✎
15:30
|
||||
22
maptbln
27.02.18
✎
15:49
|
(20)
погоды это не сделало |
|||
23
catena
28.02.18
✎
06:12
|
(22)Ты понимаешь, что использование СуммаРазвернутыйОстатокКт в выражении поля группировки убивает суммирование нафик?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |