Дубли строк в детальных записях, без иерархии. СКД
Добрый день, подскажите пожалуйста в отчете СКД в детальных записях без группировки, выводятся строки с дублями. В запроснике результат без дублей. Помогите пожалуйста понять в чем причина, заранее спасибо!
Запрос:
скрин и схема в вложении.
Запрос:
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Организация,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент КАК Контрагент,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрПриход,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрРасход,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период КАК ДатаОбразования,
РАЗНОСТЬДАТ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор.Дата, &ДатаФормирования, ДЕНЬ) КАК ДнейЗадолжности,
ЕСТЬNULL(РегСв_ЗначенияСвойствОбъектов.Свойство, "Нет данных") КАК СвойствоДоговора,
ЕСТЬNULL(РегСв_ЗначенияСвойствОбъектов.Значение, "Нет данных") КАК Подразделение
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачПериод, &КонПериод, Регистратор, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ЗначенияСвойствОбъектов.Объект КАК Объект,
ЗначенияСвойствОбъектов.Свойство КАК Свойство,
ЗначенияСвойствОбъектов.Значение КАК Значение
ИЗ
РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
ТИПЗНАЧЕНИЯ(ЗначенияСвойствОбъектов.Значение) = ТИП(Справочник.Подразделения)) КАК РегСв_ЗначенияСвойствОбъектов
ПО ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента = РегСв_ЗначенияСвойствОбъектов.Объект
ГДЕ
(ТИПЗНАЧЕНИЯ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор) = ТИП(Документ.ПлатежноеПоручениеИсходящее)
ИЛИ ТИПЗНАЧЕНИЯ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор) = ТИП(Документ.РасходныйКассовыйОрдер))
И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток > 0
Показатьскрин и схема в вложении.
Прикрепленные файлы:
СКД.xml
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) попробуйте добавить в выводимые значения СвойствоДоговора и увидите, почему "дубли".
"ЗначенияСвойствОбъектов.Свойство КАК Свойство" нигде не фильтруются. Там могут быть несколько значений. По всем этим значениям будут "дубли".
"ПО ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента = РегСв_ЗначенияСвойствОбъектов.Объект" есть сопоставление.
А по "РегСв_ЗначенияСвойствОбъектов.Свойство" нет. Будут все возможные свойства связываться.
"ЗначенияСвойствОбъектов.Свойство КАК Свойство" нигде не фильтруются. Там могут быть несколько значений. По всем этим значениям будут "дубли".
"ПО ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента = РегСв_ЗначенияСвойствОбъектов.Объект" есть сопоставление.
А по "РегСв_ЗначенияСвойствОбъектов.Свойство" нет. Будут все возможные свойства связываться.
попробуй сначала создать две временные таблицы из этих регистров, выставив там все нужные условия, а потом уже объединяй их
Делал уже так, работает только дольше Вот запрос.
ВЫБРАТЬ
ЕСТЬNULL(РегСв_ЗначенияСвойствОбъектов.Свойство, "Нет данных") КАК СвойствоДоговора,
ЕСТЬNULL(РегСв_ЗначенияСвойствОбъектов.Значение, "Нет данных") КАК Подразделение,
РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Организация,
РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент,
РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента,
РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор,
РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток,
РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрПриход,
РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрРасход,
РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток,
РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДатаОбразования,
РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДнейЗадолжности
ИЗ
(ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Организация КАК Организация,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент КАК Контрагент,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор КАК Регистратор,
ВЫРАЗИТЬ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток КАК ЧИСЛО(15, 2)) КАК СуммаУпрНачальныйОстаток,
ВЫРАЗИТЬ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрПриход КАК ЧИСЛО(15, 2)) КАК СуммаУпрПриход,
ВЫРАЗИТЬ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрРасход КАК ЧИСЛО(15, 2)) КАК СуммаУпрРасход,
ВЫРАЗИТЬ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток КАК ЧИСЛО(15, 2)) КАК СуммаУпрКонечныйОстаток,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период КАК ДатаОбразования,
РАЗНОСТЬДАТ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор.Дата, &ДатаФормирования, ДЕНЬ) КАК ДнейЗадолжности
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачПериод, &КонПериод, Регистратор, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты) КАК РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ЗначенияСвойствОбъектов.Объект КАК Объект,
ЗначенияСвойствОбъектов.Свойство КАК Свойство,
ЗначенияСвойствОбъектов.Значение КАК Значение
ИЗ
РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
ТИПЗНАЧЕНИЯ(ЗначенияСвойствОбъектов.Значение) = ТИП(Справочник.Подразделения)
СГРУППИРОВАТЬ ПО
ЗначенияСвойствОбъектов.Объект,
ЗначенияСвойствОбъектов.Свойство,
ЗначенияСвойствОбъектов.Значение) КАК РегСв_ЗначенияСвойствОбъектов
ПО РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента = РегСв_ЗначенияСвойствОбъектов.Объект
ГДЕ
РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)
И (ТИПЗНАЧЕНИЯ(РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор) = ТИП(Документ.ПлатежноеПоручениеИсходящее)
ИЛИ ТИПЗНАЧЕНИЯ(РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор) = ТИП(Документ.РасходныйКассовыйОрдер))
И РегНак_ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток > 0
Показать
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот