Имя: Пароль:
1C
1С v8
Помогите с запросом 1с8.2 (объединение трех таблиц не получается группировка)
0 Genych76
 
09.11.18
11:46
Помогите отладить запрос с объединением трех таблиц (документ счет на оплату, реализация товаров(документ создан на основе счета на оплату), поступление на расчетный счет (документ создан на основе счета на оплату))- не получается группировка по счету на оплату. Поле комментарий нужно..  

Заранее признателен за ответ.

Ниже привожу текст запроса.

    НовыйЗапрос1 = Новый Запрос;
        НовыйЗапрос1.УстановитьПараметр("НачалоПериода", ЭлементыФормы.НачПериода.Значение);
        НовыйЗапрос1.УстановитьПараметр("КонецПериода", ЭлементыФормы.КонПериода.Значение);
        НовыйЗапрос1.УстановитьПараметр("Контрагент", ЭлементыФормы.Контрагент.Значение);


        НовыйЗапрос1.Текст = "ВЫБРАТЬ
    |    СчетНаОплатуПокупателю.Ссылка,
    |    СчетНаОплатуПокупателю.Номер,
    |    СчетНаОплатуПокупателю.Дата,
    |    СчетНаОплатуПокупателю.Контрагент,
    |    СчетНаОплатуПокупателю.СуммаДокумента,
    |    СчетНаОплатуПокупателю.Комментарий,
    |    СчетНаОплатуПокупателю.ДоговорКонтрагента
    |    ПОМЕСТИТЬ СчетаВТ
    |    ИЗ
    |    Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
    |;
    |    ВЫБРАТЬ
    |    РеализацияТоваровУслуг.Ссылка,
    |    РеализацияТоваровУслуг.Дата,
    |    РеализацияТоваровУслуг.Контрагент,
    |    РеализацияТоваровУслуг.СчетНаОплатуПокупателю,
    |    РеализацияТоваровУслуг.СуммаДокумента,
    |    РеализацияТоваровУслуг.СчетНаОплатуПокупателю.ДоговорКонтрагента,
    |    РеализацияТоваровУслуг.СчетНаОплатуПокупателю.Комментарий
    |    ПОМЕСТИТЬ РеализацииВТ
    |    ИЗ
    |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |    ГДЕ
    |    РеализацияТоваровУслуг.СчетНаОплатуПокупателю В
    |        (ВЫБРАТЬ
    |            А.Ссылка
    |        ИЗ
    |            СчетаВТ КАК А)
    |;
    |      ВЫБРАТЬ
    |    ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа.СуммаВзаиморасчетов,
    |    ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа.Ссылка,
    |    ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа.СчетНаОплату
    |    ПОМЕСТИТЬ ПоступлениеВТ
    |    ИЗ
    |    Документ.ПоступлениеНаРасчетныйСчет.РасшифровкаПлатежа КАК ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа
    |    ГДЕ
    |    ПоступлениеНаРасчетныйСчетРасшифровкаПлатежа.СчетНаОплату В
    |            (ВЫБРАТЬ
    |                б.Ссылка
    |            ИЗ
    |                СчетаВТ КАК б)
    |;
    |    ВЫБРАТЬ
    |    СчетаВТ.Контрагент КАК КонтрагентСчета,
    |    СчетаВТ.Номер КАК НомерСчетаНаОплату,
    |    СчетаВТ.Дата КАК ДатаСчетаНаОплату,
    |    СчетаВТ.СуммаДокумента КАК СуммаСчетаНаОплату,
    |    СчетаВТ.ДоговорКонтрагента КАК Договор1,
    |    СчетаВТ.Комментарий как комментарий1,
    |    РеализацииВТ.Дата КАК ДатаРеализации,
    |    РеализацииВТ.СуммаДокумента КАК СуммаРеализации,
    |    ПоступлениеВТ.Ссылка как ПоступлениеДок,
    |    ПоступлениеВТ.СуммаВзаиморасчетов как СуммаОплаты
    |    ИЗ
    |    СчетаВТ КАК СчетаВТ
    |    ЛЕВОЕ СОЕДИНЕНИЕ РеализацииВТ КАК РеализацииВТ
    |    ПО СчетаВТ.Ссылка = РеализацииВТ.СчетНаОплатуПокупателю
    |    ЛЕВОЕ СОЕДИНЕНИЕ ПоступлениеВТ КАК ПоступлениеВТ
    |        ПО СчетаВТ.Ссылка = ПоступлениеВТ.СчетНаОплату
    |    где СчетаВТ.Контрагент=&Контрагент и СчетаВТ.Дата<=&КонецПериода и СчетаВТ.Дата>=&НачалоПериода
    |    упорядочить по ДатаСчетаНаОплату, ДатаРеализации";
        Выборка=НовыйЗапрос1.Выполнить().Выбрать();
        Пока Выборка.Следующий() Цикл
1 ДенисЧ
 
09.11.18
11:47
Поставь ИТОГИ
2 Timon1405
 
09.11.18
11:48
у вас соединение а не объединение
3 VladZ
 
09.11.18
11:54
(0) Замечание: отбирай нужные счета сразу - быстрее будет.

СчетНаОплатуПокупателю.Ссылка,
    |    СчетНаОплатуПокупателю.Номер,
    |    СчетНаОплатуПокупателю.Дата,
    |    СчетНаОплатуПокупателю.Контрагент,
    |    СчетНаОплатуПокупателю.СуммаДокумента,
    |    СчетНаОплатуПокупателю.Комментарий,
    |    СчетНаОплатуПокупателю.ДоговорКонтрагента
    |    ПОМЕСТИТЬ СчетаВТ
    |    ИЗ
    |    Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
где где СчетаВТ.Контрагент=&Контрагент и СчетаВТ.Дата между &НачалоПериода и &КонецПериода
4 1Сергей
 
09.11.18
11:54
Я один не понял каким боком тут поступления?
5 1Сергей
 
09.11.18
11:54
а, всё, догнал
6 VladZ
 
09.11.18
12:28
"не получается группировка по счету на оплату." - не вижу в коде, что ты пытаешься сделать группировку по счету на оплату.

ДатаСчетаНаОплату - это не то. Дата содержит время.
Еще один момент: хочешь группировать по счету, а в выборке у тебя счета нет. Отсутствует СчетаВТ.Ссылка
7 Genych76
 
09.11.18
13:09
(6) по поводу ссылки правильное замечание, дата счет на оплату - эта информация нужна. Я с нее потом данные в  таблице вывожу.
2 + 2 = 3.9999999999999999999999999999999...