|
Пустые результаты в запросе. | ☑ | ||
---|---|---|---|---|
0
ogion83
12.08.14
✎
14:39
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ВзаиморасчетыОстаткиИОбороты.Контрагент КАК Контрагент, | ВзаиморасчетыОстаткиИОбороты.ВидВзаиморасчетов КАК ВидВзаиморасчетов, | ЕстьNull(ВзаиморасчетыОстаткиИОбороты.СуммаНачальныйОстаток,0) КАК СуммаНачальныйОстаток, | ЕстьNull(ВзаиморасчетыОстаткиИОбороты.СуммаПриход,0) КАК СуммаПриход, | ЕстьNull(ВзаиморасчетыОстаткиИОбороты.СуммаРасход,0) КАК СуммаРасход, | ЕстьNull(ВзаиморасчетыОстаткиИОбороты.СуммаКонечныйОстаток,0) КАК СуммаКонечныйОстаток, | ВзаиморасчетыОстаткиИОбороты.Регистратор КАК Документ |ИЗ | РегистрНакопления.Взаиморасчеты.ОстаткиИОбороты(&Дата1, &Дата2, Авто, , ) КАК ВзаиморасчетыОстаткиИОбороты |ГДЕ | ВзаиморасчетыОстаткиИОбороты.Контрагент В(&Контрагент) И | ВзаиморасчетыОстаткиИОбороты.Регистратор.ПометкаУдаления = &ПометкаУдаления |ИТОГИ | СУММА(СуммаНачальныйОстаток), | СУММА(СуммаПриход), | СУММА(СуммаРасход), | СУММА(СуммаКонечныйОстаток) |ПО | ВидВзаиморасчетов, | Контрагент, | Документ"; Запрос.УстановитьПараметр("Контрагент",СписокКонтрагентовСПериодическимиВыплатами); Запрос.УстановитьПараметр("Дата1",НачалоМесяца(Дата)); Запрос.УстановитьПараметр("Дата2",КонецДня(Дата)); Запрос.УстановитьПараметр("ПометкаУдаления",Ложь); Как бы сделать так, чтобы в результате запроса были и те контрагенты из списка, по которым не было движений за месяц? |
|||
1
Molinor
12.08.14
✎
14:40
|
К справочнику контрагентов левым соединением то, что есть.
|
|||
2
Господин ПЖ
12.08.14
✎
14:41
|
левое соедниние в временной таблицей
>ЕстьNull( это откуда сейчас возьмется? |
|||
3
ogion83
12.08.14
✎
14:50
|
Что то не выходит
|
|||
4
salvator
12.08.14
✎
14:51
|
(3) Покажи запрос
|
|||
5
ogion83
12.08.14
✎
14:52
|
Запрос.Текст =
"ВЫБРАТЬ | ВзаиморасчетыОстаткиИОбороты.Контрагент КАК Контрагент, | ВзаиморасчетыОстаткиИОбороты.ВидВзаиморасчетов КАК ВидВзаиморасчетов, | ВзаиморасчетыОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток, | ВзаиморасчетыОстаткиИОбороты.СуммаПриход КАК СуммаПриход, | ВзаиморасчетыОстаткиИОбороты.СуммаРасход КАК СуммаРасход, | ВзаиморасчетыОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток, | ВзаиморасчетыОстаткиИОбороты.Регистратор КАК Документ |ИЗ | РегистрНакопления.Взаиморасчеты.ОстаткиИОбороты(&Дата1, &Дата2, Авто, , ) КАК ВзаиморасчетыОстаткиИОбороты | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты | ПО ВзаиморасчетыОстаткиИОбороты.Контрагент = Контрагенты.Ссылка |ГДЕ | ВзаиморасчетыОстаткиИОбороты.Контрагент В(&Контрагент) | И ВзаиморасчетыОстаткиИОбороты.Регистратор.ПометкаУдаления = &ПометкаУдаления |ИТОГИ | СУММА(СуммаНачальныйОстаток), | СУММА(СуммаПриход), | СУММА(СуммаРасход), | СУММА(СуммаКонечныйОстаток) |ПО | ВидВзаиморасчетов, | Контрагент, | Документ"; Запрос.УстановитьПараметр("Контрагент",СписокКонтрагентовСПериодическимиВыплатами); Запрос.УстановитьПараметр("Дата1",НачалоМесяца(Дата)); Запрос.УстановитьПараметр("Дата2",КонецДня(Дата)); Запрос.УстановитьПараметр("ПометкаУдаления",Ложь); |
|||
6
Господин ПЖ
12.08.14
✎
14:53
|
>Что то не выходит
как я вас понимаю... |
|||
7
salvator
12.08.14
✎
14:53
|
(5) Надо наоборот к справочнику цеплять левым соединением регистр. Или просто заменить на правое в своем запросе.
|
|||
8
Господин ПЖ
12.08.14
✎
14:53
|
накуа тебе весь справочник если уже список есть
|
|||
9
AlexITGround
12.08.14
✎
15:07
|
1. Убери соединение вообще.
2. И ВзаиморасчетыОстаткиИОбороты.Регистратор.ПометкаУдаления = &ПометкаУдаления Запрос.УстановитьПараметр("ПометкаУдаления",Ложь); - вот это можно просто И Не ВзаиморасчетыОстаткиИОбороты.Регистратор.ПометкаУдаления |
|||
10
Fragster
гуру
12.08.14
✎
15:16
|
в конструкторе галку "все" поставить около контрагентов а не около взаиморасчетов
|
|||
11
beer_fan
12.08.14
✎
15:16
|
(9) Классно сказал - убрать соединение... это чтобы запрос систему гарантированно убил, если контрагентов много?
|
|||
12
AlexITGround
12.08.14
✎
15:19
|
(11) ВзаиморасчетыОстаткиИОбороты.Контрагент В(&Контрагент)
а это зачем, как ты думаешь? |
|||
13
AlexITGround
12.08.14
✎
15:21
|
зачем тут соединение к справочнику я вообще неврублевский
|
|||
14
beer_fan
12.08.14
✎
15:23
|
(13) А если в СписокКонтрагентовСПериодическимиВыплатами не будет движений по какому-то контрагенту, а видеть его надо?
Только тогда надо это ограничение к справочнику контрагентов применять, а не к виртуальной таблице. |
|||
15
Fram
12.08.14
✎
15:24
|
(13) "... те контрагенты из списка, по которым не было движений ..." из (0)
|
|||
16
AlexITGround
12.08.14
✎
15:41
|
(14),(15) круто рассуждаете, у меня , например, 90к контрагентов, а у ТС возможно и того больше, так целый справочник за каких пять лет соединять?
|
|||
17
Fram
12.08.14
✎
15:45
|
(16) да хоть 100500. не телепат, ответил в рамках вопроса
|
|||
18
salvator
12.08.14
✎
15:46
|
(16) Зачем весь справочник, если нужно только то, что лежит в &Контрагенты?
|
|||
19
AlexITGround
12.08.14
✎
15:49
|
(18) совершенно верно, см 9, 12.
|
|||
20
ogion83
12.08.14
✎
16:45
|
Что то (10) не нахожу
|
|||
21
ogion83
12.08.14
✎
16:51
|
Запрос.Текст =
"ВЫБРАТЬ | ВзаиморасчетыОстаткиИОбороты.Контрагент КАК Контрагент, | ВзаиморасчетыОстаткиИОбороты.ВидВзаиморасчетов КАК ВидВзаиморасчетов, | ВзаиморасчетыОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток, | ВзаиморасчетыОстаткиИОбороты.СуммаПриход КАК СуммаПриход, | ВзаиморасчетыОстаткиИОбороты.СуммаРасход КАК СуммаРасход, | ВзаиморасчетыОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток, | ВзаиморасчетыОстаткиИОбороты.Регистратор КАК Документ |ИЗ | РегистрНакопления.Взаиморасчеты.ОстаткиИОбороты(&Дата1, &Дата2, Авто, , ) КАК ВзаиморасчетыОстаткиИОбороты |ГДЕ | ВзаиморасчетыОстаткиИОбороты.Контрагент В(&Контрагент) | И ВзаиморасчетыОстаткиИОбороты.Регистратор.ПометкаУдаления = &ПометкаУдаления |ИТОГИ | СУММА(СуммаНачальныйОстаток), | СУММА(СуммаПриход), | СУММА(СуммаРасход), | СУММА(СуммаКонечныйОстаток) |ПО | ВидВзаиморасчетов, | Контрагент, | Документ"; Запрос.УстановитьПараметр("Контрагент",СписокКонтрагентовСПериодическимиВыплатами); Запрос.УстановитьПараметр("Дата1",НачалоМесяца(Дата)); Запрос.УстановитьПараметр("Дата2",КонецДня(Дата)); Запрос.УстановитьПараметр("ПометкаУдаления",Ложь); Нет ничего такого чтоб в конструкторе может указать? |
|||
22
RomanYS
12.08.14
✎
16:53
|
смотри (1)
|
|||
23
SSSSS_AAAAA
12.08.14
✎
16:54
|
(21) Это надо выбирать ВСЕХ контрагентов и уже к ним цеплять обороты из регистра.
|
|||
24
ogion83
12.08.14
✎
16:55
|
(23) Попробую, если получится.
|
|||
25
AlexITGround
12.08.14
✎
17:59
|
(24) ты скажи, тебе в выборке все контрагенты нужны или только те, по которым есть остаток, было движение?
|
|||
26
ogion83
13.08.14
✎
08:16
|
(25) Нужны все контрагенты, которые есть в списке.
|
|||
27
ogion83
13.08.14
✎
09:18
|
Может как то так?
"ВЫБРАТЬ | ВзаиморасчетыОстаткиИОбороты.Контрагент КАК Контрагент, | ВзаиморасчетыОстаткиИОбороты.ВидВзаиморасчетов КАК ВидВзаиморасчетов, | ВзаиморасчетыОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток, | ВзаиморасчетыОстаткиИОбороты.СуммаПриход КАК СуммаПриход, | ВзаиморасчетыОстаткиИОбороты.СуммаРасход КАК СуммаРасход, | ВзаиморасчетыОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток, | ВзаиморасчетыОстаткиИОбороты.Регистратор КАК Документ |ИЗ | Справочник.Контрагенты КАК Контрагенты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Взаиморасчеты.ОстаткиИОбороты(&Дата1, &Дата2, Авто, ДвиженияИГраницыПериода, ) КАК ВзаиморасчетыОстаткиИОбороты | ПО (ВзаиморасчетыОстаткиИОбороты.Контрагент = Контрагенты.Ссылка) |ГДЕ | ВзаиморасчетыОстаткиИОбороты.Регистратор.ПометкаУдаления = &ПометкаУдаления | И Контрагенты.Ссылка В(&Контрагент) |ИТОГИ | СУММА(СуммаНачальныйОстаток), | СУММА(СуммаПриход), | СУММА(СуммаРасход), | СУММА(СуммаКонечныйОстаток) |ПО | ВидВзаиморасчетов, | Контрагент, | Документ"; Но не выходит... |
|||
28
AlexITGround
13.08.14
✎
09:31
|
У меня УПП, немножко другая структура, делай по аналогии
code ВЫБРАТЬ Контрагенты.Ссылка, ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток КАК СуммаНачальныйОстаток, ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовПриход КАК СуммаПриход, ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК СуммаРасход, ВзаиморасчетыОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток КАК СуммаКонечныйОстаток, ВзаиморасчетыОстаткиИОбороты.Регистратор КАК Документ ИЗ Справочник.Контрагенты КАК Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&Дата1, &Дата2, Авто, , Контрагент В (&Контрагент)) КАК ВзаиморасчетыОстаткиИОбороты ПО Контрагенты.Ссылка = ВзаиморасчетыОстаткиИОбороты.Контрагент И НЕ ВзаиморасчетыОстаткиИОбороты.Регистратор.ПометкаУдаления ИТОГИ СУММА(СуммаНачальныйОстаток), СУММА(СуммаПриход), СУММА(СуммаРасход), СУММА(СуммаКонечныйОстаток) ПО Документ |
|||
29
bolobol
13.08.14
✎
09:32
|
Помеченный на удаление регистратор??
|
|||
30
AlexITGround
13.08.14
✎
09:34
|
(29) сорри, строку убрать, это копчик :)
|
|||
31
bolobol
13.08.14
✎
09:34
|
И из справочника ничего не выбрано
|
|||
32
AlexITGround
13.08.14
✎
09:35
|
(31) Контрагенты.Ссылка
|
|||
33
bolobol
13.08.14
✎
09:36
|
(30) да я про (27) пишу, это там равнение параметру - истину залал и нет результата, как вариант
|
|||
34
AlexITGround
13.08.14
✎
09:37
|
(33) абсолютно согласен с тобой, поэтому и выборка пустая
|
|||
35
hhhh
13.08.14
✎
09:48
|
(28)
|ГДЕ | ЕСТЬNULL(ВзаиморасчетыОстаткиИОбороты.Регистратор.ПометкаУдаления, ЛОЖЬ) = &ПометкаУдаления | И Контрагенты.Ссылка В(&Контрагент) |
|||
36
ogion83
13.08.14
✎
09:58
|
Пробовать (28)?
|
|||
37
hhhh
13.08.14
✎
10:02
|
(36) а, та вы еще не пробовали? НУ вот этот бред выниньте сначала
ВзаиморасчетыОстаткиИОбороты.Регистратор.ПометкаУдаления = &ПометкаУдаления |
|||
38
AlexITGround
13.08.14
✎
10:03
|
(36) пробуй 28, выкинь строку
И НЕ ВзаиморасчетыОстаткиИОбороты.Регистратор.ПометкаУдаления |
|||
39
AlexITGround
13.08.14
✎
10:04
|
(35) а вот это все не надо, читай с самого начала
|
|||
40
ogion83
13.08.14
✎
10:18
|
"ВЫБРАТЬ
| Контрагент.Ссылка КАК Контрагент, | ВзаиморасчетыОстаткиИОбороты.ВидВзаиморасчетов КАК ВидВзаиморасчетов, | ВзаиморасчетыОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток, | ВзаиморасчетыОстаткиИОбороты.СуммаПриход КАК СуммаПриход, | ВзаиморасчетыОстаткиИОбороты.СуммаРасход КАК СуммаРасход, | ВзаиморасчетыОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток, | ВзаиморасчетыОстаткиИОбороты.Регистратор КАК Документ |ИЗ | Справочник.Контрагенты КАК Контрагенты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Взаиморасчеты.ОстаткиИОбороты(&Дата1, &Дата2, Авто, , Контрагент В (&Контрагент)) КАК ВзаиморасчетыОстаткиИОбороты | ПО Контрагенты.Ссылка = ВзаиморасчетыОстаткиИОбороты.Контрагент |ИТОГИ | СУММА(СуммаНачальныйОстаток), | СУММА(СуммаПриход), | СУММА(СуммаРасход), | СУММА(СуммаКонечныйОстаток) |ПО | ВидВзаиморасчетов, | Контрагент, | Документ"; Загнал результат в ТЗ, там пусто. |
|||
41
ogion83
13.08.14
✎
10:26
|
Что то не идет.
|
|||
42
ogion83
13.08.14
✎
10:29
|
Хотя нет, получился список из кучи пустых строк, а в конце данные по контрагенту по которому были движения.
|
|||
43
salvator
13.08.14
✎
10:34
|
(40)
| Контрагент.Ссылка КАК Контрагент, ... | Справочник.Контрагенты КАК Контрагенты И ты хочешь сказать, что ошибки не выдает запрос? |
|||
44
ogion83
13.08.14
✎
10:36
|
(43) Нет ошибок
|
|||
45
ogion83
13.08.14
✎
10:36
|
Но это Контрагент.Ссылка КАК Контрагент, я поменял на Контрагент.Ссылка
|
|||
46
ogion83
13.08.14
✎
10:36
|
Так и так без ошибок но результат не тот
|
|||
47
Molinor
13.08.14
✎
10:38
|
(45)
ы |
|||
48
ogion83
13.08.14
✎
10:39
|
Точно, поправил, но выдал все контрагенты, а не только те что входят в список
|
|||
49
hhhh
13.08.14
✎
10:40
|
(48) ну включи мзг, добавь
|ГДЕ | Контрагенты.Ссылка В(&Контрагент) у тебя же было это зачем выбросил? |
|||
50
Molinor
13.08.14
✎
10:40
|
(48)
Думать совсем не хотим? |
|||
51
ogion83
13.08.14
✎
10:41
|
А условие в этой строке (&Дата1, &Дата2, Авто, , Контрагент В (&Контрагент)) КАК ВзаиморасчетыОстаткиИОбороты не работает чтоли?
|
|||
52
ogion83
13.08.14
✎
10:41
|
Контрагент В (&Контрагент)
|
|||
53
Molinor
13.08.14
✎
10:42
|
Работает условие, но только на виртуальную таблицу.
|
|||
54
Sorm
13.08.14
✎
10:44
|
(0) Условие ПО РЕГИСТРАТОРУ для контрагентов, по которым НЕ БЫЛО движений?:) Нет ли здесь трудноуловимого противоречия?:)
|
|||
55
hhhh
13.08.14
✎
10:46
|
(52) ты целиком справочник берешь. и регистр с условием. И соединяешь.
|
|||
56
salvator
13.08.14
✎
10:48
|
(48) Убери условие на список контрагентов из виртуальной таблицы и наложи его на справочник в секции ГДЕ
|
|||
57
ogion83
13.08.14
✎
10:49
|
Во рабочий вариант, благодарствую.
Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка, | ВзаиморасчетыОстаткиИОбороты.ВидВзаиморасчетов КАК ВидВзаиморасчетов, | ВзаиморасчетыОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток, | ВзаиморасчетыОстаткиИОбороты.СуммаПриход КАК СуммаПриход, | ВзаиморасчетыОстаткиИОбороты.СуммаРасход КАК СуммаРасход, | ВзаиморасчетыОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток, | ВзаиморасчетыОстаткиИОбороты.Регистратор КАК Документ |ИЗ | Справочник.Контрагенты КАК Контрагенты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Взаиморасчеты.ОстаткиИОбороты(&Дата1, &Дата2, Авто, , Контрагент В (&Контрагент)) КАК ВзаиморасчетыОстаткиИОбороты | ПО Контрагенты.Ссылка = ВзаиморасчетыОстаткиИОбороты.Контрагент |ГДЕ | Контрагенты.Ссылка В (&Контрагент) |ИТОГИ | СУММА(СуммаНачальныйОстаток), | СУММА(СуммаПриход), | СУММА(СуммаРасход), | СУММА(СуммаКонечныйОстаток) |ПО | ВидВзаиморасчетов, | Контрагент, | Документ"; Запрос.УстановитьПараметр("Контрагент",СписокКонтрагентовСПериодическимиВыплатами); Запрос.УстановитьПараметр("Дата1",НачалоМесяца(Дата)); Запрос.УстановитьПараметр("Дата2",КонецДня(Дата)); |
|||
58
hhhh
13.08.14
✎
10:49
|
(56) нет. в виртуальной таблице тоже нужно. Не учи плохому.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |