Доброе время суток всем! Обычные формы.
Есть следующий запрос:

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

    ОБЪЕДИНИТЬ ВСЕ

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

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СУММА(ЕСТЬNULL(ВТ_Сумма.СуммаДокумента, 0)) КАК СуммаЗаПериод
    ИЗ
    ВТ_Сумма КАК ВТ_Сумма
```

Суть в том, что берутся за период по определенному контрагенту по условию документы и получается общая сумма:

1) Проведенные связки заказов и реализации ( Берётся большая сумма
2) Проведенные реализации без заказов(Сумма реализации).

3) Проведенные заказы без связок с реализацией(Сумма заказов).

4) Связки заказов[проведенные] и реализации[не проведенные] ( Сумма заказов ).

Возможно ли переделать этот же запрос на регистр "Заказы покупателей" с четырями условиями? И достаточно ли этого регистра ?
---
```1c
    ВЫБРАТЬ

    РТУ.Регистратор,

    СУММА(РТУ.Стоимость) КАК СуммаРТУ,

    РТУ.Регистратор.Сделка КАК Сделка

    ПОМЕСТИТЬ ВТ_РТУ

    ИЗ

    РегистрНакопления.Продажи КАК РТУ

    ГДЕ

    РТУ.Период МЕЖДУ &ДатаНачала И &ДатаОкончания

    И РТУ.Контрагент = &Контрагент

    И РТУ.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

    СГРУППИРОВАТЬ ПО

    РТУ.Регистратор,

    РТУ.Регистратор.Сделка

    ;

    ////////////////////////////////////////////////////////////­////////////////////

    ВЫБРАТЬ

    СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов,

    Заказы.ЗаказПокупателя

    ПОМЕСТИТЬ ВТ_Заказы

    ИЗ

    РегистрНакопления.ЗаказыПокупателей КАК Заказы

    ГДЕ

    Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя

    И Заказы.Период МЕЖДУ &ДатаНачала И &ДатаОкончания

    И Заказы.ЗаказПокупателя.Контрагент = &Контрагент

    СГРУППИРОВАТЬ ПО

    Заказы.ЗаказПокупателя

    ;

    ////////////////////////////////////////////////////////////­////////////////////

    ВЫБРАТЬ

    ВЫБОР

    КОГДА Заказы.СуммаЗаказов <= ЕСТЬNULL(Реализации.СуммаРТУ, 0)

    ТОГДА ЕСТЬNULL(Реализации.СуммаРТУ, 0)

    ИНАЧЕ Заказы.СуммаЗаказов

    КОНЕЦ КАК СуммаЗаПериод

    ПОМЕСТИТЬ ВТ_ИТОГ

    ИЗ

    ВТ_РТУ КАК Реализации

    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Заказы КАК Заказы

    ПО Реализации.Регистратор.Сделка = Заказы.ЗаказПокупателя.Ссылка

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ

    Реализации.СуммаРТУ

    ИЗ

    ВТ_РТУ КАК Реализации

    ГДЕ

    Реализации.Регистратор.Сделка = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ

    Заказы.СуммаЗаказов

    ИЗ

    ВТ_Заказы КАК Заказы

    ГДЕ

    НЕ Заказы.ЗаказПокупателя.Ссылка В

    (ВЫБРАТЬ

    реализации.Сделка

    ИЗ

    реализации)

    ;

    ////////////////////////////////////////////////////////////­////////////////////

    ВЫБРАТЬ

    СУММА(ВТ_ИТОГ.СуммаЗаПериод) КАК СуммаЗаПериод

    ИЗ

    ВТ_ИТОГ КАК ВТ_ИТОГ
