Имя: Пароль:
1C
 
Запрос в 7.7 Поиск дублирующихся наименований.
0 Альберт_Уфа
 
07.02.08
13:51
Извиняюсь за возможно глупый вопрос, но я давно  не работал с 7-кой. Нужно найти дубли наименований. По идее этот запрос должен найти дубли, но почему-то не ищет. Что я делаю не так?

"//{{ЗАПРОС(Сформировать)
|Дисконты = Справочник.Дисконты.ТекущийЭлемент;
|Дисконты1 = Справочник.Дисконты.ТекущийЭлемент;
|Группировка Дисконты упорядочить по Дисконты.Наименование без групп;
|Условие(Дисконты1.Наименование = Дисконты.Наименование);
|Условие(Дисконты <> Дисконты1);
|"//}}ЗАПРОС
1 lea_220400
 
07.02.08
13:53
Это врятли взлетит
2 Альберт_Уфа
 
07.02.08
13:55
тогда как в 7.7 сделать поиск дублей? перебором справочника?
3 lea_220400
 
07.02.08
13:55
Тебе нужно перебрать справочник в справочнике и вывести элементы, либо построить тз по справочнику и свернуть, увидишь какие наименования дублируются и сколько раз.
4 Pahomich
 
07.02.08
13:56
(0) я без изысков, формировал ТаблицуЗначений, а уж там искал повторы.
5 Ёпрст2
 
07.02.08
13:55
(0) Всё.
6 Бамбук
 
07.02.08
13:57
зачем запрос? Выборка ,слив в 2 ТЗ,поиск в тз по наименованию
7 Pahomich
 
07.02.08
13:59
+4 Добавляешь к наименованию количественное поле, в нем каждому элементу присваиваешь 1, сворачиваешь по наименованию. В количественном поле будет количество повторов.
8 Альберт_Уфа
 
07.02.08
14:00
ну еще один вариант слить в ТЗ, отсортировать по наименованию и сравнивать с предыдущим, но мне кажется что это долго будет.
9 Diman_Kr
 
07.02.08
14:04
спр=СоздатьОбъект("Справочник."+ВыбСправочник.Вид());
   ТЗ=СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("Код");
   ТЗ.НоваяКолонка("Товар");
   спр.выбратьЭлементы();
   Пока спр.получитьЭлемент()=1 цикл
        ТЗ.НоваяСтрока();
        ТЗ.Код=Спр.Код;
        ТЗ.Товар=Спр.ТекущийЭлемент();
   КонецЦикла;                          
   ТЗ.Сортировать("Код");
   Для сч=-ТЗ.КоличествоСтрок() по -1 цикл
       Код=ТЗ.ПолучитьЗначение(-сч,"Код");
       ТЗ.УдалитьСтроку(-сч);      
       стр="";
       Если ТЗ.НайтиЗначение(Код,стр,"Код")>0 тогда
           Сообщить(Код);
       КонецЕсли;    
   КонецЦикла;    
Только вместо код -наименование.
10 Альберт_Уфа
 
07.02.08
14:15
(9) спаибо. поковыряюсь...