Доброе время суток всем!
Есть ошибка в следующем куске запроса:
На выходе происходят дубли заказов в том случае если к заказу привязаны несколько разделенных реализации!
Как это исправить ?
Есть ошибка в следующем куске запроса:
ВЫБРАТЬ
РТУ.Регистратор,
СУММА(РТУ.Стоимость) КАК СуммаРТУ,
РТУ.Регистратор.Сделка КАК Сделка
ПОМЕСТИТЬ ВТ_РТУ
ИЗ
РегистрНакопления.Продажи КАК РТУ
ГДЕ
РТУ.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И РТУ.Контрагент = &Контрагент
И РТУ.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
СГРУППИРОВАТЬ ПО
РТУ.Регистратор,
РТУ.Регистратор.Сделка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов,
Заказы.ЗаказПокупателя
ПОМЕСТИТЬ ВТ_Заказы
ИЗ
РегистрНакопления.ЗаказыПокупателей КАК Заказы
ГДЕ
Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя
И Заказы.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И Заказы.ЗаказПокупателя.Контрагент = &Контрагент
СГРУППИРОВАТЬ ПО
Заказы.ЗаказПокупателя
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВЫБОР
КОГДА Заказы.СуммаЗаказов <= ЕСТЬNULL(Реализации.СуммаРТУ, 0)
ТОГДА ЕСТЬNULL(Реализации.СуммаРТУ, 0)
ИНАЧЕ Заказы.СуммаЗаказов
КОНЕЦ КАК СуммаЗаПериод
ПОМЕСТИТЬ ВТ_ИТОГ
ИЗ
ВТ_РТУ КАК Реализации
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Заказы КАК Заказы
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СвязьЗаказаСЗакрытием КАК ВТ_СвязьЗаказаСЗакрытием
ПО (ВТ_СвязьЗаказаСЗакрытием.ЗаказПокупателя = Заказы.ЗаказПокупателя)
ПО Реализации.Регистратор.Сделка = Заказы.ЗаказПокупателя.Ссылка
ПоказатьНа выходе происходят дубли заказов в том случае если к заказу привязаны несколько разделенных реализации!
Как это исправить ?
По теме из базы знаний
- Работа со схемой запроса
- Неоптимальная работа запроса
- СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ
- 1C:Предприятие для программистов: Запросы и отчеты. Онлайн-интенсив с 13 ноября по 16 декабря 2019 г.
- 1C:Предприятие для программистов: Запросы и отчеты. Онлайн-интенсив с 14 мая по 13 июня 2024 г.
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) Вот итоговый запрос. Если убрать "Регистратор" из группировки, то лезет ещё больше дублей.
ВЫБРАТЬ
РТУ.Регистратор,
СУММА(РТУ.Стоимость) КАК СуммаРТУ,
РТУ.Регистратор.Сделка КАК Сделка
ПОМЕСТИТЬ ВТ_РТУ
ИЗ
РегистрНакопления.Продажи КАК РТУ
ГДЕ
РТУ.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И РТУ.Контрагент = &Контрагент
И РТУ.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
СГРУППИРОВАТЬ ПО
РТУ.Регистратор,
РТУ.Регистратор.Сделка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов,
Заказы.ЗаказПокупателя
ПОМЕСТИТЬ ВТ_Заказы
ИЗ
РегистрНакопления.ЗаказыПокупателей КАК Заказы
ГДЕ
Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя
И Заказы.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И Заказы.ЗаказПокупателя.Контрагент = &Контрагент
СГРУППИРОВАТЬ ПО
Заказы.ЗаказПокупателя
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЗаказыЗакрытие.ЗаказПокупателя,
ЗаказыЗакрытие.СуммаВзаиморасчетов КАК СуммаЗакрытия
ПОМЕСТИТЬ ВТ_ЗакрытиеЗаказов
ИЗ
РегистрНакопления.ЗаказыПокупателей КАК ЗаказыЗакрытие
ГДЕ
ЗаказыЗакрытие.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
И ЗаказыЗакрытие.Регистратор ССЫЛКА Документ.ЗакрытиеЗаказовПокупателей
И ЗаказыЗакрытие.ЗаказПокупателя.Контрагент = &Контрагент
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЕСТЬNULL(ВТ_ЗакрытиеЗаказов.СуммаЗакрытия, 0) КАК СуммаЗакрытия,
ВТ_Заказы.ЗаказПокупателя
ПОМЕСТИТЬ ВТ_СвязьЗаказаСЗакрытием
ИЗ
ВТ_Заказы КАК ВТ_Заказы
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЗакрытиеЗаказов КАК ВТ_ЗакрытиеЗаказов
ПО ВТ_Заказы.ЗаказПокупателя = ВТ_ЗакрытиеЗаказов.ЗаказПокупателя
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВЫБОР
КОГДА Заказы.СуммаЗаказов - ВТ_СвязьЗаказаСЗакрытием.СуммаЗакрытия <= ЕСТЬNULL(Реализации.СуммаРТУ, 0)
ТОГДА ЕСТЬNULL(Реализации.СуммаРТУ, 0)
ИНАЧЕ Заказы.СуммаЗаказов - ВТ_СвязьЗаказаСЗакрытием.СуммаЗакрытия
КОНЕЦ КАК СуммаЗаПериод
ПОМЕСТИТЬ ВТ_ИТОГ
ИЗ
ВТ_РТУ КАК Реализации
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Заказы КАК Заказы
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СвязьЗаказаСЗакрытием КАК ВТ_СвязьЗаказаСЗакрытием
ПО (ВТ_СвязьЗаказаСЗакрытием.ЗаказПокупателя = Заказы.ЗаказПокупателя)
ПО Реализации.Регистратор.Сделка = Заказы.ЗаказПокупателя.Ссылка
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Реализации.СуммаРТУ
ИЗ
ВТ_РТУ КАК Реализации
ГДЕ
Реализации.Регистратор.Сделка = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Заказы.СуммаЗаказов
ИЗ
ВТ_Заказы КАК Заказы
ГДЕ
НЕ Заказы.ЗаказПокупателя.Ссылка В
(ВЫБРАТЬ
реализации.Сделка
ИЗ
ВТ_РТУ КАК реализации)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(ВТ_ИТОГ.СуммаЗаПериод) КАК СуммаЗаПериод
ИЗ
ВТ_ИТОГ КАК ВТ_ИТОГ
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот