Имя: Пароль:
1C
1С v8
Запрос по регистру
0 Chum
 
07.08.13
09:30
Коллеги, вопрос простой, но сам не додумался.
Есть запрос (подсмотрел в отчете)

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

Отрабатывает, выдает таблицу, где несколько строк с группировками:

Оплачено    Запланировано    Заказ    ЗаказДоговорКонтрагента
    130        
    130    Заказ поставщику РХМ00000782 от 29.07.2013 8:56:47    
    130    Заказ поставщику РХМ00000782 от 29.07.2013 8:56:47    Общий договор поставки
        Заказ поставщику РХМ00000782 от 29.07.2013 8:56:47    Общий договор поставки


Как сделать чтобы результатом была одна строка:
    130    Заказ поставщику РХМ00000782 от 29.07.2013 8:56:47    Общий договор поставки
1 Chum
 
07.08.13
09:33
|"; - это сюда попало случайно

Задача: получить сумму по заказу с учетом корректировок, которая отражается в указанном регистре, а также сумму фактической оплаты, которая также отражается в регистре.
2 Chum
 
07.08.13
09:34
И да - это УПП, пытаюсь получить данные для документа Заказ поставщику.
3 Maxus43
 
07.08.13
09:38
Сгруппируй по договору конечно
4 Chum
 
07.08.13
09:45
(3) т.к. договор 1, а заказов может быть пачка и итоги нужны по заказу.

В 7-ке при похожей картине достаточно было дописать Без Групп и все работало, как это сделать в 8-ке?
5 КонецЕсли
 
07.08.13
09:45
|    Сумма(РасчетыСКонтрагентами.СуммаВзаиморасчетовПриход) КАК Оплачено,
    |    Сумма(РасчетыСКонтрагентами.СуммаВзаиморасчетовРасход) КАК Запланировано,
    |    РасчетыСКонтрагентами.Сделка КАК Заказ,
    |    РасчетыСКонтрагентами.ДоговорКонтрагента КАК ЗаказДоговорКонтрагента
.
.
.
Сгруппировать по
РасчетыСКонтрагентами.Сделка,
РасчетыСКонтрагентами.ДоговорКонтрагента


Итоги выкинуть

з.ы.
чёт не понял: там в некоторых записях нет договора?
6 Chum
 
07.08.13
09:53
(5) не взлетело
{(2, 2)}: Поле не входит в группу "РасчетыСКонтрагентами.СуммаВзаиморасчетовПриход"
<<?>>РасчетыСКонтрагентами.СуммаВзаиморасчетовПриход КАК Оплачено,

В самом регистре две строки (движение документа "Заказ" и документа "корректировка заказа"), где все реквизиты заполнены.
Результат первоначального запроса похож на группировку по всем колонкам.
7 Ненавижу 1С
 
гуру
07.08.13
09:54
это из-за итогов
8 Chum
 
07.08.13
09:57
(7) убрал итоги, в результате две строки, в первой сумма есть, во второй нет.
9 КонецЕсли
 
07.08.13
10:18
(6) Сумма(РасчетыСКонтрагентами.СуммаВзаиморасчетовПриход) КАК Оплачено
см (5) внимательно
10 Starhan
 
07.08.13
10:24
(8) ну естественно вот ты добавляешь вторую строку без суммы

|   ОБЪЕДИНИТЬ ВСЕ
|    ВЫБРАТЬ 0,0,&Заказ,&ДоговорКонтрагента
|    )
11 Chum
 
07.08.13
10:32
Вроде получилось:

    Запрос.Текст=
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    РасчетыСКонтрагентами.СуммаВзаиморасчетовПриход КАК Оплачено,
        |    РасчетыСКонтрагентами.СуммаВзаиморасчетовРасход КАК Запланировано,
        |    РасчетыСКонтрагентами.Сделка КАК Заказ,
        |    РасчетыСКонтрагентами.ДоговорКонтрагента КАК ЗаказДоговорКонтрагента
        |ИЗ (
        |    ВЫБРАТЬ СуммаВзаиморасчетовПриход, СуммаВзаиморасчетовРасход, Сделка, ДоговорКонтрагента
        |    ИЗ
        |        РегистрНакопления.РасчетыСКонтрагентами.Обороты(, &ДатаАнализа, , ) КАК РасчетыСКонтрагентами
        //|   ОБЪЕДИНИТЬ ВСЕ
        //|    ВЫБРАТЬ 0,0,&Заказ,&ДоговорКонтрагента
        |    ) КАК РасчетыСКонтрагентами
        |Где РасчетыСКонтрагентами.ДоговорКонтрагента = &ДоговорКонтрагента
        |и РасчетыСКонтрагентами.Сделка = &Заказ
        |
        |";
12 cw014
 
07.08.13
10:34
Итоги убери
13 Chum
 
07.08.13
10:35
Запросом в (0) получается выборка с группировками для дальнейшего обхода этих группировок. используется, например, при построении отчетов (таб док) с автогруппировками.

если нужна просто свернутая таблица, тогда сойдет (11).

Всем спасибо, разобрался.
14 Chum
 
07.08.13
10:37
Даже проще:

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