```

Извиняюсь за формат кода, криво копирует с удаленки. На рабочем компе нету 10.3 для форматирования в консоли.

В общем получилось что из шапки моей темы пункт 3 и 4 скрестились.
Сумма получилась итоговая такая же как и в запросе из шапки, но думаю ньюансы есть, пока что не вижу их.
---
нужно взять и написать запрос по регистру под соответствующую задачу
---
а для начала (очень неплохо) - научиться излагать.
(автора, имею ввиду. к Вам - присоединяюсь)
---
(3) Дописал уже тему.
---
ок. Уже чтото.

Ещё - текст запроса, читаемым сделайте, пожалуйста.

И - конфигурация, какая?
---
Запихай в конструктор запроса. Где он не читаем ?
---
ок, ты уже похоже - запихал.
(не только текст, и не только в конструктор)
я не буду - и лень, и моральные...
---
Извиняюсь,настроение нету из-за этого запроса, заказчик мозг вые
---
Запихай в конструктор запроса. Где он не читаем ?
на экране трудночитаем. и не каждый может засунуть в конструктор по причине отсутствия конфы.
---
Возможно ли переделать этот же запрос на регистр "Заказы покупателей" с четырями условиями?
для чего хотите переделать запрос именно на регистр? что сейчас не устраивает?
---
То что другие документы могут менять сумму. Отсюда и решение на регистр перейти.
---
очевидно тогда что четырех условий не хватит
---
Даже если переделать на регистр имеете ввиду ?
Вот сейчас в ступоре, либо к существующему запросы добавить условия, либо на регистр переходить полностью. Но не уверен что на регистре связки такие возможно сделать.
---
Непонятно как-то документы поменяют суммы - а что движения по регистрам не изменятся?

Вы же Используете фильтр документ.проведен

Зачем все-таки переходить на регистр, если все работает?
---
подразумевается что и другие документы могут менять суммы Заказов и Реализации. К примеру "закрытие заказов покупателя",есть ещё и другие.
---
смею предположить, что раз обычные формы, заказ и реализация, то это нечто типа УТ 10.3
если так или похоже, то одним регистром заказов не обойтись, да и нужно ли?
продажи надо будет брать с регистра продаж

примерно так (при переводе на регистры), схема по условиям
1. реализация с продаж с условием что основание (сделка) есть и это заказ, связка с заказом по основанию, заказ с заказов (под вопросом)
2. реализация с продаж с условием что основание (сделка) пусто (или это не заказ, ту смотреть по требованиям)
3. заказы из документов, без связанного документа реализации (тут не помню точно как в регистре заказов отображаются записи по заказам с отгрузкой, если можно вычленить с регистра, то брать с регистра)
4. вариация пункта 3, только со связанным документом реализации
---
Да. 10.3
Разумеется регистр продаж необходим.
То есть вы считаете что в принципе на регистры эти условия переделать возможно?
Не совсем пойму как учитывать по регистрам ВидПрихода.
---
в принципе можно переделать на регистры в ключевых данных по продажам, по заказам честно не помню как там ведется учет, а 10.3 под рукой нет
точно при проведении заказа в регистр пишется приход под заказ, а вот пишется расход или запись аннлуируется при проведении реализации по заказу или при отмене заказа, вот это не скажу точно, надо смотреть

(17) как учитывать по регистрам ВидПрихода зависит от того, что вы понимаете под ВидПрихода
---
Ну я вот начал делать.
1) Взял из регистра продажи только все реализации за период по контрагенту. Указав что основание заказ.
2) Взял из регистра заказы покупателей только все заказы за период по контрагенту. Указав что регистра Заказ покупателя.
3) Уже объединением играюсь с первыми двумя пунктами и получаю все 4 моих условия

Этого же достаточно по идее?
---
по идее да, основные данные из регистров получены, дальше или через объединения в запросе или результат запроса в цикле обработать и добавить недостающие данные
---
Смею спросить. Могу ли итоговый запрос Вам показать на корректность?
---
попробуйте
но т.к. конфы под рукой нет, то на 100% я не смогу, чисто теоретически
если устраивает такой вариант, кидайте
---
```1c
    ВЫБРАТЬ

    РТУ.Регистратор,

    СУММА(РТУ.Стоимость) КАК СуммаРТУ,

    РТУ.Регистратор.Сделка КАК Сделка

    ПОМЕСТИТЬ ВТ_РТУ

    ИЗ

    РегистрНакопления.Продажи КАК РТУ

    ГДЕ

    РТУ.Период МЕЖДУ &ДатаНачала И &ДатаОкончания

    И РТУ.Контрагент = &Контрагент

    И РТУ.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

    СГРУППИРОВАТЬ ПО

    РТУ.Регистратор,

    РТУ.Регистратор.Сделка

    ;

    ////////////////////////////////////////////////////////////­////////////////////

    ВЫБРАТЬ

    СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов,

    Заказы.ЗаказПокупателя

    ПОМЕСТИТЬ ВТ_Заказы

    ИЗ

    РегистрНакопления.ЗаказыПокупателей КАК Заказы

    ГДЕ

    Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя

    И Заказы.Период МЕЖДУ &ДатаНачала И &ДатаОкончания

    И Заказы.ЗаказПокупателя.Контрагент = &Контрагент

    СГРУППИРОВАТЬ ПО

    Заказы.ЗаказПокупателя

    ;

    ////////////////////////////////////////////////////////////­////////////////////

    ВЫБРАТЬ

    ВЫБОР

    КОГДА Заказы.СуммаЗаказов <= ЕСТЬNULL(Реализации.СуммаРТУ, 0)

    ТОГДА ЕСТЬNULL(Реализации.СуммаРТУ, 0)

    ИНАЧЕ Заказы.СуммаЗаказов

    КОНЕЦ КАК СуммаЗаПериод

    ПОМЕСТИТЬ ВТ_ИТОГ

    ИЗ

    ВТ_РТУ КАК Реализации

    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Заказы КАК Заказы

    ПО Реализации.Регистратор.Сделка = Заказы.ЗаказПокупателя.Ссылка

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ

    Реализации.СуммаРТУ

    ИЗ

    ВТ_РТУ КАК Реализации

    ГДЕ

    Реализации.Регистратор.Сделка = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ

    Заказы.СуммаЗаказов

    ИЗ

    ВТ_Заказы КАК Заказы

    ГДЕ

    НЕ Заказы.ЗаказПокупателя.Ссылка В

    (ВЫБРАТЬ

    реализации.Сделка

    ИЗ

    реализации)

    ;

    ////////////////////////////////////////////////////////////­////////////////////

    ВЫБРАТЬ

    СУММА(ВТ_ИТОГ.СуммаЗаПериод) КАК СуммаЗаПериод

    ИЗ

    ВТ_ИТОГ КАК ВТ_ИТОГ
```

Извиняюсь за формат кода, криво копирует с удаленки. На рабочем компе нету 10.3 для форматирования в консоли.

В общем получилось что из шапки моей темы пункт 3 и 4 скрестились.
Сумма получилась итоговая такая же как и в запросе из шапки, но думаю ньюансы есть, пока что не вижу их.
---
на мой взгляд, теоретически все верно, тем более у вас подтверждается цифрами
---
Извините, проблема появилась, если регистры пустые, то вылазит null. Не могу избавиться от него, так как в последнем пакете запросов я группирую. Как сделать правильнее ?
---
1. через ВЫБОР КОГДА, но в текущем случае вряли
2. поместить последний пакет во временную таблицу и уже по ней выбрать по условию НЕ ЕСТЬ NULL

думаю как-то так
---
выбрать по ней ? Что имеете ввиду
---
как-то так

```1c
    ВЫБРАТЬ
    СУММА(ВТ_ИТОГ.СуммаЗаПериод) КАК СуммаЗаПериод
    ИЗ
    ВТ_ИТОГ КАК ВТ_ИТОГ
    ГДЕ
    НЕ ВТ_ИТОГ.СуммаЗаПериод <> 0
```

вообще не понятно откуда null возникает, если записи с регистра берутся
нет записей, нет результата, нет null
---
Получилось разобраться. Дело в том, что просто суммирую одно поле в группировках(Сумма),а группировочного поля нету. Если добавить ссылку, то всё ок.
---
А ваше условие не отрабатывает..
И если я группирую по ссылке, то не отрабатывает Сумма :(

Хотел ещё спросить у Вас, а то что я сгруппировал реализации в первом подзапросе это корректно вообще?
---
вообще в первом запросе группировать нужно если только отгрузка была по нескольким заказам, но у вас скорее всего не так
группировать по ссылке особого смысла не имеет, т.к. ссылка уже есть уникальная вещь, но в принципе и не возбраняется
ну а по условию поиграться надо, может там не ноль а null, поэтому и не срабатывает

я бы попробовал заменить СУММА(РТУ.Стоимость) КАК СуммаРТУ на просто РТУ.Стоимость КАК СуммаРТУ
и СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов на просто Заказы.СуммаВзаиморасчетов КАК СуммаЗаказов
это данные с регистра, это уже сумма расчетов по документу, а суммируете вы итоги позже
---
Попробую. Спасибо.

А равносильно по вашему мнению это?
ЕСТЬNULL(Вт_итог.сумма,0) Как СуммаЗаПериод

И

Если Пустая строка(суммаЗаПериод) тогда
Сумма ЗаПериод =0 конецесли
---
нет
NULL, ЕСТЬNUL, ЕСТЬ NULL, 0, пустая строка -
то все будут разные сравнения
NULL нельзя сравнить с 0, например
а пустую строку с NULL
---
Хм, но у меня отрабатывает. Так как в запросе я не смог избавиться от null всё-таки.
И сделал в коде так после выборки:

```1c
    Если Пустая строка(суммаЗаПериод) тогда
    СуммаЗаПериод =0
    конецесли
```

и всё отрабатывает корректно, если в выборке Null, то СуммеЗаПериод присваивается 0,как мне и надо.

И если я убираю группировки по ссылке и сумме в запросе к регистру Продажи, получая Реализации, то выводится две суммы.Так как в заказе и реализации две позиции номенклатуры.. Так что без группировки некорректно получается.

И как в итоге то быть ? я уже как только не пытался изменить запрос..
Как можно обойти Null правильно после выборки тогда ?!
---
да. это я затупил в 31, как-то не сообразил, что в документах может быть несколько строк
а по Null у вас уже решение готово ЕСТЬNULL(Вт_итог.сумма,0)
осталось только это поместить опять во временную и выбрать из нее данные еще раз, с условием Сумма <>0
---
Я так делал уже, всё равно null...
---
есть только демка, все нормально, никаких нулевых строк

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

    СГРУППИРОВАТЬ ПО
    РТУ.Регистратор,
    РТУ.Регистратор.Сделка
    ;

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

    СГРУППИРОВАТЬ ПО
    Заказы.ЗаказПокупателя
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВЫБОР
    КОГДА втЗаказы.СуммаЗаказов <= ЕСТЬNULL(втРеализации.СуммаРТУ, 0)
    ТОГДА ЕСТЬNULL(втРеализации.СуммаРТУ, 0)
    ИНАЧЕ втЗаказы.СуммаЗаказов
    КОНЕЦ КАК СуммаЗаПериод
    ПОМЕСТИТЬ ВТ_ИТОГ
    ИЗ
    ВТ_РТУ КАК втРеализации
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Заказы КАК втЗаказы
    ПО втРеализации.Регистратор.Сделка = втЗаказы.ЗаказПокупателя.Ссылка

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    втРеализации.СуммаРТУ
    ИЗ
    ВТ_РТУ КАК втРеализации
    ГДЕ
    втРеализации.Регистратор.Сделка = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    втЗаказы.СуммаЗаказов
    ИЗ
    ВТ_Заказы КАК втЗаказы
    ГДЕ
    НЕ втЗаказы.ЗаказПокупателя.Ссылка В
    (ВЫБРАТЬ
    втРеализации.Сделка
    ИЗ
    ВТ_РТУ КАК втРеализации)
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СУММА(ВТ_ИТОГ.СуммаЗаПериод) КАК СуммаЗаПериод
    ИЗ
    ВТ_ИТОГ КАК ВТ_ИТОГ
```
---
Ну это же мой же и запрос.
Данных точно нету ?
Может в конфе дело. Ут 10.3 у меня.
---
демка 10.3
данные есть
выводит одну строку по выбранным параметрам, собственно как и должен по запросу
нужно на данных ковырять, загнать запрос в обработку и выполняя отдельные пакеты смотреть что в результате
так сложно сказать в какой момент и откуда возникает null
вот проверил на демке, все ок, другой 10.3 нет
---
Странные дела. Я по порядку и проверял. Говорю же после объединения как только делаю СУММА(ВТ_ИТОГ.СуммаЗаПериод) КАК СуммаЗаПериод
то сразу вылазит null.. а если добавить поле группировки,всё ок.
Но я не знаю как в объединениях добавить поля(ссылки) для группировки, там разные ссылки...
---
Не по теме вопрос, но возможно Вы как более опытный человек подскажете.
Когда я делаю в объединениях первый запрос( Связка Заказ и Реализации) то выбираю сумму по условию, как оказалось оно не корректно,так как участвует ещё документ закрытие заказа покупателя и непонятно какую сумму брать из-за этого...
Что можете посоветовать ? Спасибо заранее.
---
эхх... давно я 10.3 не ковырял )
по идее закрытие заказов обнуляет количество и сумму по резерву. а значит обнуляет эти ресурсы в регистре ЗаказыПокупателя
при этом подразумевается, что закрыть заказ с проведенной отгрузкой по идее нельзя, и если такое есть, то это ошибка в данных
т.о. получается, что с регистра ЗаказыПокупателя надо брать не все данные, а только те, что не равны ноль по количеству, например, отсекая тем самым как раз закрытые заказы
---
Оёй, звучит страшно :)
А в моём запросе конкретно в связке как то это сделать для моей поставленной задачи( получения суммы за период ).
Потому что я как кроме создать новый регистр ничего не придумал...
---
навскидку если

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

    СГРУППИРОВАТЬ ПО
    Заказы.ЗаказПокупателя
