Удаление дублей из таблицы значений

1. user1809279 31.10.24 13:47 Сейчас в теме
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
                   |    СчетНаОплатуПокупателю.Ссылка КАК ДокументСчета,
                   |    ДоговорыКонтрагентов.Ссылка КАК Договор,
                   |    ДоговорыКонтрагентов.Владелец КАК Контрагент,
                   |    ДоговорыКонтрагентов.Владелец.ИдентификационныйКодЛичности КАК ИИН,
                   |    ДоговорыКонтрагентовУслуги.Номенклатура КАК Номенклатура,
                   |    СУММА(ДоговорыКонтрагентовУслуги.Сумма) КАК КВыставлению,
                   |    ДоговорыКонтрагентов.ВалютаВзаиморасчетов КАК Валюта
                   |ИЗ
                   |    Справочник.ДоговорыКонтрагентов.Услуги КАК ДоговорыКонтрагентовУслуги
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
                   |            ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
                   |            ПО ДоговорыКонтрагентов.Ссылка = СчетНаОплатуПокупателю.ДоговорКонтрагента
                   |        ПО ДоговорыКонтрагентовУслуги.Ссылка = ДоговорыКонтрагентов.Ссылка
                   |ГДЕ
                   |    ДоговорыКонтрагентов.ЭтоБиллинг = ИСТИНА
                   |    И ДоговорыКонтрагентов.ДатаНачалаДействияДоговора = &НачалоПериода
                   |    И ДоговорыКонтрагентов.Организация = &Организация
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    СчетНаОплатуПокупателю.Ссылка,
                   |    ДоговорыКонтрагентов.Ссылка,
                   |    ДоговорыКонтрагентов.Владелец,
                   |    ДоговорыКонтрагентов.Владелец.ИдентификационныйКодЛичности,
                   |    ДоговорыКонтрагентовУслуги.Номенклатура,
                   |    ДоговорыКонтрагентов.ВалютаВзаиморасчетов";
    
    Запрос = Новый Запрос;
    Запрос.Текст = ТекстЗапроса;
Запрос.Параметры.Вставить("НачалоПериода", ОбработкаОбъект.НачПериода);
Запрос.Параметры.Вставить("КонецПериода", КонецДня(ОбработкаОбъект.КонПериода));
Запрос.Параметры.Вставить("Организация", Справочники.Организации.НайтиПоКоду("000000002"));
    
    ДанныеТФ.Загрузить(Запрос.Выполнить().Выгрузить());
    
Показать

Здравствуйте, при заполнении таблицы значений отображаются по некоторым контрагентам дубли, как можно это исправить?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. starik-2005 3167 31.10.24 14:01 Сейчас в теме
(1)
при заполнении таблицы значений отображаются по некоторым контрагентам дубли, как можно это исправить?
Ну, наверное, убрать одинаковые услуги из договоров контрагентов.
3. user1809279 31.10.24 14:21 Сейчас в теме
(2) Договора все разные и услуги тоже, одна и та же строка задваивается просто
4. LeeAreHim 31.10.24 15:05 Сейчас в теме
(3) Скрин Результата запроса (ДанныеТФ.Загрузить(Запрос.Выполнить().Выгрузить());)
там где задваивается.
Можете выложить, а то может (1) все таки прав.
5. user1809279 31.10.24 15:10 Сейчас в теме
(4) Вот пример по одному, это один и тот же контрагент, он в результате задваивается
Прикрепленные файлы:
7. LeeAreHim 31.10.24 15:20 Сейчас в теме
(5) А сколько счетов на оплату этому контрагенту всего есть?
У Вас не никаких ограничений на Документ.СчетНаОплатуПокупателю. И весьма возможно, что таких документов 3 штуки за весь период ведения учета по такому договору (Без договора).
Попробуйте в секции "ГДЕ" добавить
| И Документ.СчетНаОплатуПокупателю.Проведен
| И Документ.СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода
9. user1809279 31.10.24 15:44 Сейчас в теме
(7) С такими условиями не выводятся тогда данные
10. LeeAreHim 01.11.24 08:29 Сейчас в теме
(9)
 |ИЗ
                   |    Справочник.ДоговорыКонтрагентов.Услуги КАК ДоговорыКонтрагентовУслуги
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
                   |            ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
                   |            ПО ДоговорыКонтрагентов.Ссылка = СчетНаОплатуПокупателю.ДоговорКонтрагента
                   |        ПО ДоговорыКонтрагентовУслуги.Ссылка = ДоговорыКонтрагентов.Ссылка

В этом участке кода уберите одно левое соединение
 |ИЗ
                   |    Справочник.ДоговорыКонтрагентов.Услуги КАК ДоговорыКонтрагентовУслуги
                   |            ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
                   |        ПО ДоговорыКонтрагентовУслуги.Ссылка = ДоговорыКонтрагентов.Ссылка
11. odinsmot 01.11.24 08:39 Сейчас в теме
(10) Плюс на время отладки добавь поле ДоговорыКонтрагентовУслуги.НомерСтроки
8. user2107184 31.10.24 15:22 Сейчас в теме
(5) Так это не результат запроса. Тут есть поля, которых в запросе нет.
И тут меньше полей, чем в запросе. Отсюда вывод - задваиваются поля, отсутствующие на твоем скрине.
6. Bukaska 147 31.10.24 15:19 Сейчас в теме
Вы даете договоры контрагентов левое соединение сами с собой? Или это два разных справочника?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот