Имя: Пароль:
1C
 
Запрос по документу с выборкой табличной части
, ,
0 rcyakdy
 
01.09.14
11:11
Выбираю документ в запросе, с выборкой табличной части:

    ЗапросЗаказы = Новый Запрос();
    ЗапросЗаказы.Текст = "ВЫБРАТЬ
    |    ЗаказКлиента.Ссылка КАК ЗаказКлиента,
    |    ЗаказКлиента.ФлагБаллы,
    |    ЗаказКлиента.СтатусБаллы,
    |    ЗаказКлиента.Товары.(
    |        СуммаБаллы КАК Сумма
    |    )
    |ИЗ
    |    Документ.ЗаказКлиента КАК ЗаказКлиента
    |ГДЕ
    |    ЗаказКлиента.Дата <= &ДатаОкончания
    |    И ЗаказКлиента.Дата >= &ДатаНачала
    |    И ЗаказКлиента.Статус = &СтатусЗакрыт
    |    И ЗаказКлиента.ФлагБаллы = &ФлагБаллыИстина";
    
    ЗапросЗаказы.УстановитьПараметр("ДатаНачала",Датаначала);
    ЗапросЗаказы.УстановитьПараметр("ДатаОкончания",ДатаОкончания);
    ЗапросЗаказы.УстановитьПараметр("СтатусЗакрыт",Перечисления.СтатусыЗаказовКлиентов.Закрыт);
    ЗапросЗаказы.УстановитьПараметр("ФлагБаллыИстина",Истина);
    РезультатЗаказы = ЗапросЗаказы.Выполнить();
    ВыборкаЗаказы = РезультатЗаказы.Выбрать();
    Пока ВыборкаЗаказы.Следующий() Цикл



Как получить "Сумма". Протсо ВыборкаЗаказы.Сумма дает ошибку
1 Strogg
 
01.09.14
11:12
Все плохо. В запросе надо обращаться непосредственно к ТЧ, коль скоро ты с ней работаешь
2 ДенисЧ
 
01.09.14
11:13
не выбирай из табличной части.
Просто делай запрос к ТЧ.
3 rcyakdy
 
01.09.14
11:16
Как это?
4 rcyakdy
 
01.09.14
11:16
Мне нужен итог по реквизиту ТЧ
5 Dionis Sergeevich
 
01.09.14
11:16
(3) Как у РАдченко
6 Ёпрст
 
01.09.14
11:17
(4) и ?
7 rcyakdy
 
01.09.14
11:17
Напишите, пожалуйста, нет под рукой Радченко
8 ZanderZ
 
01.09.14
11:17
(4)
    |ИЗ
    |    Документ.ЗаказКлиента.Товары КАК ЗаказКлиента
9 ДенисЧ
 
01.09.14
11:18
Not hired. Next please
10 rcyakdy
 
01.09.14
11:20
Так что ли?
    ЗапросЗаказы.Текст = "ВЫБРАТЬ
                         |    ЗаказКлиента.Ссылка КАК ЗаказКлиента,
                         |    ЗаказКлиента.ФлагБаллы,
                         |    ЗаказКлиента.СтатусБаллы,
                         |    ЗаказКлиентаТовары.СуммаБаллы,
                         |    ЗаказКлиентаТовары.Ссылка
                         |ИЗ
                         |    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
                         |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКлиента
                         |        ПО ЗаказКлиентаТовары.Ссылка = ЗаказКлиента.Ссылка
                         |ГДЕ
                         |    ЗаказКлиента.Дата <= &ДатаОкончания
                         |    И ЗаказКлиента.Дата >= &ДатаНачала
                         |    И ЗаказКлиента.Статус = &СтатусЗакрыт
                         |    И ЗаказКлиента.ФлагБаллы = &ФлагБаллыИстина";
11 rcyakdy
 
01.09.14
11:21
А как в выборке полчить итог по СуммаБаллы?
12 Dionis Sergeevich
 
01.09.14
11:22
сгруппируй по  
|    ЗаказКлиента.Ссылка КАК ЗаказКлиента,
|    ЗаказКлиента.ФлагБаллы,
|    ЗаказКлиента.СтатусБаллы
, использай СУММА()
13 palpetrovich
 
01.09.14
11:25
если часто нужен итог "СуммаБаллы" по ТЧ товары почему-бы не хранить его как отдельный реквизит документа?
14 rcyakdy
 
01.09.14
11:25
Как это? напишите подробнее...
15 rcyakdy
 
01.09.14
11:26
Нужна эта сумма один раз, только в этом отчете
16 rcyakdy
 
01.09.14
11:26
(12) можете подробнее написать?
17 Dionis Sergeevich
 
01.09.14
11:28
18 rcyakdy
 
01.09.14
11:38
Сделал запрос, но СуммаБаллы дает по первой строке ТЧ, а мне нужен итог по ТЧ

    ЗапросЗаказы.Текст = "ВЫБРАТЬ
                         |    ЗаказКлиента.Ссылка КАК ЗаказКлиента,
                         |    ЗаказКлиента.ФлагБаллы КАК ФлагБаллы,
                         |    ЗаказКлиента.СтатусБаллы КАК СтатусБаллы,
                         |    ЗаказКлиентаТовары.СуммаБаллы КАК СуммаБаллы,
                         |    ЗаказКлиентаТовары.Ссылка КАК Ссылка
                         |ИЗ
                         |    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
                         |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКлиента
                         |        ПО ЗаказКлиентаТовары.Ссылка = ЗаказКлиента.Ссылка
                         |ГДЕ
                         |    ЗаказКлиента.Дата <= &ДатаОкончания
                         |    И ЗаказКлиента.Дата >= &ДатаНачала
                         |    И ЗаказКлиента.Статус = &СтатусЗакрыт
                         |    И ЗаказКлиента.ФлагБаллы = &ФлагБаллыИстина";
19 Drac0
 
01.09.14
11:41
СУММА(поле)

и СГРУППИРОВАТЬ ПО
20 rcyakdy
 
01.09.14
11:45
Получилось. Так:

    ЗапросЗаказы.Текст = "ВЫБРАТЬ
                         |    ЗаказКлиента.Ссылка КАК ЗаказКлиента,
                         |    ЗаказКлиента.ФлагБаллы КАК ФлагБаллы,
                         |    ЗаказКлиента.СтатусБаллы КАК СтатусБаллы,
                         |    СУММА(ЗаказКлиентаТовары.СуммаБаллы) КАК СуммаБаллы,
                         |    ЗаказКлиентаТовары.Ссылка КАК Ссылка
                         |ИЗ
                         |    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
                         |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКлиента
                         |        ПО ЗаказКлиентаТовары.Ссылка = ЗаказКлиента.Ссылка
                         |ГДЕ
                         |    ЗаказКлиента.Дата <= &ДатаОкончания
                         |    И ЗаказКлиента.Дата >= &ДатаНачала
                         |    И ЗаказКлиента.Статус = &СтатусЗакрыт
                         |    И ЗаказКлиента.ФлагБаллы = &ФлагБаллыИстина
                         |
                         |СГРУППИРОВАТЬ ПО
                         |    ЗаказКлиентаТовары.Ссылка,
                         |    ЗаказКлиента.Ссылка,
                         |    ЗаказКлиента.ФлагБаллы,
                         |    ЗаказКлиента.СтатусБаллы";
21 Dionis Sergeevich
 
01.09.14
11:49
Мне страшно спрашивать что есть "Баллы"
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс