Имя: Пароль:
1C
1C 7.7
v7: Как убрать дубли данных в результате запроса?
🠗 (Волшебник 12.12.2024 22:27)
0 faring
 
12.12.24
14:57
Приветствую!
Задача:
выбрать за период доки продаж
отобрать по по определенной номенклатуре
получить список клиентов, исключить дубли так как этому клиенту есть не один док

Собственно код:

Процедура Clients()//Контрагенты
    Перем ЧЧ, ММ, СС;
    Поиск   = СоздатьОбъект("Справочник.Номенклатура");    
        Если поиск.НайтиПоКоду("ВБ018705") = 1 Тогда
        грУвелка = поиск.ТекущийЭлемент();
    Иначе
        возврат;
    КонецЕсли;
    ТД = ТекущаяДата();
    ТекущееВремя(ЧЧ, ММ, СС);
    ФайлИмя     = "clients";  
    стрИмяФайла = КаталогВыгрузки + "in\" + ФайлИмя + ".xml";
        xml_СоздатьФайл(стрИмяФайла);  
    xml_ЗаписатьННН("clients",,);
    ТекстЗапроса =
    "
    |Период с НачДата по КонДата;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Номенклатура = Документ.Реализация.Номенклатура;
    |РеализацияТоваров = Документ.Реализация.ТекущийДокумент;
    |Контрагент = Документ.Реализация.Контрагент;
    |ТочкаДоставки = Документ.Реализация.ТочкаДоставки;
    |Условие(Номенклатура в грУвелка);
    |Группировка Контрагент Упорядочить по Контрагент.Наименование;
    |Группировка РеализацияТоваров; ";

    Запрос = СоздатьОбъект("Запрос");
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда  
        сообщить("ОШИБКА!!!!(код 8)");
        Возврат;
    КонецЕсли;
1 DrShad
 
12.12.24
15:00
а дубли где?
2 Волшебник
 
12.12.24
15:00
Там нет дублей
3 mishaPH
 
12.12.24
15:08
(0)   |Группировка Контрагент БЕЗ ГРУПП Упорядочить по Контрагент.Наименование;


может это не дубль а выводит группы контрагентов спр
4 Builder
 
12.12.24
15:09
(3) Не, похоже он контрагентов из группировки по документам получает.
5 DrShad
 
12.12.24
15:13
может у него в справочнике есть элементы с одинаковым наименованием?
6 faring
 
12.12.24
15:14
Да, контрагенты из второй группировки....
7 DrShad
 
12.12.24
15:14
(6) бери из первой
8 skafandr
 
12.12.24
15:15
Непонятно зачем вторая группировка. Группировка Контрагент дает перечень таких контрагентов
9 skafandr
 
12.12.24
15:15
(6)Бред. Зачем?
10 mishaPH
 
12.12.24
15:17
(6) А, ну если он оставлять табличку по второй группировке, то, конечно. Тогда о каких дубаях он речь ведет, непонятно.

Если он хочет получить просто, кому продавал определенную группу товаров, то вторая группировка просто лишняя.
11 faring
 
12.12.24
15:19
(5) В справочнике нет дублей.
так как обход во второй группировке, а там есть несколько документов на одного и того же клиента, то и дубли идут
12 DrShad
 
12.12.24
15:20
(11) собирай в обходе по первой
13 faring
 
12.12.24
15:22
(8) А точку не дает, она в реализации
14 DrShad
 
12.12.24
15:23
(13) вот это поворот
15 DrShad
 
12.12.24
15:24
(13) перепиши запрос чтоб давала
16 faring
 
12.12.24
15:34
(15) То и спрашиваю... Тямки не хватат
как запрос переписать?
17 DrShad
 
12.12.24
15:37
(16) а где ты об этом спрашивал?
18 DrShad
 
12.12.24
15:37
не делай группировку по документам, сделай по ТТ
19 Fedor-1971
 
12.12.24
15:45
(16) Документ.Реализация.ТекущийДокумент.ТочкаРеализации;
Собственно, корректнее так сделать и для Контрагента, и для Номенклатуры
Добавь группировку по точкам реализации и без проблем их получишь в рамках контрагента
20 Builder
 
12.12.24
15:52
(19) у него задача "выбрать за период доки продаж"....
21 DrShad
 
12.12.24
15:55
(20) и в чем проблема? доки никуда не деваются
22 Builder
 
12.12.24
15:57
(21) Если группировку добавить, дублей будет еще больше :)
23 DrShad
 
12.12.24
15:58
(22) да с хера ли?
24 Builder
 
12.12.24
16:01
(23) Спроси у ТС откуда у него дубли :)
25 DrShad
 
12.12.24
16:02
(24) так уже выяснили откуда
26 faring
 
12.12.24
18:33
(19) СПС... все зашуршало.
Век живи - век учись....
27 skafandr
 
13.12.24
08:13
(26) Офигенно. Перечитайте (0) что Вы спросили.
Совет,не пишите никогда ТЗ - у Вас какая-то размытость сознания