Имя: Пароль:
1C
1С v8
Где ошибка в запросе?
,
0 SherifSP
 
03.01.14
17:59
Запрос работал норм, пока левым соединением не добавил виртуальную таблицу, сейчас ругается на неоднозначное поле "| И (НЕ Номенклатура.ЭтоГруппа)", что не так?

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

2) Не работает
ТекстЗапроса = "ВЫБРАТЬ
        |    Номенклатура КАК Ссылка,
        |    Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
        |    Номенклатура.Наименование КАК Наименование,
        |    ЕСТЬNULL(Номенклатура.Родитель, """") КАК Родитель,
        |    Номенклатура.СтавкаНДС КАК СтавкаНДС,
        |    ЕСТЬNULL(Номенклатура.НоменклатурнаяГруппа, """") КАК НоменклатурнаяГруппа,
        |    ЕСТЬNULL(Номенклатура.БазоваяЕдиницаИзмерения, """") КАК БазоваяЕдиницаИзмерения,
        |    ЕСТЬNULL(Номенклатура.ЕдиницаХраненияОстатков, """") КАК ЕдиницаХраненияОстатков,
        |   Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХРОст,
        |   Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕИ,
        |   Номенклатура.ВидНоменклатуры.ТипНоменклатуры КАК ТипНоменклатуры,
        |   Номенклатура.Родитель КАК РодНом,
        |   Номенклатура.НаименованиеПолное КАК НаимПолное,
        |   Номенклатура.Весовой КАК Весовой,
        |    Номенклатура.ВестиУчетПоХарактеристикам КАК ВестиУчетПоХарактеристикам,
        |    &Склад КАК Склад,
        |    Остаток КАК СвободныйОстаток,
        |    0 КАК Акция,
        |    АкцизныйТовар
        |ИЗ ТоварыПоТорговым
        |ГДЕ (ТорговыйПредставитель = &ТорговыйПредставитель)
        |   И (НЕ Номенклатура.ЭтоГруппа)
        |   И (НЕ Номенклатура.ПометкаУдаления)        
        |ИТОГИ
        |    СУММА(СвободныйОстаток)
        |ПО
        |    Ссылка
        |    Склад
        |";
1 SherifSP
 
03.01.14
18:00
+(0) Второй запрос не такой, вот он:

ТекстЗапроса = "ВЫБРАТЬ
        |    Номенклатура КАК Ссылка,
        |    Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
        |    Номенклатура.Наименование КАК Наименование,
        |    ЕСТЬNULL(Номенклатура.Родитель, """") КАК Родитель,
        |    Номенклатура.СтавкаНДС КАК СтавкаНДС,
        |    ЕСТЬNULL(Номенклатура.НоменклатурнаяГруппа, """") КАК НоменклатурнаяГруппа,
        |    ЕСТЬNULL(Номенклатура.БазоваяЕдиницаИзмерения, """") КАК БазоваяЕдиницаИзмерения,
        |    ЕСТЬNULL(Номенклатура.ЕдиницаХраненияОстатков, """") КАК ЕдиницаХраненияОстатков,
        |   Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХРОст,
        |   Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕИ,
        |   Номенклатура.ВидНоменклатуры.ТипНоменклатуры КАК ТипНоменклатуры,
        |   Номенклатура.Родитель КАК РодНом,
        |   Номенклатура.НаименованиеПолное КАК НаимПолное,
        |   Номенклатура.Весовой КАК Весовой,
        |   Номенклатура.ЕдиницаХраненияОстатков.Объем КАК Литр,
        |   Номенклатура.СодержаниеСпирта КАК СодержаниеСпирта,
        |   Номенклатура.ВидАлкогольнойПродукции КАК ВидАлкогольнойПродукции,
        |    Номенклатура.ВестиУчетПоХарактеристикам КАК ВестиУчетПоХарактеристикам,
        |   ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК Цена,
        |    ВЫБОР
        |        КОГДА ЦеныНоменклатуры.ТипЦены ЕСТЬ NULL
        |            ТОГДА &ТипЦены
        |        ИНАЧЕ ЦеныНоменклатуры.ТипЦены
        |    КОНЕЦ КАК ТипЦены,
        |    &Склад КАК Склад,
        |    Остаток КАК СвободныйОстаток,
        |    0 КАК Акция,
        |    АкцизныйТовар
        |ИЗ
        |   ТоварыПоТорговым КАК ТоварыПоТорговым
        |   ЛЕВОЕ СОЕДИНЕНИЕ ЦеныНоменклатуры КАК ЦеныНоменклатуры
        |   ПО ТоварыПоТорговым.Номенклатура = ЦеныНоменклатуры.Номенклатура
        |ГДЕ (ТорговыйПредставитель = &ТорговыйПредставитель)
        |   И (НЕ Номенклатура.ЭтоГруппа)
        |   И (НЕ Номенклатура.ПометкаУдаления)        
        |ИТОГИ
        |    СУММА(СвободныйОстаток)
        |ПО
        |    Ссылка
        |    Склад
        |";
2 zulu_mix
 
03.01.14
18:03
обзови номенклатуру товаром
3 SherifSP
 
03.01.14
18:12
(3) Полностью всю?
4 zulu_mix
 
03.01.14
18:17
|   И (НЕ ТоварыПоТорговым.Номенклатура.ЭтоГруппа)
        |   И (НЕ ТоварыПоТорговым.Номенклатура.ПометкаУдаления)
5 dangerouscoder
 
03.01.14
18:47
перепиши через пакет запросов..
6 SherifSP
 
03.01.14
18:54
Переделал вот так, но по полям виртуальной таблицы ЦеныНоменклатуры, всегда NULL, посмотрел отдельно 2 таблицы и в первой и во второй есть такая номенклатура, может не правильно соединил?
    
        ТекстЗапроса = "ВЫБРАТЬ
        |    ТоварыПоТорговым.Номенклатура КАК Ссылка,
        |    ТоварыПоТорговым.Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
        |    ТоварыПоТорговым.Номенклатура.Наименование КАК Наименование,
        |    ЕСТЬNULL(ТоварыПоТорговым.Номенклатура.Родитель, """") КАК Родитель,
        |    ТоварыПоТорговым.Номенклатура.СтавкаНДС КАК СтавкаНДС,
        |    ЕСТЬNULL(ТоварыПоТорговым.Номенклатура.НоменклатурнаяГруппа, """") КАК НоменклатурнаяГруппа,
        |    ЕСТЬNULL(ТоварыПоТорговым.Номенклатура.БазоваяЕдиницаИзмерения, """") КАК БазоваяЕдиницаИзмерения,
        |    ЕСТЬNULL(ТоварыПоТорговым.Номенклатура.ЕдиницаХраненияОстатков, """") КАК ЕдиницаХраненияОстатков,
        |   ТоварыПоТорговым.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХРОст,
        |   ТоварыПоТорговым.Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕИ,
        |   ТоварыПоТорговым.Номенклатура.ВидНоменклатуры.ТипНоменклатуры КАК ТипНоменклатуры,
        |   ТоварыПоТорговым.Номенклатура.Родитель КАК РодНом,
        |   ТоварыПоТорговым.Номенклатура.НаименованиеПолное КАК НаимПолное,
        |   ТоварыПоТорговым.Номенклатура.Весовой КАК Весовой,
        |   ТоварыПоТорговым.Номенклатура.ЕдиницаХраненияОстатков.Объем КАК Литр,
        |   ТоварыПоТорговым.Номенклатура.СодержаниеСпирта КАК СодержаниеСпирта,
        |   ТоварыПоТорговым.Номенклатура.ВидАлкогольнойПродукции КАК ВидАлкогольнойПродукции,
        |    ТоварыПоТорговым.Номенклатура.ВестиУчетПоХарактеристикам КАК ВестиУчетПоХарактеристикам,
        |   ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК Цена,
        |    ВЫБОР
        |        КОГДА ЦеныНоменклатуры.ТипЦены ЕСТЬ NULL
        |            ТОГДА &ТипЦены
        |        ИНАЧЕ ЦеныНоменклатуры.ТипЦены
        |    КОНЕЦ КАК ТипЦены,
        |    &Склад КАК Склад,
        |    ТоварыПоТорговым.Остаток КАК СвободныйОстаток,
        |    0 КАК Акция,
        |    ТоварыПоТорговым.АкцизныйТовар
        |ИЗ
        |   ТоварыПоТорговым КАК ТоварыПоТорговым
        |   ЛЕВОЕ СОЕДИНЕНИЕ ЦеныНоменклатуры КАК ЦеныНоменклатуры
        |   ПО ТоварыПоТорговым.Номенклатура = ЦеныНоменклатуры.Номенклатура
        |ГДЕ (ТорговыйПредставитель = &ТорговыйПредставитель)
        |   И (НЕ ТоварыПоТорговым.Номенклатура.ЭтоГруппа)
        |   И (НЕ ТоварыПоТорговым.Номенклатура.ПометкаУдаления)        
        |ИТОГИ
        |    СУММА(СвободныйОстаток)
        |ПО
        |    Ссылка
        |    Склад
        |";
7 gornovrom
 
03.01.14
18:55
(1) у тебя теперь свободный остаток умножится на количество раз когда цену устанавливали на товар
8 zulu_mix
 
03.01.14
18:56
>>ЛЕВОЕ СОЕДИНЕНИЕ ЦеныНоменклатуры
эт че, ВТ?
9 gornovrom
 
03.01.14
18:59
(8) похоже
10 SherifSP
 
03.01.14
18:59
(8) Да
11 gornovrom
 
03.01.14
18:59
а нигде в менеджеревременныхтаблиц нет таблицы "Номенклатура"?
12 ИсчадиеADO
 
03.01.14
19:01
1ый тоже не работает, или приведен криво. Например непонятно, где табюНоменклатура и что есть Остаток
13 SherifSP
 
03.01.14
19:02
(11) Нету
14 zulu_mix
 
03.01.14
19:02
чет мой оракул ванговать отказывается. возможно таблицы кривые
15 ИсчадиеADO
 
03.01.14
19:03
(0) берешь, встаешь курсором в текст запроса, нажимаешь тект- констрктор запроса. У тебя он заругается
16 ИсчадиеADO
 
03.01.14
19:04
(14) или там где-то подмена текста запроса, чего ТС не заметил?
17 gornovrom
 
03.01.14
19:04
(6) Соединение правильное, только с учетом (7). Если всегда NULL - может таблицане заполняется всетаки?
18 zulu_mix
 
03.01.14
19:06
меня вот этот шматок сала смущает. мозг отказывается понимать нафига ТС два типа в одной колонке?

        |    ЕСТЬNULL(Номенклатура.НоменклатурнаяГруппа, """") КАК НоменклатурнаяГруппа,
        |    ЕСТЬNULL(Номенклатура.БазоваяЕдиницаИзмерения, """") КАК БазоваяЕдиницаИзмерения,
        |    ЕСТЬNULL(Номенклатура.ЕдиницаХраненияОстатков, """") КАК ЕдиницаХраненияОстатков,
19 GANR
 
03.01.14
19:23
(0) Поле Номенклатура присутствует в обеих таблицах, а в секции ГДЕ к нему идет обращение без указания таблицы.

|ГДЕ (ТорговыйПредставитель = &ТорговыйПредставитель)
        |   И (НЕ Номенклатура.ЭтоГруппа)
        |   И (НЕ Номенклатура.ПометкаУдаления)

Как ЭВМ узнает, что подразумевается под "Номенклатура"?
20 SherifSP
 
03.01.14
19:25
(17) Заполняется
21 hhhh
 
03.01.14
19:26
(19)+ и еще

ГДЕ (ТорговыйПредставитель = &ТорговыйПредставитель)
22 SherifSP
 
03.01.14
19:27
(21)

ВЫБРАТЬ
    ТоварыПоТорговым.Номенклатура КАК Ссылка,
    ТоварыПоТорговым.Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
    ТоварыПоТорговым.Номенклатура.Наименование КАК Наименование,
    ЕСТЬNULL(ТоварыПоТорговым.Номенклатура.Родитель, "") КАК Родитель,
    ТоварыПоТорговым.Номенклатура.СтавкаНДС КАК СтавкаНДС,
    ЕСТЬNULL(ТоварыПоТорговым.Номенклатура.НоменклатурнаяГруппа, "") КАК НоменклатурнаяГруппа,
    ЕСТЬNULL(ТоварыПоТорговым.Номенклатура.БазоваяЕдиницаИзмерения, "") КАК БазоваяЕдиницаИзмерения,
    ЕСТЬNULL(ТоварыПоТорговым.Номенклатура.ЕдиницаХраненияОстатков, "") КАК ЕдиницаХраненияОстатков,
    ТоварыПоТорговым.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХРОст,
    ТоварыПоТорговым.Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕИ,
    ТоварыПоТорговым.Номенклатура.ВидНоменклатуры.ТипНоменклатуры КАК ТипНоменклатуры,
    ТоварыПоТорговым.Номенклатура.Родитель КАК РодНом,
    ТоварыПоТорговым.Номенклатура.НаименованиеПолное КАК НаимПолное,
    ТоварыПоТорговым.Номенклатура.Весовой КАК Весовой,
    ТоварыПоТорговым.Номенклатура.ЕдиницаХраненияОстатков.Объем КАК Литр,
    ТоварыПоТорговым.Номенклатура.СодержаниеСпирта КАК СодержаниеСпирта,
    ТоварыПоТорговым.Номенклатура.ВидАлкогольнойПродукции КАК ВидАлкогольнойПродукции,
    ТоварыПоТорговым.Номенклатура.ВестиУчетПоХарактеристикам КАК ВестиУчетПоХарактеристикам,
    ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК Цена,
    ВЫБОР
        КОГДА ЦеныНоменклатуры.ТипЦены ЕСТЬ NULL
            ТОГДА &ТипЦены
        ИНАЧЕ ЦеныНоменклатуры.ТипЦены
    КОНЕЦ КАК ТипЦены,
    &Склад КАК Склад,
    ТоварыПоТорговым.Остаток КАК СвободныйОстаток,
    0 КАК Акция,
    ТоварыПоТорговым.АкцизныйТовар
ИЗ
    ТоварыПоТорговым КАК ТоварыПоТорговым
        ЛЕВОЕ СОЕДИНЕНИЕ ЦеныНоменклатуры КАК ЦеныНоменклатуры
        ПО ТоварыПоТорговым.Номенклатура = ЦеныНоменклатуры.Номенклатура
ГДЕ
    ТоварыПоТорговым.ТорговыйПредставитель = &ТорговыйПредставитель
    И (НЕ ТоварыПоТорговым.Номенклатура.ЭтоГруппа)
    И (НЕ ТоварыПоТорговым.Номенклатура.ПометкаУдаления)
ИТОГИ
    СУММА(СвободныйОстаток)
ПО
    Ссылка КАК Склад

Вот этот актуальный запрос, в конструктор заходит норм
23 SherifSP
 
03.01.14
19:28
+(22) Но все равно ЦеныНоменклатуры мне возвращают по всем полям Null, а в первой все нормально
24 ИсчадиеADO
 
03.01.14
19:31
(23) "ЦеныНоменклатуры мне возвращают по всем полям Null" - в итогах, а не детальных записях
25 hhhh
 
03.01.14
19:35
(23) а почему

ВЫБРАТЬ
    ТоварыПоТорговым.Номенклатура КАК Ссылка,

а внизу

ПО
    Ссылка КАК Склад
??
26 SherifSP
 
03.01.14
19:38
(24) Если выгрузить запрос, то в подчиненных строках все есть, но когда Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам) то ничего нету в выборке, как можно выбрать подчиненные строки?
27 ИсчадиеADO
 
03.01.14
19:44
(26) Выборка1 = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Выборка1.Следующий() Цикл
Выборка2 = Выборка1.Выбрать();
КонецЦикла;

и ответь на (25), что-то ты поля путаешь
28 SherifSP
 
03.01.14
19:49
(27) Не мой запрос, не могу знать, то псевдоним группировки
29 SherifSP
 
03.01.14
19:52
А что быстрее отработает, функция Найти() или перебор циклом? Строк будит не больше 5
30 hhhh
 
03.01.14
20:52
найти ищет внутри строки, вообще-то.
31 Sorm
 
03.01.14
22:12
(0) Ну пишет же - неоднозначное поле! Псевдонимами у таблиц уже стоит пользоваться.