Имя: Пароль:
1C
1С v8
v8: Ошибка в запросе с предложениями РАЗЛИЧНЫЕ и ОБЪЕДИНИТЬ
0 Aragosha
 
28.01.14
17:55
В СКД сделал запрос с вложенными завпросами. Все нормально отображается. При использовании данного запроса программно выдает ошибку "В запросе с предложениями РАЗЛИЧНЫЕ и ОБЪЕДИНИТЬ нельзя использовать вложенные таблицы"

ВЫБРАТЬ РАЗЛИЧНЫЕ
НАЧАЛОПЕРИОДА(ЗаказНаряд.Дата, ДЕНЬ) КАК Дата,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказНаряд.Номер) КАК Номер,
СУММА(ВложенныйЗапрос.ВсегоНчасыФакт) КАК ВсегоНчасыФакт
ИЗ
(ВЫБРАТЬ
ЗаказНарядУслуги.Ссылка КАК Ссылка,
ЗаказНарядУслуги.ВсегоНчасыФакт КАК ВсегоНчасыФакт
ИЗ
Документ.ЗаказНаряд.Услуги КАК ЗаказНарядУслуги) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаряд КАК ЗаказНаряд
ПО ВложенныйЗапрос.Ссылка = ЗаказНаряд.Ссылка

СГРУППИРОВАТЬ ПО
НАЧАЛОПЕРИОДА(ЗаказНаряд.Дата, ДЕНЬ)

Пробовал разбить запрос на три подзапроса:

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

но ошибка осталась.
1 vicof
 
28.01.14
18:09
(0) Нужно проверить руки
2 PR
 
28.01.14
18:16
(0) У меня работает и первый вариант. Талончик на выпрямление рук? :))
3 Жан Пердежон
 
28.01.14
18:18
(2) дорого?
4 Aragosha
 
28.01.14
18:22
В СКД и у меня работает.
5 PR
 
28.01.14
18:26
(3) Лучшее всегда дорого :))
6 RomanFire
 
28.01.14
18:27
попробуй ЗаказНаряд.Номер в группировку внутреннего запроса
7 Aragosha
 
28.01.14
18:35
А смысл мне в группировку внутреннего запроса, да еще по ЗаказНаряд.Номер? Смотри. У меня есть документ ЗаказНаряд, в нем есть несколько таблиц, одна из которых Услуги. Мне нужно, чтобы запрос, как и в случае с запросом из СКД давал Дату (в пределах дня), количество ЗаказНарядов и сумму НормоЧасов, которые в таблице Услуги этого документа.
8 Aragosha
 
28.01.14
18:37
Тут вопрос стоит в том, что в СКД запрос прекрасно работает. А программно - ерунда, ошибка появляется. Получается, что в СКД и в самой 1С - разные парсеры запросов? С какого бодуна?
9 Aragosha
 
28.01.14
19:01
Извините, второй из приведенных запросов - вообще "левый" вот правильно переделанный, но не работающий запрос:
    |    ВЫБРАТЬ
    |        ЗаказНарядУслуги.Ссылка КАК Ссылка,
    |        ЗаказНарядУслуги.ВсегоНчасыФакт КАК ВсегоНчасыФакт
    |   ПОМЕСТИТЬ Твр1
    |    ИЗ
    |        Документ.ЗаказНаряд.Услуги КАК ЗаказНарядУслуги) КАК ВложенныйЗапрос$
    |    
    |    ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    НАЧАЛОПЕРИОДА(ЗаказНаряд.Дата, ДЕНЬ) КАК Дата,
    |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказНаряд.Номер) КАК Номер,
    |    СУММА(Твр1.ВсегоНчасыФакт) КАК ВсегоНчасыФакт
    | ИЗ
    |        Твр1 КАК Твр1
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаряд КАК ЗаказНаряд
    |        ПО Твр1.Ссылка = ЗаказНаряд.Ссылка
    |
    | СГРУППИРОВАТЬ ПО
    |    НАЧАЛОПЕРИОДА(ЗаказНаряд.Дата, ДЕНЬ)";
10 Said_We
 
28.01.14
19:01
(0) Переход с 8.1 на 8.2 почитай. Там тоже про ВЫБРАТЬ РАЗЛИЧНЫЕ и ОБЪЕДИНИТЬ, а так же про КОЛИЧЕСТВО РАЗЛИЧНЫЕ.
Используй другие конструкции.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.