Имя: Пароль:
1C
 
Как добавить условие на Итоги?
0 program345
 
07.10.25
12:48
Доброго времени суток!
1. Есть справочник (скрин 1). В нем есть неуникальные данные.
2. сформировал запрос

ВЫБРАТЬ
	Справочник2.Наименование КАК Наименование,
	Справочник2.Ссылка КАК Ссылка
ИЗ
	Справочник.Справочник2 КАК Справочник2
ИТОГИ
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Справочник2.Ссылка) КАК Ссылка
ПО
	Наименование


Но он показывает все, как поставить условие на дубли?
1 Волшебник
 
07.10.25
12:49
Плохое имя справочника
2 ldo6
 
07.10.25
12:49
Группировка Имеющие
3 ldo6
 
07.10.25
12:50
Условий на итоги нет.
4 program345
 
07.10.25
12:53
(2) про Групировку и Имеющие знаю, просто как-то делал условия на итоги и забыл.

могу конечно так сделать:

ВЫБРАТЬ
	Справочник2.Наименование КАК Наименование,
	Справочник2.Ссылка КАК Ссылка
ИЗ
	Справочник.Справочник2 КАК Справочник2

УПОРЯДОЧИТЬ ПО
	Ссылка УБЫВ
ИТОГИ
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Ссылка)
ПО
	Наименование


но это выводит лишние данные...
5 ldo6
 
07.10.25
13:03
Какие лишние? Одинаковых ссылок быть не может по идее.
6 Волшебник
 
07.10.25
13:09
(5) Вероятно, хочет найти дубли элементов с одинаковыми наименованиями.

Сначала надо сделать выборку наименований, где количество ссылок > 1, потом выбрать ссылки

ВЫБРАТЬ Наименование
ПОМЕСТИТЬ ДублиНаименований
ИЗ Спр.Спр
СГРУППИРОВАТЬ ПО Наименование
ИМЕЮЩИЕ Количество(*) > 1
;
ВЫБРАТЬ Ссылка
ИЗ Спр.Спр
ГДЕ Наименование В (ВЫБРАТЬ Наименование ИЗ ДублиНаименований);
7 Garykom
 
гуру
07.10.25
13:12
А теперя вопрос
Что делать если "Наименование" неограниченной длины?
8 Garykom
 
гуру
07.10.25
13:13
(7)+ Обрезать просто так низзя
Допустим мы не знаем максимальную
9 Garykom
 
гуру
07.10.25
13:15
(7) Вопрос с подковыркой, решать надо одним запросом (понятно с ВТ) без кода и формирования текстов запросов кодом
10 RomanYS
 
07.10.25
13:20
(7)(8) сферический конь в вакууме...
Соединение по ПОДОБНО тебя спасёт, но вендор так делать не рекомендует
11 toypaul
 
гуру
07.10.25
13:20
(7) в справочнике неограниченной? садись 2 :)
12 Волшебник
 
07.10.25
13:21
(7) максимум 150 символов
13 program345
 
07.10.25
13:26
(5) лишние это элементы без дублей.

(6)

а так не проще:

ВЫБРАТЬ
	Справочник2.Наименование КАК Наименование,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Справочник2.Ссылка) КАК КоличествоДублей
ИЗ
	Справочник.Справочник2 КАК Справочник2

СГРУППИРОВАТЬ ПО
	Справочник2.Наименование

ИМЕЮЩИЕ
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Справочник2.Ссылка) > 1
14 Волшебник
 
07.10.25
13:25
(13) а работает?
15 Мультук
 
гуру
07.10.25
13:26
(14)

Может ему на выходе не ссылки, а наименования нужны.
А наименования он потом руками сунет в обработку "Дедубликация дубликантов"
16 Garykom
 
гуру
07.10.25
13:27
(11) специально в кавычки взял
не обязательно дубли по наименованию справочника искать, можно по произвольному реквизиту и не только справочников
17 program345
 
07.10.25
13:34
(14) Да. Правда ссылки нет. Есть просто Наименования дублей.
18 Garykom
 
гуру
07.10.25
13:30
(10) К сожалению не сферический а довольно часто встречаются проблемы в запросах с полями Строка(0)
Через Подобно это изврат
Суть выяснить в запросе макс длина и обрезать разом

Либо первым шагом быстро находим вероятные дубли по обрезке (например до 100 символов), закидываем в ВТ
А затем используем медленные методы для полного сравнения
19 Garykom
 
гуру
07.10.25
13:31
(18)+ Еще можно посчитать хеш ))
И быстро сравнивать по нему
20 Волшебник
 
07.10.25
13:32
(17) ну тогда уберите РАЗЛИЧНЫЕ и будет норм
21 Garykom
 
гуру
07.10.25
13:36
Кстати чем не устраивает классика с построением ВТ
Куда засовываем только Наименования и колонку КоличествоДублей=1
Затем группируем
И сразу видим кол-во дублей
Затем уже по наименованиям отбираем нужные ссылки
22 Волшебник
 
07.10.25
13:36
(21) см (6)
23 Garykom
 
гуру
07.10.25
13:37
(22) Таки у тебя немного иное, колво дублей не сохраняется в ВТ
24 RomanYS
 
07.10.25
13:38
(18) "Суть выяснить в запросе макс длина и обрезать разом"
Пример будет рабочий?
Как обрезать будешь?
ПОДСТРОКА не избавляет от полей неограниченной длины,
а ВЫРАЗИТЬ как Строка не работает с длинами больше 1024
25 Волшебник
 
07.10.25
13:41
(23) А кто сказал, что оно нам надо? И кто вообще сказал, что мы ищем дубли?
26 Garykom
 
гуру
07.10.25
13:45
(24) Нене >1024 для сравнения/поиска дублей это только через хеши
Речь <1024 но надо обрезать неограниченные до "минимального максимума" через ВЫРАЗИТЬ как СТРОКА чтобы быстрей работало
27 program345
 
07.10.25
14:05
(21) получается если ссылки нужны тогда так:

ВЫБРАТЬ
	Справочник2.Наименование КАК Наименование
ПОМЕСТИТЬ ВременнаяТаблицаДублиСправочников
ИЗ
	Справочник.Справочник2 КАК Справочник2

СГРУППИРОВАТЬ ПО
	Справочник2.Наименование

ИМЕЮЩИЕ
	КОЛИЧЕСТВО(*) > 1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	Справочник2.Ссылка КАК Ссылка
ИЗ
	Справочник.Справочник2 КАК Справочник2
ГДЕ
	Справочник2.Наименование В (ВЫБРАТЬ
	ВременнаяТаблицаДублиСправочников.Наименование КАК Наименование
ИЗ
	ВременнаяТаблицаДублиСправочников КАК ВременнаяТаблицаДублиСправочников)
;


Или можно Итоги, но тут будет условие на количество.

Всем спасибо!
28 RomanYS
 
07.10.25
13:52
(26) Тогда и обрезай до 1024. Или прямо готов дать пример, когда заметно быстрее будет?

+попробовал резать до 1024 и до 100, разницы в скорости выше погрешности нет.
Объем правда смешной - 8к документов
29 Волшебник
 
07.10.25
13:52
(27) ВременнаяТаблица - плохое имя
30 Garykom
 
гуру
07.10.25
14:43
(28) Да там действительно разница в пределах секунд