Имя: Пароль:
1C
1С v8
Запрос на поиск дублей
0 AlexeyVM
 
29.08.17
07:44
Добрый день!
Помогите пожалуйста разобраться с запросом.
Задача состоит в следующем. Мне надо проверить элементы выбранного справочника на наличие дублей по какому-нибудь конкретному полю (поле определяется из правил конвертации). Например - справочник "Номенклатура" синхронизация идет по полю "Код". Мне нужно в виде дерева вывести все элементы справочника, у которых совпадает код. Пишу запрос, чтобы найти дубли по этому полю.
ВЫБРАТЬ
    СУММА(1) КАК КоличествоДублей,
    Номенклатура.Код
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.ЭтоГруппа = Ложь

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

ИМЕЮЩИЕ
    СУММА(1) > 1


Выводит дублируемые элементы (их код).Как прицепить туда еще наименование, а лучше ссылку? И еще вопрос, как мне вывести запрос в виде дерева? Чтобы выглядело вот-так
Неуникальный код 1
      Элемент1          КодЭлемента1
      Элемент2          КодЭлемента2
      Элемент3          КодЭлемента3
На примере:
0000001
      Соль              0000001
      Сахар             0000001
0000002
      Мука              0000002
      Хлеб              0000002
1 shadow_sw
 
29.08.17
07:46
выбрать различные с группировкой код/наименование
2 AlexeyVM
 
29.08.17
07:51
Ой, запрос начальный выложил
ВЫБРАТЬ
    СУММА(1) КАК КоличествоДублей,
    Номенклатура.Код КАК Код
ПОМЕСТИТЬ ВТ_дубли
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.ЭтоГруппа = ЛОЖЬ

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

ИМЕЮЩИЕ
    СУММА(1) > 1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Номенклатура.Код КАК Код,
    Номенклатура.Ссылка
ИЗ
    ВТ_дубли КАК ВТ_дубли
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
        ПО ВТ_дубли.Код = Номенклатура.Код

СГРУППИРОВАТЬ ПО
    Номенклатура.Ссылка,
    Номенклатура.Код

УПОРЯДОЧИТЬ ПО
    Номенклатура.Код
3 AlexeyVM
 
29.08.17
07:54
(2) Результат запроса выводит
Соль  0000001
Сахар 0000001


А как сделать, чтобы было так:
0000001
    Соль  0000001
    Сахар 0000001
4 rmil
 
29.08.17
07:55
ВЫБРАТЬ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК КоличествоДублей,
    Номенклатура.Код КАК Код
......


ИТОГИ ПО
     Номенклатура.Код
5 shadow_sw
 
29.08.17
07:56
(4) вот он сча скопирует и ничему не научится
6 rmil
 
29.08.17
07:56
=)
7 Мимохожий Однако
 
29.08.17
07:58
Посмотри в УТ11 или БП3.0 обработку Поиск и замена дублей
8 AlexeyVM
 
29.08.17
08:27
(4)
Не понял что это даст, это же просто выведет список кодов с их количеством в справочнике?
9 AlexeyVM
 
29.08.17
08:44
Виноват, неправильно понял вначале, исправил
10 Xapac
 
29.08.17
08:46
Выбрать ВСЕДУБЛИ(Номенклатура.Ссылка)
из
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.ЭтоГруппа = Ложь

ничего придумывать не нужно
11 Redkiy
 
29.08.17
08:53
Ему в дереве нужно, тогда так ВСЕДУБЛИВДЕРЕВО(Номенклатура.Ссылка)
12 dezss
 
29.08.17
08:58
(2) тебе только добавить нужно

ИТОГИ ПО
    Номенклатура.Код

И все.
13 dezss
 
29.08.17
09:00
(11) Ты забыл добавить
ВСЕДУБЛИВДЕРЕВОИМЕНЕМНУРАОИЕВА(Номенклатура.Ссылка)
14 dezss
 
29.08.17
09:01
(13) +очипятка
ВСЕДУБЛИВДЕРЕВОИМЕНЕМНУРАЛИЕВА
15 Heckfy
 
29.08.17
09:32
Эээ, стесняюсь спросить, а чем типовая обработка не подходит? Там очень хороший функционал.
16 Chameleon1980
 
29.08.17
09:40
(15) дык ему просто запрос нужно, как я понял.
и дерево постоить

ИМХО правильный ответ - ключевое слово "итоги"
и параметры метода "Выгрузить" результата запроса.
17 AlexeyVM
 
29.08.17
12:08
(15) Потому что это в дальнейшем там придется все усложнить. В итоге должна получиться обработка, которая проверит сразу все справочники на наличие дублей по полям, по которым идет синхронизация справочника в правилах обмена. И далее в виде дерева покажет все неуникальные элементы справочников. Ну и там в дальнейшем еще некоторые мелочи
Независимо от того, куда вы едете — это в гору и против ветра!