```
---
Не правильно поняли меня думаю.
Приложил файл, где сделан отбор по одному заказу покупателя в регистре заказ покупателя.
Заказ сделан на сумму 5242(приход), Реализация на 4717,82(расход). Закрытие на 1048,40(расход)
В итоге по моему условию взялась сумма 5242,а должна быть 4717,82.
К примеру если суммы будут одинаковые 5242 и 5242, то и будет 5242, хотя по факту 0.
Может так, что и реализация на сумму больше, чем заказ и снова непонятно как быть...

Подскажите, если бонусом отправлю вам $ здесь.
---
или вы сами запутались или я
я в таких случаях беру карандаш и начинаю рисовать
начальные условия - что могу получить их условий - что должен получить в результате
и так для всех вариантов начальных условий

опишите задачу подробно
судя по всему из суммы заказа нужно вычесть закрытие (связь по заказу) и получить результирующую сумму заказа, которую потом сравнить с суммой реализации (связь по заказу)
---
Задача следующая:
1) Есть документ "Согласованная сумма" В которой указывается дата начала и дата конца. Так же контрагент и сумма.
2) В итоге при проведении заказа, если СуммаЗаПериод(Которая и берёт мой запрос) + СуммаТекущегоПроводимого заказа > Согласованной суммы, то не проводим.
Собственно и всё.

Всё учитывается нормально, но вот эти связки с Заказом и реализацией не совсем правильно учитываются по моему условию, не знаю что даже и делать...

судя по всему из суммы заказа нужно вычесть закрытие (связь по заказу) и получить результирующую сумму заказа, которую потом сравнить с суммой реализации (связь по заказу)
По поводу этого:
1) Это же получается только одно условие я могу обойти таким способом, но есть же и другие случаи, или я ошибаюсь?
2) Как получить в моём же запросе сумму закрытия ? хм
---
Вы правильно описали, но помогите как в моём запросе вычитать сумму закрытия из заказа и после сравнивать по моему условию...
Разве эта сумма по заказу(заказ - закрытие) уже не должна сразу вылазить ?
То есть закрытие появляется только когда номенклатурная сетка разница, но как это исключить в запросе...
---
в моей демке нет таких данных, этому если устроит чисто теоретический вариант, покопаюсь
не устроит - или нужны данные или помочь не могу
---
Извините не предупредил,но у меня Ут 10.3 отраслевая ( ут алкогольной продукцией).
---
Вот скриншот. Взят регистр Заказы покупателей,без условия:
```1c
    Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя
