Имя: Пароль:
1C
1С v8
Количество в запросе удваивается...
0 Босечка
 
09.01.18
11:02
Такая проблемка. Надо сделать запрос по номенклатуре конкретного документа. Почему-то количество умножается на 2. В отчете Товары на складах в 2 раза меньше.

    Запрос.Текст=    
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    ОстаткиТоваровКомпании.Номенклатура КАК Номенклатура,
    |    СУММА(ОстаткиТоваровКомпании.КоличествоОстаток) КАК КоличествоОстаток,
    |    ЗаказПокупателяТовары.Ссылка КАК Заказ
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаАнализа, ) КАК ОстаткиТоваровКомпании
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
    |        ПО ОстаткиТоваровКомпании.Номенклатура.Ссылка = ЗаказПокупателяТовары.Номенклатура.Ссылка
    |ГДЕ
    |    ОстаткиТоваровКомпании.Склад.Отделение = &Отделение
    |    И ОстаткиТоваровКомпании.Склад.ЭтоМол = ЛОЖЬ
    |    И ЗаказПокупателяТовары.Ссылка.Ссылка = &Заказ
    |
    |СГРУППИРОВАТЬ ПО
    |    ЗаказПокупателяТовары.Ссылка,
    |    ОстаткиТоваровКомпании.Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    |    Номенклатура";
1 chelentano
 
09.01.18
11:15
(0) В заказе две строки с одинаковой номенклатурой
2 arsik
 
гуру
09.01.18
11:17
(0) Ну это совсем надо не знать как работает соединение.
3 mehfk
 
09.01.18
11:19
(0)
    |ГДЕ
    |    И ЗаказПокупателяТовары.Ссылка.Ссылка = &Заказ

А почему не ЗаказПокупателяТовары.Ссылка.Ссылка.Ссылка ?
4 chelentano
 
09.01.18
11:20
(3) и Запрос.УстановитьПараметр("Заказ", Заказ.Ссылка.Ссылка.Ссылка);

:))
5 chelentano
 
09.01.18
11:20
+(3) то же самое касается
"ПО ОстаткиТоваровКомпании.Номенклатура.Ссылка = ЗаказПокупателяТовары.Номенклатура.Ссылка"
6 mehfk
 
09.01.18
11:21
(4) Ну это естественно :)
7 ИТ директор
 
09.01.18
11:25
Запрос адская жесть
8 Ненавижу 1С
 
гуру
09.01.18
11:26
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаАнализа, Номенклатура В (Выбрать Т.Номенклатура из Документ.ЗаказПокупателя.Товары КАК Т где Т.Ссылка=&Заказ)) КАК ОстаткиТоваровКомпании
9 assasu
 
09.01.18
11:45
(0) заказ надо хранить в регистре. и тогда не будет этого педокода
10 Darych
 
09.01.18
11:53
(9) че?
11 SleepyHead
 
гуру
09.01.18
12:51
(10) Теряюсь в догадках. Либо это указание на незрелость кода ("педо-"), либо ориентация кода направлена в нетрадиционную сторону.

Как-то двусмысленно товарищ выразился.
12 Darych
 
09.01.18
12:58
(11) меня больше смутило предложение хранить ссылку на заказ покупателя в регистре.. долго думал
13 SleepyHead
 
гуру
09.01.18
13:12
(12) Возможно, имелось ввиду, что это должно быть измерением, чтобы в разрезе него считать остатки?
14 Darych
 
09.01.18
13:16
(13) это-то понятно, а как ентот регистр закрывать?.. а если фильтр не по заказу покупателя, а по заказу поставщику или вообще по другому доку?.. еще неск измерений? мрак...
15 alxxsssar
 
09.01.18
13:34
Сперва выгрузить табличную часть в ТЗ, свернуть ее по товарам и потом делать запрос к остаткам. Классика же.
16 alxxsssar
 
09.01.18
13:35
+(15) про косяки самого запроса уже ранее народ высказался
17 Borteg
 
09.01.18
13:48
(15) ??зачем? а в запросе это сделать нельзя?
18 Darych
 
09.01.18
13:53
(15) в (8) классика
19 alxxsssar
 
09.01.18
13:58
Можно. Мой вариант просто первым пришел в голову.
20 alxxsssar
 
09.01.18
13:59
(18) Конечно. Просто я не очень люблю вложенные запросы.
21 rs_trade
 
09.01.18
14:00
(20) вы просто не умеете их готовить
22 alxxsssar
 
09.01.18
14:37
(21)  мне удобнее с временными таблицами работать
23 Darych
 
09.01.18
14:48
(22) ну так здесь все просто.. ВТ никчему. Да и ТЗ не есть ВТ, или ты потом ТЗ грузишь в ВТ?)))
24 alxxsssar
 
09.01.18
15:08
(23) гружу
25 alxxsssar
 
09.01.18
15:09
(24) и в запросе соединяю уже с остатками
26 Darych
 
09.01.18
15:16
(24) зачем?))
так не проще, если уж ВТ так хочется?(в рамках запроса из (0)):

"ВЫБРАТЬ РАЗЛИЧНЫЕ
|    ЗаказКлиентаТовары.Номенклатура
|ПОМЕСТИТЬ ВТ_Номенклатура
|ИЗ
|    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
|ГДЕ
|    ЗаказКлиентаТовары.Ссылка = &Ссылка"
27 rs_trade
 
09.01.18
15:16
(22) их надо избегать там где можно обойтись без них. в запросе выше врем. таблицы ни к чему вообще.
28 alxxsssar
 
09.01.18
15:22
(26) не вопрос. Я же выше писал - тот вариант первым в голову пришел.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.