Имя: Пароль:
1C
 
Подсчет количества дублей в справочнике
,
0 Просто Пользователь
 
03.02.16
22:56
Доброго времени суток!
Помогите пожалуйста с моей задачей, я, скажем так, новичек в программировании, время у меня на выполнение задачи ограничено, поэтому читать много источников не приходится, приходится сразу делать.
Существует иерархический справочник, мне нужно найти и посчитать количество дублей элементов. Вывести необходимо согласно иерархии. С первого раза все получилось,кроме количества дублей, оно считается неправильно. В инете нашла немного, но из того, что нашла, либо не подходит, либо совсем не работает. Возможно, что я не совсем понимаю механизм. Я создала запрос в СКД:

ВЫБРАТЬ
  Работы.Ссылка,
  ВложенныйЗапрос.Ссылка КАК ВложенныйЗапрос,
  КОЛИЧЕСТВО(*) КАК КоличествоДублей
ИЗ
  Справочник.Работы КАК Работы ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
  Работы.Ссылка КАК Ссылка
  ИЗ
    Справочник.Работы КАК Работы
  ГДЕ
    Работы.ПометкаУдаления = &Ложь,
    И Работы.ЭтоГруппа = &Ложь) КАК ВложенныйЗапрос
    ПО Работы.Ссылка <> ВложенныйЗапрос.Ссылка
      И Работы.Родитель.Ссылка = ВложенныйЗапрос.Ссылка.Родитель.Ссылка
      И Работы.Наименование = ВложенныйЗапрос.Ссылка.Наименование
      И Работы.КодОперации = ВложенныйЗапрос.Ссылка.КодОперации
      И Работы.Трудоемкость = ВложенныйЗапрос.Ссылка.Трудоемкость
    ГДЕ
      Работы.ПометкаУдаления = &Ложь
      И Работы.ЭтоГруппа = &Ложь

    СГРУППИРОВАТЬ ПО
    Работы.Родитель.Родитель.Наименование,
    Работы.Родитель.Наименование,
    Работы.Родитель.Родитель.Родитель.Наименование,
    Работы.Ссылка,
    ВложенныйЗапрос.Ссылка
1 Мимохожий Однако
 
03.02.16
22:58
Если мало времени, то возьми из типовой УТ10.3 соответствующую обработку по удалению дублей.
2 pessok
 
03.02.16
22:59
ВЫБРАТЬ
    ЗаданиеНаПеревозкуРаспоряжения.Распоряжение,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаданиеНаПеревозкуРаспоряжения.Ссылка) КАК Ссылка
ИЗ
    Документ.ЗаданиеНаПеревозку.Распоряжения КАК ЗаданиеНаПеревозкуРаспоряжения

СГРУППИРОВАТЬ ПО
    ЗаданиеНаПеревозкуРаспоряжения.Распоряжение

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаданиеНаПеревозкуРаспоряжения.Ссылка) > 1
3 pessok
 
03.02.16
23:02
ну и в левое соединение к своей таблице
4 pessok
 
03.02.16
23:03
это когда "нет времени думать, надо писать" :D
5 Просто Пользователь
 
03.02.16
23:04
МимохожийОднако
Спасибо. Я эту обработку не открывала, потому что предположила, что она количество не считает.
6 франц
 
03.02.16
23:04
Если мало времени, то возьми из типовой УТ10.3 соответствующую обработку по удалению дублей и из него код запроса
7 франц
 
03.02.16
23:04
(5) считает считает... еще и ссылки заменяет правильно..
8 Просто Пользователь
 
03.02.16
23:05
франц
Времени мало, а разобраться-то и самой написать хочется))Правда коряво...
Спасибо, тогда посмотрю сейчас))
9 Просто Пользователь
 
03.02.16
23:07
(4) Спасибо!Почти поняла)))Да-да, думать почти не приходится)
10 pessok
 
03.02.16
23:21
(9) для закрепления

ВЫБРАТЬ ПЕРВЫЕ 100
    Номенклатура.Ссылка КАК Номенклатура,
    ВложенныйЗапрос.Ссылка КАК КоличествоДублей
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВОЕСОЕДИНЕНИЕ (ВЫБРАТЬ
            Номенклатура.Артикул КАК Артикул,
            КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК Ссылка
        ИЗ
            Справочник.Номенклатура КАК Номенклатура
        
        СГРУППИРОВАТЬ ПО
            Номенклатура.Артикул
        
        ИМЕЮЩИЕ
            КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) > 1) КАК ВложенныйЗапрос
        ПО (Номенклатура.Артикул = ВложенныйЗапрос.Артикул)
ИТОГИ ПО
    Номенклатура ИЕРАРХИЯ
11 Просто Пользователь
 
03.02.16
23:55
(9)Спасибо!Пробовала до этого через ИТОГИ, СКД все время ругается на ИТОГИ. Сейчас попробую ваш вариант
12 zak555
 