```

Только отбор по дате и контрагенту. Заказ покупателя один и тот же у каждой строки.
В итоге вот результат.

Как вы и сказали,надо из суммызаказа вычесть закрытие, после сравнить эту сумму с реализацией по условию как раз которое меня уже есть в запросе при связке заказа и реализации
---
чисто теоретически
втЗаказы - запрос к Заказы по регистратору Заказ, в результате ЗаказСумма, ЗаказСсылка

втЗаказыЗакрытые - запрос к Заказы по регистратору ЗакрытиеЗаказа, в результате ()минус) - ЗаказЗакрытиеСумма, ЗаказСсылка

втЗаказы и втЗаказыЗакрытые соединяем по ЗаказСсылка и суммируем по сумме, за счет знака минус в втЗаказыЗакрытые сумма заказа уменьшится

остальное у вас уже реализовано
---
А-аа,ну значит правильно я Вас понял.
Выходит в (53) мой запрос корректен?
Не уверен во внутреннем соединении правда.
---
оно меня тоже смущает
надо проверять на данных

я бы вынес это соединение в отдельную вт
---
Имеете ввиду вынести в отдельную ВТ и сделать полное соединение вместо внутреннегго?

А условие когда я вычитаю ЕСТЬNULL(СуммаЗакрытия,0) правильно ли ?
---
нет соединить по внутреннему или по левому
полное нельзя, получите все закрытие заказов отдельными строками без соединения, просто добавятся

условие ЕСТЬNULL(СуммаЗакрытия,0) правильно
---
Соединил по внутреннему.
После эту ВТ_СуммаЗакрытия

Я добавляю в подзапрос где связка и реализация. И делаю же полное соединение по заказу с заказами?
---
да
и там же делаете сравнение суммы заказа (уже с учтенным закрытием) и суммы реализации
---
В общем, смастерил так:
Правильно ли это будет по Вашему мнению ?

```1c
    ВЫБРАТЬ

    РТУ.Регистратор,

    СУММА(РТУ.Стоимость) КАК СуммаРТУ,

    РТУ.Регистратор.Сделка КАК Сделка

    ПОМЕСТИТЬ ВТ_РТУ

    ИЗ

    РегистрНакопления.Продажи КАК РТУ

    ГДЕ

    РТУ.Период МЕЖДУ &ДатаНачала И &ДатаОкончания

    И РТУ.Контрагент = &Контрагент

    И РТУ.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

    СГРУППИРОВАТЬ ПО

    РТУ.Регистратор,

    РТУ.Регистратор.Сделка

    ;

    ////////////////////////////////////////////////////////////­////////////////////

    ВЫБРАТЬ

    СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов,

    Заказы.ЗаказПокупателя

    ПОМЕСТИТЬ ВТ_Заказы

    ИЗ

    РегистрНакопления.ЗаказыПокупателей КАК Заказы

    ГДЕ

    Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя

    И Заказы.Период МЕЖДУ &ДатаНачала И &ДатаОкончания

    И Заказы.ЗаказПокупателя.Контрагент = &Контрагент

    СГРУППИРОВАТЬ ПО

    Заказы.ЗаказПокупателя

    ;

    ////////////////////////////////////////////////////////////­////////////////////

    ВЫБРАТЬ

    ЗаказыПокупателей.СуммаВзаиморасчетов,

    ЗаказыПокупателей.ЗаказПокупателя

    ПОМЕСТИТЬ ВТ_Закрытие

    ИЗ

    РегистрНакопления.ЗаказыПокупателей КАК ЗаказыПокупателей

    ГДЕ

    ЗаказыПокупателей.ЗаказПокупателя.Контрагент = &Контрагент

    И ЗаказыПокупателей.Период МЕЖДУ &ДатаНачала И &ДатаОкончания

    И ЗаказыПокупателей.Регистратор ССЫЛКА Документ.ЗакрытиеЗаказовПокупателей

    ;

    ////////////////////////////////////////////////////////////­////////////////////

    ВЫБРАТЬ

    ВЫБОР

    КОГДА Заказы.СуммаЗаказов - ЕСТЬNULL(ВТ_Закрытие.СуммаВзаиморасчетов, 0) <= ЕСТЬNULL(Реализации.СуммаРТУ, 0)

    ТОГДА ЕСТЬNULL(Реализации.СуммаРТУ, 0)

    ИНАЧЕ Заказы.СуммаЗаказов - ЕСТЬNULL(ВТ_Закрытие.СуммаВзаиморасчетов, 0)

    КОНЕЦ КАК Поле1

    ПОМЕСТИТЬ ВТ_ИТОГ

    ИЗ

    ВТ_РТУ КАК Реализации

    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Заказы КАК Заказы

    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Закрытие КАК ВТ_Закрытие

    ПО Заказы.ЗаказПокупателя = ВТ_Закрытие.ЗаказПокупателя

    ПО Реализации.Регистратор.Сделка = Заказы.ЗаказПокупателя.Ссылка
```