|
Вопрос по запросу | ☑ | ||
---|---|---|---|---|
0
Rounder
07.02.13
✎
11:59
|
Нужно в отчете показать движения денежных средств, причем отобразить и те статьи, по которым движения не было.
ВЫБРАТЬ РАЗРЕШЕННЫЕ ДвиженияДенежныхСредствОбороты.ПриходРасход, ДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств, ВЫБОР КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Пр ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот ИНАЧЕ ДвиженияДенежныхСредствОбороты.СуммаУпрОборот * -1 КОНЕЦ КАК СуммаУпрОборот, ДвиженияДенежныхСредствОбороты.ДокументДвижения.Подразделение, ДвиженияДенежныхСредствОбороты.ДокументДвижения.ВалютаДокумента, ВЫБОР КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Пр ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот ИНАЧЕ ДвиженияДенежныхСредствОбороты.СуммаОборот * -1 КОНЕЦ КАК СуммаОборот, ДвиженияДенежныхСредствОбороты.Контрагент, СтатьиДвиженияДенежныхСредств.Ссылка КАК СтатьяИзСпр, ДвиженияДенежныхСредствОбороты.ДокументПланированияПлатежа, ДвиженияДенежныхСредствОбороты.ДокументДвижения ИЗ Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДвиженияДенежныхСредств ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияДенежныхСредств.Обороты КАК ДвиженияДенежныхСредствОбороты ПО (ДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств = СтатьиДвиженияДенежныхСредств.Ссылка) Все работает как нужно, но ровно до тех пор пока пользователь не накладывает отбор - например по подразделения в документе движения. После этого отображаются уже лишь те статьи, по которым были движения с учетом отбора. Пользовательский отбор накладывается уже на результат исходного запроса? Как правильно обойти эту ситуацию и в результате получить список всех статей и движения по отобранным подразделениям? |
|||
1
Нуф-Нуф
07.02.13
✎
12:00
|
1. выполнить запрос к виртуально таблице оборотов
2. поместить во временную таблицу 3. выполнить соединение статей и временной таблицы |
|||
2
Rounder
07.02.13
✎
12:02
|
(1) Забыл упомянуть что отчет на СКД. Это что-нибудь меняет в (1).
|
|||
3
Rounder
07.02.13
✎
12:03
|
в конце (2) знак вопроса.
|
|||
4
Kashemir
07.02.13
✎
12:05
|
(2) Опиши явно места накладывания отборов через {}, в частности в твоем случае можно через параметры виртульной таблицы
|
|||
5
Kashemir
07.02.13
✎
12:07
|
Примерно так
ВЫБРАТЬ РАЗРЕШЕННЫЕ ДвиженияДенежныхСредствОбороты.ПриходРасход КАК ПриходРасход, ДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств, ВЫБОР КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Пр ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот ИНАЧЕ ДвиженияДенежныхСредствОбороты.СуммаУпрОборот * -1 КОНЕЦ КАК СуммаУпрОборот, ДвиженияДенежныхСредствОбороты.ДокументДвижения.Подразделение КАК ДокументДвиженияПодразделение, ДвиженияДенежныхСредствОбороты.ДокументДвижения.ВалютаДокумента КАК ДокументДвиженияВалютаДокумента, ВЫБОР КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Пр ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот ИНАЧЕ ДвиженияДенежныхСредствОбороты.СуммаОборот * -1 КОНЕЦ КАК СуммаОборот, ДвиженияДенежныхСредствОбороты.Контрагент КАК Контрагент, СтатьиДвиженияДенежныхСредств.Ссылка КАК СтатьяИзСпр, ДвиженияДенежныхСредствОбороты.ДокументПланированияПлатежа КАК ДокументПланированияПлатежа, ДвиженияДенежныхСредствОбороты.ДокументДвижения КАК ДокументДвижения {ВЫБРАТЬ ПриходРасход.*, СтатьяДвиженияДенежныхСредств.*, СуммаУпрОборот, ДокументДвиженияПодразделение.*, ДокументДвиженияВалютаДокумента.*, СуммаОборот, Контрагент.*, СтатьяИзСпр.*, ДокументПланированияПлатежа.*, ДокументДвижения.*} ИЗ Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДвиженияДенежныхСредств ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияДенежныхСредств.Обороты(, , , {(Организация).* КАК Организация, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ВидДенежныхСредств).* КАК ВидДенежныхСредств, (БанковскийСчетКасса).* КАК БанковскийСчетКасса, (ДокументПланированияПлатежа).* КАК ДокументПланированияПлатежа, (ДокументРасчетовСКонтрагентом).* КАК ДокументРасчетовСКонтрагентом, (ПриходРасход).* КАК ПриходРасход, (Проект).* КАК Проект, (Сделка).* КАК Сделка, (СтатьяДвиженияДенежныхСредств).* КАК СтатьяДвиженияДенежныхСредствРегистра}) КАК ДвиженияДенежныхСредствОбороты ПО (ДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств = СтатьиДвиженияДенежныхСредств.Ссылка) {ГДЕ СтатьиДвиженияДенежныхСредств.Ссылка.* КАК СтатьиДвиженияДенежныхСредствСправочника} и сними галочку "Автозаполнение" у набора |
|||
6
Fragster
гуру
07.02.13
✎
12:08
|
два набора данных, один со статьями, другой - с оборотами.
|
|||
7
Rounder
07.02.13
✎
12:09
|
Спасибо. Все попробую.
|
|||
8
Нуф-Нуф
07.02.13
✎
12:11
|
(2) не меняет
|
|||
9
Rounder
07.02.13
✎
12:30
|
ни (5) ни (6) не помогло - ну или руки кривые у меня
|
|||
10
Fragster
гуру
07.02.13
✎
12:30
|
(9) про руки верно, вестимо
|
|||
11
Fragster
гуру
07.02.13
✎
12:31
|
а вообще - дело в том, что левое соединение у тебя превращается во внутреннее. Условие в СКД давай "в группе ИЛИ статья такая-то или не заполнена"
|
|||
12
Kashemir
07.02.13
✎
12:33
|
(9) Руки ясно дело. Специально тебе 2 поля условий вывел "СтатьяДвиженияДенежныхСредствРегистра" отбрасывает только записи регистра, второе по факту порежет считай всю таблицу "СтатьиДвиженияДенежныхСредствСправочника"
|
|||
13
Rounder
07.02.13
✎
12:34
|
Буды копать дальше значит.
|
|||
14
Rounder
07.02.13
✎
12:34
|
Буду
|
|||
15
Kashemir
07.02.13
✎
12:36
|
(13) Возьми стандартную консоль отчетов и посмотри как в зависимости от настроек меняется результирующий запрос, может че-нить поймешь о {}
|
|||
16
Rounder
07.02.13
✎
16:46
|
(15) Я понял что-нить о {}. Но я не могу в {} описать все возможные варианты отбора. Пользователь может отобрать по чему хочет (например у ДокументаДвижения кучища реквизитов), и как только он выбирает для отбора поле не описанное в {} сразу получаю "обрезанный" список статей, т.е. отбор накладывается снова на весь запрос.
Также попробовал и (1) в таком варианте как там написано плюс еще две временные таблицы и левое соединение с ними - все одно результат не понимаю. Вот результирующий запрос при установке отбора: <query>ВЫБРАТЬ РАЗРЕШЕННЫЕ ДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств, ВЫБОР КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Пр ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот ИНАЧЕ ДвиженияДенежныхСредствОбороты.СуммаУпрОборот * -1 КОНЕЦ КАК СуммаУпрОборот, ДвиженияДенежныхСредствОбороты.ДокументДвижения.ВалютаДокумента КАК ДокументДвиженияВалютаДокумента, ВЫБОР КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Пр ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот ИНАЧЕ ДвиженияДенежныхСредствОбороты.СуммаОборот * -1 КОНЕЦ КАК СуммаОборот, ДвиженияДенежныхСредствОбороты.ДокументДвижения КАК ДокументДвижения ПОМЕСТИТЬ Движения ИЗ РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&П, &П2, , ДокументДвижения.Подразделение = &П3) КАК ДвиженияДенежныхСредствОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ СтатьиДвиженияДенежныхСредств.Ссылка КАК СтатьяИзСпр ПОМЕСТИТЬ Статьи ИЗ Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДвиженияДенежныхСредств ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ Движения.СуммаУпрОборот КАК СуммаУпрОборот, Движения.ДокументДвиженияВалютаДокумента КАК ДокументДвиженияВалютаДокумента, Движения.СуммаОборот КАК СуммаОборот, Статьи.СтатьяИзСпр КАК СтатьяИзСпр, ПРЕДСТАВЛЕНИЕССЫЛКИ(Движения.ДокументДвиженияВалютаДокумента) КАК ДокументДвиженияВалютаДокументаПредставление, Движения.ДокументДвиженияВалютаДокумента.Наименование КАК ДокументДвиженияВалютаДокументаНаименование, ПРЕДСТАВЛЕНИЕССЫЛКИ(Статьи.СтатьяИзСпр) КАК СтатьяИзСпрПредставление, Статьи.СтатьяИзСпр.Код КАК СтатьяИзСпрКод, Статьи.СтатьяИзСпр.ЭтоГруппа КАК СтатьяИзСпрЭтоГруппа ИЗ Статьи КАК Статьи ЛЕВОЕ СОЕДИНЕНИЕ Движения КАК Движения ПО Статьи.СтатьяИзСпр = Движения.СтатьяДвиженияДенежныхСредств ГДЕ Движения.ДокументДвижения.Подразделение = &П3</query> Как сделать чтобы отбор установленный на поле конкретной временной таблицы затем не устанавливался и на результирующий запрос. В нашем случае дважды установлено условие Движения.ДокументДвижения.Подразделение = &П3 |
|||
17
Rounder
07.02.13
✎
17:30
|
Актуально
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |