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

```1c
    ВЫБРАТЬ
    ГОД(НД_ПКО.Дата) КАК Год,
    НД_ПКО.Представление,
    НД_ПКО.Номер,
    НД_ПКО.СуммаДокумента
    ПОМЕСТИТЬ ПКО
    ИЗ
    Документ.НД_ПКО КАК НД_ПКО
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ГОД(НД_РКО.Дата) КАК Год,
    НД_РКО.Представление,
    НД_РКО.Номер,
    НД_РКО.СуммаДокумента
    ПОМЕСТИТЬ РКО
    ИЗ
    Документ.НД_РКО КАК НД_РКО
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ПКО.Представление,
    ПКО.СуммаДокумента,
    РКО.Представление КАК Представление1,
    РКО.СуммаДокумента КАК СуммаДокумента1
    ИЗ
    ПКО КАК ПКО
    ПОЛНОЕ СОЕДИНЕНИЕ РКО КАК РКО
    ПО ПКО.Год = РКО.Год
    И ПКО.Номер = РКО.Номер
```

Вариант уважаемого Старика ещё менее удачен т.к. (выдержка из описания АВТОНОМЕРЗАПИСИ()):
Начальное значение счетчика зависит от используемой СУБД и, в общем случае, может быть любым. Не гарантируется, что начальное значение счетчика будет равно 1 для любой временной таблицы.
---
немного запутался в ветке обсуждения. Дублирую ответ в корень:

если гарантирована адекватная, последовательная нумерация кассовых документов в пределах года то возможен вариант

```1c
    ВЫБРАТЬ
    ГОД(НД_ПКО.Дата) КАК Год,
    НД_ПКО.Представление,
    НД_ПКО.Номер,
    НД_ПКО.СуммаДокумента
    ПОМЕСТИТЬ ПКО
    ИЗ
    Документ.НД_ПКО КАК НД_ПКО
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ГОД(НД_РКО.Дата) КАК Год,
    НД_РКО.Представление,
    НД_РКО.Номер,
    НД_РКО.СуммаДокумента
    ПОМЕСТИТЬ РКО
    ИЗ
    Документ.НД_РКО КАК НД_РКО
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ПКО.Представление,
    ПКО.СуммаДокумента,
    РКО.Представление КАК Представление1,
    РКО.СуммаДокумента КАК СуммаДокумента1
    ИЗ
    ПКО КАК ПКО
    ПОЛНОЕ СОЕДИНЕНИЕ РКО КАК РКО
    ПО ПКО.Год = РКО.Год
    И ПКО.Номер = РКО.Номер
```

Вариант уважаемого Старика ещё менее удачен т.к. (выдержка из описания АВТОНОМЕРЗАПИСИ()):
Начальное значение счетчика зависит от используемой СУБД и, в общем случае, может быть любым. Не гарантируется, что начальное значение счетчика будет равно 1 для любой временной таблицы.
---
последовательная нумерация у вас не гарантирована, т.к. речь идёт не только о кассовых документаз, а это значит, что остаётся вариант FatPanzer
---
как вариант:

```1c
    ВЫБРАТЬ
    ПоступлениеВКассу.Ссылка КАК ПоступлениеВКассу,
    ПоступлениеВКассу.СуммаДокумента КАК СуммаПоступления,
    1 КАК НомерСтроки
    ПОМЕСТИТЬ ВТ_Поступления
    ИЗ
    Документ.ПоступлениеВКассу КАК ПоступлениеВКассу
    ГДЕ
    ПоступлениеВКассу.Контрагент = &Контрагент
    И ПоступлениеВКассу.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)
    ;

    ВЫБРАТЬ
    РасходнаяНакладная.Ссылка КАК РасходнаяНакладная,
    РасходнаяНакладная.СуммаДокумента КАК СуммаНакладная,
    1 КАК НомерСтроки
    ПОМЕСТИТЬ ВТ_Реализация
    ИЗ
    Документ.РасходнаяНакладная КАК РасходнаяНакладная
    ГДЕ
    РасходнаяНакладная.Контрагент = &Контрагент
    И РасходнаяНакладная.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)
    ;

    ВЫБРАТЬ
    ВТ_Поступления.ПоступлениеВКассу КАК ПоступлениеВКассу,
    ВТ_Поступления.СуммаДокумента КАК СуммаПоступления,
    СУММА(ВТ_Поступления.НомерСтроки) КАК НомерСтроки
    ПОМЕСТИТЬ ВТ_ПоступленияИтоги
    ИЗ
    ВТ_Поступления КАК ВТ_Поступления
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Поступления КАК ВТ_Поступления1
    ПО (ВТ_Поступления.ПоступлениеВКассу.Дата >= ВТ_Поступления1.ПоступлениеВКассу.Дата)

    СГРУППИРОВАТЬ ПО
    ВТ_Поступления.ПоступлениеВКассу,
    ВТ_Поступления.СуммаДокумента
    ;

    ВЫБРАТЬ
    ВТ_Реализация.РасходнаяНакладная КАК РасходнаяНакладная,
    ВТ_Реализация.СуммаДокумента КАК СуммаПоступления,
    СУММА(ВТ_Реализация.НомерСтроки) КАК НомерСтроки
    ПОМЕСТИТЬ ВТ_РеализацияИтоги
    ИЗ
    ВТ_Реализация КАК ВТ_Реализация
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Реализация КАК ВТ_Реализация1
    ПО ВТ_Реализация.РасходнаяНакладная.Дата >= ВТ_Реализация1.РасходнаяНакладная.Дата

    СГРУППИРОВАТЬ ПО
    ВТ_Реализация.РасходнаяНакладная,
    ВТ_Реализация.СуммаДокумента
    ;

    ВЫБРАТЬ
    ВТ_ПоступленияИтоги.ПоступлениеВКассу КАК Поступление,
    ВТ_ПоступленияИтоги.СуммаДокумента КАК СуммаПоступления,
    ВТ_РеализацияИтоги.РасходнаяНакладная КАК Реализация,
    ВТ_РеализацияИтоги.СуммаДокумента КАК СуммаРеализации
    ИЗ
    ВТ_ПоступленияИтоги КАК ВТ_ПоступленияИтоги
    ПОЛНОЕ СОЕДИНЕНИЕ ВТ_РеализацияИтоги КАК ВТ_РеализацияИтоги
    ПО (ВТ_ПоступленияИтоги.НомерСтроки = ВТ_РеализацияИтоги.НомерСтроки)
```
---
Такое решение больше подойдёт под поставленную задачу. Приспособил трюк которым поделился Старик под ваш запрос.

```1c
    ВЫБРАТЬ ПЕРВЫЕ 10000
    НД_ПКО.Представление,
    НД_ПКО.СуммаДокумента,
    КОЛИЧЕСТВО(НД_ПКО_1.Ссылка) КАК Номер
    ПОМЕСТИТЬ ПКО
    ИЗ
    Документ.НД_ПКО КАК НД_ПКО
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.НД_ПКО КАК НД_ПКО_1
    ПО НД_ПКО.Дата >= НД_ПКО_1.Дата

    СГРУППИРОВАТЬ ПО
    НД_ПКО.Представление,
    НД_ПКО.СуммаДокумента,
    НД_ПКО.Дата

    УПОРЯДОЧИТЬ ПО
    НД_ПКО.Дата
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ ПЕРВЫЕ 10000
    НД_РКО.Представление,
    НД_РКО.СуммаДокумента,
    КОЛИЧЕСТВО(НД_РКО_1.Ссылка) КАК Номер
    ПОМЕСТИТЬ РКО
    ИЗ
    Документ.НД_РКО КАК НД_РКО
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.НД_РКО КАК НД_РКО_1
    ПО НД_РКО.Дата >= НД_РКО_1.Дата

    СГРУППИРОВАТЬ ПО
    НД_РКО.Представление,
    НД_РКО.СуммаДокумента,
    НД_РКО.Дата

    УПОРЯДОЧИТЬ ПО
    НД_РКО.Дата
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ПКО.Представление КАК ПКО,
    ПКО.СуммаДокумента КАК СуммаПКО,
    РКО.Представление КАК РКО,
    РКО.СуммаДокумента КАК СуммаРКО
    ИЗ
    ПКО КАК ПКО
    ПОЛНОЕ СОЕДИНЕНИЕ РКО КАК РКО
    ПО ПКО.Номер = РКО.Номер
```
---
Прочитал. Задачу не понял. Советую поработать над формулировкой.
---
Попробую объяснить. Есть контрагент, по нему есть поступления в кассу - нужно вывести документ 1 колокна и сумму 2 колокна, по этому же контрагенту есть расходные накладные - выводим документ и сумму.
---
какой вариант компоновки вам нужен? 1, 2, любой из двух?
---
2
---
внимательно осознай (5), потом задай правильный вопрос.
---
чито, из задания Вам правда это было не понятно?
---
Интересно девки пляшут... Впихнуть невпихуемое.

