Имя: Пароль:
1C
1С v8
Поиск задублированных элементов
,
0 ХочуСпец
 
16.05.12
09:23
Есть Таблица значений

Код     Наименование
001     Номен1
002     Номен2
003     Номен1
004     Номен3
005     Номен2

Надо найти дубли (по Наименованию)

Т.е. эта таблица должна преобразоваться в:

Код    Наименование  НомерГруппыДубля
001    Номен1        "Группа 1"
003    Номен1        "Группа 1"
002    Номен2        "Группа 2"
005    Номен2        "Группа 2"
1 Wobland
 
16.05.12
09:26
соединяй само с собой по равенству наименований и неравенству кодов
2 ХочуСпец
 
16.05.12
09:31
(1) как заполнить колонку НомерГруппыДубля?
3 Wobland
 
16.05.12
09:32
(2) ТЗЛевая.Код
4 Maxus43
 
16.05.12
09:34
(3) я ваще не понял что это за данные в НомерГруппыДубля. явно не код
5 ХочуСпец
 
16.05.12
09:36
(4) не код конечно )
Это номер группы

Группа дублей 1
--- 001 Номен1
--- 003 Номен1
Группа дублей 2
--- 002 Номен2
--- 005 Номен2
6 ХочуСпец
 
16.05.12
09:37
что то наподобие в обработке ПоискИЗаменаДублирующихсяЭлементов с диска ИТС
7 Wobland
 
16.05.12
09:38
(5) ну пройдись потом по результату да проставь, что надо
8 ХочуСпец
 
16.05.12
09:38
(3) код элемента никакого отношения не имеет к номеру группы дубля
9 Maxus43
 
16.05.12
09:45
>>что то наподобие
так не пойдёт. физический смысл, критерии разбивки по группам объясни сначала
10 ХочуСпец
 
16.05.12
09:50
(9)

Объясняю
В таблице (0) есть две группы дублирующихся элементов

1-ая группа:
001 Номен1
003 Номен1

2-ая группа:
002 Номен2
005 Номен2

Понятно так?
11 Wobland
 
16.05.12
09:52
(10) нет. обходи результат и делай там всё, что хочешь и как хочешь
12 ХочуСпец
 
16.05.12
09:54
(11) ну как непонятно то? )
Каким то образом мне нужно группировать задублированные элементы. Этой группой и будет являться "Номер группы".
13 Maxus43
 
16.05.12
09:55
(10) ааа, ну Итог по Наименованию сделай. будет

Номен1:
001 Номен1
003 Номен1

Номен2:
002 Номен2
005 Номен2
14 ХочуСпец
 
16.05.12
09:56
(13) нет
Да я привел простой пример когда критерий поиска дублей по Наименованию. В общем случае критерий поиска может быть сложный
15 Wobland
 
16.05.12
09:57
(12) вот этот номер откуда? последовательно от 1 до ХХХ?
16 Maxus43
 
16.05.12
09:57
кури в поиске "Нумерация строк в запросе". Но лучше тупо при обходе результата подставляй что надо, ибо проще
17 szhukov
 
16.05.12
09:58
(0)ВЫБРАТЬ Наименование
Поместить ВТ_Дубли
ИЗ Т1
ГРУППИРОВАТЬ Наименование
ИМЕЮЩИЕ КОЛИЧЕСТВО(НАИМЕНОВАНИЕ)>1

А затем соединить временную таблицу с основной по наименованию  и отсортировать

Не?
18 ХочуСпец
 
16.05.12
09:58
(15) да
19 Wobland
 
16.05.12
09:59
(18) присоединяюсь к (11) и (16) ;)
20 Maxus43
 
16.05.12
10:05
>>Да я привел простой пример когда критерий поиска дублей по Наименованию. В общем случае критерий поиска может быть сложный
не проще переделать обработку (6)?
21 ХочуСпец
 
16.05.12
10:12
(20) не проще
Что ж вы за запросы то уцепились
алгоритм то наверное не сложный
22 Maxus43
 
16.05.12
10:16
почему уцепились? 2 раза сказали уже - при обходе результата чо хош делай и как хош называй свои группы
23 ХочуСпец
 
16.05.12
10:17
(22) Значит соединять таблицу саму с собой по внутреннему соединению?
24 Maxus43
 
16.05.12
10:20
зависит от критериев поиска. для наименования - хватит итогов по ним вобще)
да, соедниненяй по условиям своим
25 ХочуСпец
 
16.05.12
10:22
Вообще два условия:
1. Код + Наименование + Единица измерения (это повторы)
2. Если при одном и том же значении Код в двух и более позициях не совпадают значения хотя бы одного из полей Наименование или Единица измерения (это дубли)
26 Maxus43
 
16.05.12
10:25
Для начала - Итоги по коду, с условием что больше 1-го элемента внутри (ИМЕЮЩИЕ по количество(Ссыллка)). там погляди что выйдет и может дальше уже не запросом
27 hugo
 
16.05.12
10:25
дубли по наименованию

ВЫБРАТЬ
   Номенклатура.Наименование,
   СУММА(1) КАК КолДублей
ПОМЕСТИТЬ ВТ
ИЗ
   Справочник.Номенклатура КАК Номенклатура

СГРУППИРОВАТЬ ПО
   Номенклатура.Наименование
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТ.Наименование КАК Наименование,
   Номенклатура.Ссылка
ИЗ
   Справочник.Номенклатура КАК Номенклатура
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК ВТ
       ПО Номенклатура.Наименование = ВТ.Наименование
ГДЕ
   ВТ.КолДублей > 1
ИТОГИ ПО
   Наименование
28 hugo
 
16.05.12
10:29
(25) предполагаю что необходимо будет использовать три подзапроса по наименованию, коду, ед. измерения
29 ХочуСпец
 
16.05.12
10:31
(28) немного не так написал

Из общей таблицы надо выделить 2 таблицы:
1. Повторы (Код + Наименование + Единица измерения)
2. Дубли (Если при одном и том же значении Код в двух и более позициях не совпадают значения хотя бы одного из полей Наименование или Единица измерения)
30 hhhh
 
16.05.12
10:35
(29) код-то здесь зачем? Что у тебя там куча элементов с неуникальными кодами?
31 ХочуСпец
 
16.05.12
10:37
(30) Это не элементы. Таблица, сформированная из внешнего файла
32 hhhh
 
16.05.12
10:38
(31) и что за код там? Артикул? Или штрих-код?
33 ХочуСпец
 
16.05.12
10:42
(32) уфф ) это имеет большое значение?
34 hhhh
 
16.05.12
10:57
а нафига номера дублей раздавать? Кому это может пригодиться? Ведь достаточно сообщения: обнаружен дубль - строка такая-то.
35 ХочуСпец
 
16.05.12
10:59
(34) к сожалению не я постановщик задачи
Ошибка? Это не ошибка, это системная функция.