03.02.16
23:56
зачем тебе это?
13 zak555
 
03.02.16
23:57
(10) а без вложения
14 Просто Пользователь
 
03.02.16
23:58
(12) Поверьте, если бы не нужно было бы, сейчас уже легла спать))
Это тестовое задание для приема на работу)
15 zak555
 
04.02.16
00:02
(14) кем работать собираешься?
16 1sanekmaloi1
 
04.02.16
00:02
Странно, фото в профиле нет, а столько помощников набежало.Миста уже не та...
17 Просто Пользователь
 
04.02.16
00:04
(15)программистом 1с, надеюсь в дальнейшем, книги как почитаю...)))
18 Просто Пользователь
 
04.02.16
00:06
Вы моя последняя надежда))))Два дня бьюсь...завтра сдавать)
19 zak555
 
04.02.16
00:07
(17)  так девочкам знания не нужны, главное экзаменатора завлечь
20 Просто Пользователь
 
04.02.16
00:11
(17) Ну совсем ничего не знать это нехорошо, потом же работать придется)
21 zak555
 
04.02.16
00:12
(20) так экзаменатор и будет за тебя работать
22 Просто Пользователь
 
04.02.16
00:13
(21)Руководитель отдела, думаю, вряд ли))
Не те времена пошли))
23 Просто Пользователь
 
04.02.16
00:14
(10)Не хочет он ИТОГИ принимать...
Ошибка в запросе набора данных
по причине:
{(30, 1)}: Синтаксическая ошибка
<<?>>ИТОГИ ПО
24 zak555
 
04.02.16
00:15
(22) так начни с допроса - женат или нет
25 Просто Пользователь
 
04.02.16
00:17
(24)Мы ушли от темы)))
Женат с ребенком, как и я))
26 zak555
 
04.02.16
00:19
(25)   т.е. уже знаешь о нём?
27 Просто Пользователь
 
04.02.16
00:21
(26) Конечно)
28 zak555
 
04.02.16
00:22
значит надо идти в другое место
29 Просто Пользователь
 
04.02.16
00:24
(28)где б столько мест взять, где меня ждут)))
30 zak555
 
04.02.16
00:26
надо тут дать объявление
31 Просто Пользователь
 
04.02.16
00:31
На сколько я знаю,здесь большинство продвинутых пользователей, и они в моих услугах по программированию не нуждаются)
32 zak555
 
04.02.16
00:39
а вдруг?
33 Просто Пользователь
 
04.02.16
00:47
))
Так ничего не получилось((Во сложенном запросе мне нужна ссылка, а если я ее беру, тогда отчет пуст.....
34 Другая
 
04.02.16
03:41
Убери итоги из запроса СКД.
Во вкладке "Настройки" нужно добавить новую группировку и установить значение "тип группировки" = Иерархия
Вроде должно так заработать
35 Просто Пользователь
 
04.02.16
14:35
(34) иерархию выводит в странном виде, с пустыми элементами и значениями их полей.
Я на одном форуме читала, что если во вложенном запросе передаешь ссылку, тогда условие
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) > 1)
никогда не выполняется, поэтому может таблица и пуста...
36 Просто Пользователь
 
04.02.16
14:46
В моем запросе проблема в том, что происходит попытка соединения справочника с самим собой, что ""приводит к проблеме получения дубль-записей "1 и 2", и "2 и 1"""
37 Просто Пользователь
 
04.02.16
15:36
Все получилось! Всем спасибо! Кому интересно:
ВЫБРАТЬ
    Работы.Ссылка,
    ВложенныйЗапрос.Ссылка КАК ВложенныйЗапрос,
    КОЛИЧЕСТВО(*) КАК КоличествоДублей
ИЗ
    Справочник.Работы КАК Работы
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(Работы.Ссылка) КАК Ссылка,
            Работы.Наименование
        ИЗ
            Справочник.Работы КАК Работы
        ГДЕ
            Работы.ПометкаУдаления = &Ложь
            И Работы.ЭтоГруппа = &Ложь
            СГРУППИРОВАТЬ ПО
                Работы.Наименование
            ИМЕЮЩИЕ Количество(Работы.Ссылка)>1) КАК ВложенныйЗапрос
        ПО Работы.Ссылка <> ВложенныйЗапрос.Ссылка
            И Работы.Родитель.Ссылка = ВложенныйЗапрос.Ссылка.Родитель.Ссылка
            И Работы.Наименование = ВложенныйЗапрос.Ссылка.Наименование
            И Работы.КодОперации = ВложенныйЗапрос.Ссылка.КодОперации
            И Работы.Трудоемкость = ВложенныйЗапрос.Ссылка.Трудоемкость
ГДЕ
    Работы.ПометкаУдаления = &Ложь
    И Работы.ЭтоГруппа = &Ложь

СГРУППИРОВАТЬ ПО
    Работы.Ссылка,
    ВложенныйЗапрос.Ссылка
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.