Должно быть два разных запроса, и алгоритм параллельного вывода в табличных документ из двух разных таблиц.
---
Можно. Долго. Дорого. )))

Суть:
1. Собираем все РТУ. Добавляем номер строки в ВТ.
2. Собираем все ПКО. Добавляем номер строки в ВТ
3. Соединяем по номеру строки полным соединением.

```1c
    ВЫБРАТЬ
    АВТОНОМЕРСТРОКИ(),
    Сцылка,
    Сумма
    ПОМЕСТИТЬ ВТ1
    ИЗ РТУ;
    ВЫБРАТЬ
    АВТОНОМЕРСТРОКИ(),
    Сцылка,
    Сумма
    ПОМЕСТИТЬ ВТ2
    ИЗ ПКО;
    ВЫБРАТЬ * ИЗ ВТ1 КАК РТУ
    ПОЛНОЕ СОЕДИНЕНИЕ ВТ2 КАК ПКО
    ПО НомерСтроки
```
---
Добавляем номер строки в ВТ. Это что имеется в виду?
---
если гарантирована адекватная, последовательная нумерация кассовых документов в пределах года то возможен вариант

```1c
    ВЫБРАТЬ
    ГОД(НД_ПКО.Дата) КАК Год,
    НД_ПКО.Представление,
    НД_ПКО.Номер,
    НД_ПКО.СуммаДокумента
    ПОМЕСТИТЬ ПКО
    ИЗ
    Документ.НД_ПКО КАК НД_ПКО
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ГОД(НД_РКО.Дата) КАК Год,
    НД_РКО.Представление,
    НД_РКО.Номер,
    НД_РКО.СуммаДокумента
    ПОМЕСТИТЬ РКО
    ИЗ
    Документ.НД_РКО КАК НД_РКО
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ПКО.Представление,
    ПКО.СуммаДокумента,
    РКО.Представление КАК Представление1,
    РКО.СуммаДокумента КАК СуммаДокумента1
    ИЗ
    ПКО КАК ПКО
    ПОЛНОЕ СОЕДИНЕНИЕ РКО КАК РКО
    ПО ПКО.Год = РКО.Год
    И ПКО.Номер = РКО.Номер
```

Вариант уважаемого Старика ещё менее удачен т.к. (выдержка из описания АВТОНОМЕРЗАПИСИ()):
Начальное значение счетчика зависит от используемой СУБД и, в общем случае, может быть любым. Не гарантируется, что начальное значение счетчика будет равно 1 для любой временной таблицы.
---
Спасибо! Вроде то что нужно.
---
выдержка из описания АВТОНОМЕРЗАПИСИ()Да, странное поведение. Но пронумеровать список есть и масса иных способов.

Предположу, что количество документов не совпадает, в итоге у вас может случиться ситуация, когда данные во второй колонке начнутся или позднее или раньше данных первой. В СКД есть простые механизмы, которые могут позволить получить искомый вариант, а именно в запросе привязаться к иному, чем номер по порядку именно в выбираемой куче, не представляется возможным (если, конечно, топикастеру не все равно, что и за чем).

ЗЫ: при последовательной сквозной нумерации из номера второго списка можно вычесть количество значений в первом. Это тоже вполне легко сделать.
---
я запрос составлял находясь в уверенности, что речь идёт про кассовые документы, а в этом случае есть надежда, обусловленная строгой кассовой дисциплиной, рассчитывать на адекватную нумерацию... Позже я чуть внимательней посмотрел на скрин и понял что мои надежды не оправдываются.

пронумеровать список есть и масса иных способов
В запросе? Было бы интересно посмотреть.
---
В запросе? Было бы интересно посмотреть.
https://kb.mista.ru/article.php?id=703
---
хитрый трюк. В копилку.
Спасибо.
---
когда санитары - это уже, надо быть осторожным заранее...
---
Это?
---
Хорошая тема. Наконец-то я научусь использовать полные соединения
---
оно обычно нахрен не нужно. То, что хочет топикастер, извращением является только в звпросе - единичный случай.
---
полагаю, мне еще раз повезло, познакомился с великим обломателем кайфа :)