Имя: Пароль:
1C
1С v8
v8: Запрос в 1С 8.2 - один и тот же документ попадает множество раз вместо одного
,
0 men47
 
17.01.13
17:02
Здравствуйте, пишу внешнюю обработку для Дописанной Бухгалтерии. Суть заключается в том, что есть документ, и нужно выбрать те документы, которые не равны определенной группе номенклатуры, для дальнейшего редактирования...

Я составил запрос, и не могу понять, почему он выбирает 90 с чем-то раз один и тот же документ....

Вот запрос

   ЗапросДок = Новый Запрос;
   ЗапросДок.УстановитьПараметр("НачалоПериода", НачалоДня(НачПериод));
   ЗапросДок.УстановитьПараметр("КонецПериода",  КонецДня(КонПериод));
   ЗапросДок.Текст = "ВЫБРАТЬ
                     |    НоменклатурныеГруппы.Ссылка
                     |ПОМЕСТИТЬ НоменклатурынеГруппы
                     |ИЗ
                     |    Справочник.НоменклатурныеГруппы КАК НоменклатурныеГруппы
                     |ГДЕ
                     |    ПОДСТРОКА(НоменклатурныеГруппы.Родитель.Наименование, 1, 15) = ""Растениеводство""
                     |;
                     |
                     |////////////////////////////////////////////////////////////////////////////////
                     |ВЫБРАТЬ
                     |    ИИ_СправкаЗатратПоТраснпорту.Ссылка
                     |ИЗ
                     |    НоменклатурынеГруппы КАК НоменклатурынеГруппы,
                     |    Документ.ИИ_СправкаЗатратПоТраснпорту КАК ИИ_СправкаЗатратПоТраснпорту
                     |ГДЕ
                     |    ИИ_СправкаЗатратПоТраснпорту.Дата МЕЖДУ &НачалоПериода И &КонецПериода
                     |    И ИИ_СправкаЗатратПоТраснпорту.Проведен = ИСТИНА
                     |    И ИИ_СправкаЗатратПоТраснпорту.НоменклатурнаяГруппа <> НоменклатурынеГруппы.Ссылка";
                  ВыборкаДок = ЗапросДок.Выполнить().Выбрать();

Хелп плиз=))
1 GROOVY
 
17.01.13
17:05
За такое:

                     |ИЗ
                     |    НоменклатурынеГруппы КАК НоменклатурынеГруппы,
                     |    Документ.ИИ_СправкаЗатратПоТраснпорту КАК ИИ_СправкаЗатратПоТраснпорту


обычно увольняют.
2 GROOVY
 
17.01.13
17:05
Да, кстати, в этом и причина появления документа 90 раз.
3 men47
 
17.01.13
17:06
(1) а в чем там ошибка
4 х86
 
17.01.13
17:07
(0)в v8 принято таблицы соединять по какому либо условию
5 Maxus43
 
17.01.13
17:07
(3) это кросс джойн
6 Лефмихалыч
 
17.01.13
17:07
(0) это называется декартово произведение. Попробуй пойти учиться куда-нибудь
7 ДенисЧ
 
17.01.13
17:07
(4) Извините, это ограничение платформы?
8 ptiz
 
17.01.13
17:08
(3) В непонимании того, как работают запросы. Срочно читать про СОЕДИНЕНИЕ в языке запросов!
9 х86
 
17.01.13
17:09
(7)а с какой целью интересуетесь?
10 GROOVY
 
17.01.13
17:09
(7) Денис, это здравый смысл.
11 Лефмихалыч
 
17.01.13
17:10
(7) зануда
12 Maxus43
 
17.01.13
17:10
Не, иногда кросс джойн использовать надо, но не в этом случае конечно
13 pessok
 
17.01.13
17:11
(3) глядя на такой код так и хочется вспомнить дезоксирибонуклеиновую, ну да ладно, все такими были, наверное...
14 ДенисЧ
 
17.01.13
17:11
(9) Да вот подыскиваю аргументы о сырости платформы.. Даже кросс-джойны заставляют избегать... Ну ничего по-человечески сделать не могут :-)
15 GROOVY
 
17.01.13
17:12
(12) +1
16 х86
 
17.01.13
17:17
смотрю в типовой чаще используют соединение ПО (ИСТИНА)
17 dsob
 
17.01.13
17:17
(0) Возьми почитай основы SQL, сразу все понятно станет
18 Aleks73
 
17.01.13
17:22
19 hhhh
 
17.01.13
17:34
ну в теме ведь правильно написано: "запос".
20 GROOVY
 
17.01.13
17:40
(3) Не нужно выбирать внутреннюю таблицу, ее нужно в условии использовать.
21 GROOVY
 
17.01.13
17:40
внутреннюю - жесть...

Правильно: временную.