|   |   | 
| 
 | Группировка строк в запросе | ☑ | ||
|---|---|---|---|---|
| 0
    
        Janna26 14.09.20✎ 13:33 | 
        Добрый день всем. Не могу решить одну проблему. Очень прошу помощи. 
 Суть такая. Есть запрос к регистру сведений. вот пример ВЫБРАТЬ ДопСвойства.Ном КАК Ном, ВЫБОР КОГДА ДопСвойства.Свойство = ЗНАЧЕНИЕ(Перечисление.Свойства.Свойство1) ТОГДА ДопСвойства.Значение ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.Значения.ПустаяСсылка) КОНЕЦ КАК Значение1, ВЫБОР КОГДА ДопСвойства.Свойство = ЗНАЧЕНИЕ(Перечисление.Свойства.Свойство2) ТОГДА ДопСвойства.Значение ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.Значения.ПустаяСсылка) КОНЕЦ КАК Значение2 ИЗ РегистрСведений.ДопСвойства КАК ДопСвойства На выходе получаю таблицу https://ibb.co/qRdsLvT А мне нужно что бы таблица схлопывалась по номенклатуры, на примере ссылки что бы в первой строке было Ном1 Значение 1 Значение 2. Это реально сделать запросом или СКД? | |||
| 1
    
        ДенисЧ 14.09.20✎ 13:35 | 
        Два запроса и объединить все     | |||
| 2
    
        dka80 14.09.20✎ 13:39 | 
        (1) null или пустая ссылка со значением не схлопнутся
 Выбираешь номенклатуру и к ней двумя левыми соединениями свойства делаешь | |||
| 3
    
        Janna26 14.09.20✎ 13:44 | 
        (1) Так я тоже пробовала, не помогает. 
 (2) Через Левое соединение тоже. | |||
| 4
    
        dka80 14.09.20✎ 13:44 | 
        (3) не верю. Давай запрос     | |||
| 5
    
        Janna26 14.09.20✎ 13:47 | 
        (4) ВЫБРАТЬ
 ДопСвойства.Ном КАК Ном ПОМЕСТИТЬ Вт_товар ИЗ РегистрСведений.ДопСвойства КАК ДопСвойства ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Вт_товар.Ном КАК Ном, ДопСвойства.Значение КАК Свойство1, ДопСвойства1.Значение КАК Свойство2 ИЗ Вт_товар КАК Вт_товар ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДопСвойства КАК ДопСвойства ПО Вт_товар.Ном = ДопСвойства.Ном И (ДопСвойства.Свойство = ЗНАЧЕНИЕ(Перечисление.Свойства.Свойство1)) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДопСвойства КАК ДопСвойства1 ПО Вт_товар.Ном = ДопСвойства1.Ном И (ДопСвойства1.Свойство = ЗНАЧЕНИЕ(Перечисление.Свойства.Свойство2)) | |||
| 6
    
        dka80 14.09.20✎ 13:48 | 
        (5) мда...
 Ну хотя бы так поправь уж ВЫБРАТЬ различные ДопСвойства.Ном КАК Ном ПОМЕСТИТЬ Вт_товар ИЗ РегистрСведений.ДопСвойства КАК ДопСвойства | |||
| 7
    
        Janna26 14.09.20✎ 13:48 | 
        На выходе лучше результат, но теперь данные задваиваются, по тому что в регистре 3 измерения, а связь можно сделать только по 2     | |||
| 8
    
        Janna26 14.09.20✎ 13:49 | 
        (6) вот я дура.......     | |||
| 9
    
        Janna26 14.09.20✎ 13:58 | 
        (6) нет всё таки не дура :)) в общем так "различные срабатывают" но на маленькой выборке     | |||
| 10
    
        Ёпрст гуру 14.09.20✎ 13:59 | 
        (9) а чем маленькая от большой отличается в плане  (6) ?     | |||
| 11
    
        dka80 14.09.20✎ 14:00 | 
        (9) см (8), а потом результат временной таблицы выведи в консоль запросов и убедись, что в Вт_товар у тебя нет дублей, а если дубли есть, то убедись, что это точно дубли, а не разная номенклатура с одинаковым названием (например, по коду)     | |||
| 12
    
        Janna26 14.09.20✎ 14:00 | 
        (10) я просто в консоле проверила и мне показало правильно, потом когда начала разбираться то вышло что не так.     | |||
| 13
    
        lEvGl гуру 14.09.20✎ 14:05 | 
        если правильно понял суть запроса, то
 выбор когда свойство = перечисление Тогда когда свойство = перечисление2 иначе пустаяссылка зачем два запроса и зачем 2 когда разделены? при таком раскладе он будет дважды выбирать | |||
| 14
    
        Janna26 14.09.20✎ 14:05 | 
        (11) https://ibb.co/hKF7dVH вот результат выборки, https://ibb.co/Kh8mSS7 вот что в регистре. Получается что Ном2 Значение3 дублируется, так же у ном 1 Значение 2 дублируется     | |||
| 15
    
        lEvGl гуру 14.09.20✎ 14:06 | 
        (14) объедини два условия в одно     | |||
| 16
    
        lEvGl гуру 14.09.20✎ 14:07 | 
        эммм... все такие неправильно понял, с одной колонкой не пойдет?     | |||
| 17
    
        lEvGl гуру 14.09.20✎ 14:08 | 
        потом развернуть эту колонку в Колонки СКД     | |||
| 18
    
        dka80 14.09.20✎ 14:08 | 
        (14) это что за конфигурация??? 1С Бордель? Как у одной номенклатуры может быть несколько одинаковых свойств?     | |||
| 19
    
        Janna26 14.09.20✎ 14:08 | 
        (14) Нужно несколько колонок, а можно такое как нить на СКД сделать?     | |||
| 20
    
        Janna26 14.09.20✎ 14:09 | 
        (18) Это я для примера просто сделала.     | |||
| 21
    
        dka80 14.09.20✎ 14:09 | 
        И какой результат у тебя должен быть при таких значениях регистра? Выложи ожидаемый результат     | |||
| 22
    
        lEvGl гуру 14.09.20✎ 14:11 | 
        желание в (0) - ерунда, задача скорее всего в другом     | |||
| 23
    
        Janna26 14.09.20✎ 14:11 | 
        (21) результат должен быть такой https://ibb.co/pQKwfGB сколько строк в регистре столько значений и в таблице     | |||
| 24
    
        dka80 14.09.20✎ 14:13 | 
        А почему у тебя Свойство2 Значение2 встало рядом со Свойство1 Значение1, а не со Свойство1 Значение2? Чувствуешь, что у тебя добавляется элемент случайности в результате?     | |||
| 25
    
        Janna26 14.09.20✎ 14:15 | 
        (24) Это не особо важно, оно может встать с Значение 2 и Значение2, просто там было одно лишние, и надо как то это сделать. Может это можно как то решить через СКД?     | |||
| 26
    
        lEvGl гуру 14.09.20✎ 14:16 | 
        ну и разверни колонку в горизонталь в СКД     | |||
| 27
    
        lEvGl гуру 14.09.20✎ 14:16 | 
        на пересечении ресурс - значение     | |||
| 28
    
        lEvGl гуру 14.09.20✎ 14:19 | 
        и что то приведенный запрос не соответствует желаемому на картинке
 ВЫБРАТЬ Вт_товар.Ном КАК Ном, ДопСвойства.Значение КАК Свойство1, ДопСвойства1.Значение КАК Свойство2 ИЗ Вт_товар КАК Вт_товар ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДопСвойства КАК ДопСвойства ПО Вт_товар.Ном = ДопСвойства.Ном И (ДопСвойства.Свойство = ЗНАЧЕНИЕ(Перечисление.Свойства.Свойство1)) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДопСвойства КАК ДопСвойства1 ПО Вт_товар.Ном = ДопСвойства1.Ном И (ДопСвойства1.Свойство = ЗНАЧЕНИЕ(Перечисление.Свойства.Свойство2)) где тут значение? | |||
| 29
    
        Janna26 14.09.20✎ 14:20 | 
        (27) на СКД я решила вот так https://ibb.co/FV57Qt6 но это всё равно не правильно, по тому что там только по одной строке с номенклатурой, я добилась этого с помощью https://ibb.co/GRr7pyY     | |||
| 30
    
        Janna26 14.09.20✎ 14:21 | 
        (28) в таблицу попадают лишние данные     | |||
| 31
    
        Janna26 14.09.20✎ 14:24 | 
        (27) А если убрать с ресурса "ТаблицуЗначений" то СКД вывод всего 2 строки вместо 4-х https://ibb.co/FX5LLgW , не могу понять почему так происходит, но и детальные записи тоже ужасно выглядят.     | |||
| 32
    
        lEvGl гуру 14.09.20✎ 14:31 | 
        на этой картинке русским по белому https://ibb.co/pQKwfGB
 Номенклатура Свойство1 Свойство2 ведро 10 литров пластиковое ведро 15 литров хоть это и бредовое нечто, но получиться должно в скд Новая Таблица, в строках Номенклатура, в колонках Свойство, в ресурсах Значение, ресурс в выбранные поля для отчета | |||
| 33
    
        lEvGl гуру 14.09.20✎ 14:32 | 
        ну и запрос как в (13) писал     | |||
| 34
    
        Janna26 14.09.20✎ 14:34 | 
        (32) так не получается, я скриншот в (31) выложила, как это выгялядит. Должно быть
 ведро 10 литров пластиковое ведро 15 литров А получается ведро 10 литров пластиковое СКД каким то образом убирает нужные строки. | |||
| 35
    
        dka80 14.09.20✎ 14:38 | 
        Выбери все свойства1 и прономеруй строки
 Выбери все свойства2 и прономеруй строки Далее выбираешь номенклатуру и к ней левым соединением свойства1 по номенклатуре, а к свойства1 левым соединением свойства2 по номенклатуре и номеру строки | |||
| 36
    
        Janna26 14.09.20✎ 14:39 | 
        (33) вот запрос если делать через СКД https://yadi.sk/i/5t4bpACRo1TUkw вот так выглядят ресурсы https://yadi.sk/i/TRtU5f9pCbhRcA я убрала из выражения всё что бы не было количества скажем. Настройки самые примитивные https://yadi.sk/i/2IXg5HylMg9tsg и на выходе получаем фигню https://yadi.sk/i/2IXg5HylMg9tsg а если вместо ном вывести "Детальные записи" то таблица получается большой, что тоже не верно https://yadi.sk/i/GlJutiFIK0onjA     | |||
| 37
    
        Janna26 14.09.20✎ 14:47 | 
        (35) сделала 
 ВЫБРАТЬ РАЗЛИЧНЫЕ ДопСвойства.Ном КАК Ном ПОМЕСТИТЬ Вт_товар ИЗ РегистрСведений.ДопСвойства КАК ДопСвойства ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ДопСвойства.Ном КАК Ном, ДопСвойства.Свойство КАК Свойство, ДопСвойства.Значение КАК Значение, АВТОНОМЕРЗАПИСИ() КАК НомерСтроки ПОМЕСТИТЬ ВТ_свойство1 ИЗ РегистрСведений.ДопСвойства КАК ДопСвойства ГДЕ ДопСвойства.Свойство = ЗНАЧЕНИЕ(Перечисление.Свойства.Свойство1) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ДопСвойства.Ном КАК Ном, ДопСвойства.Свойство КАК Свойство, ДопСвойства.Значение КАК Значение, АВТОНОМЕРЗАПИСИ() КАК НомерСтроки ПОМЕСТИТЬ ВТ_свойство2 ИЗ РегистрСведений.ДопСвойства КАК ДопСвойства ГДЕ ДопСвойства.Свойство = ЗНАЧЕНИЕ(Перечисление.Свойства.Свойство2) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Вт_товар.Ном КАК Ном, ВТ_свойство1.Значение КАК Свойство1, ВТ_свойство2.Значение КАК Свойство2 ИЗ Вт_товар КАК Вт_товар ЛЕВОЕ СОЕДИНЕНИЕ ВТ_свойство1 КАК ВТ_свойство1 ЛЕВОЕ СОЕДИНЕНИЕ ВТ_свойство2 КАК ВТ_свойство2 ПО ВТ_свойство1.Ном = ВТ_свойство2.Ном И ВТ_свойство1.НомерСтроки = ВТ_свойство2.НомерСтроки ПО Вт_товар.Ном = ВТ_свойство1.Ном На выходе потерялась запись из Ном2 https://yadi.sk/i/70G_snfAbsbVwA | |||
| 38
    
        dka80 14.09.20✎ 14:52 | 
        Ну включи немножко голову. Я ж не вижу полностью, что ты хочешь сделать. Пропала ном2 потому что у него нет Свойства1, а я тебе написал левым соединением к Свойству1.     | |||
| 39
    
        Janna26 14.09.20✎ 14:56 | 
        (38) Так есть же свойство1 у Ном2, и я вроде так и сделала, К Номенклатуре левым соединением свойство 1 и к свойству 1 левым соединением Свойство 2     | |||
| 40
    
        Janna26 14.09.20✎ 14:59 | 
        (38) мне нужно вот как тут https://yadi.sk/i/MiH0-cuMvWT-xA вот это почти идеальный вариант, но при этом что бы Ном 1 и Ном 2 были двумя строками.     | |||
| 41
    
        Janna26 14.09.20✎ 15:09 | 
        Я всё равно уверена что это можно как то решить на уровне СКД, только вот как не понятно...     | |||
| 42
    
        Жан Пердежон 14.09.20✎ 15:34 | 
        Покажи регистр "ДопСвойства", откуда там несколько значений одного свойства для одной номенклатуры     | |||
| 43
    
        dka80 14.09.20✎ 15:36 | 
        (42) (14)     | |||
| 44
    
        Janna26 14.09.20✎ 15:37 | 
        (42) я примерно накидала, регистр, мне это нужно для немного другой задачи.     | |||
| 45
    
        Жан Пердежон 14.09.20✎ 15:50 | 
        (44) Почему у тебя в результате должно быть
 Ном1-Значение1-Значение2 Ном1-Значение2-NULL а не Ном1-Значение2-Значение2 Ном1-Значение1-NULL или не Ном1-Значение2-Значение2 Ном1-Значение1-Значение2 ? | |||
| 46
    
        Жан Пердежон 14.09.20✎ 16:05 | 
        последний запрос в (37):
 ВЫБРАТЬ ЕСТЬNULL(ВТ_свойство1.Ном, ВТ_свойство2.Ном) КАК Ном, ВТ_свойство1.Значение КАК Свойство1, ВТ_свойство2.Значение КАК Свойство2 ИЗ ВТ_свойство1 КАК ВТ_свойство1 ПОЛНОЕ СОЕДИНЕНИЕ ВТ_свойство2 КАК ВТ_свойство2 ПО ВТ_свойство1.Ном = ВТ_свойство2.Ном И ВТ_свойство1.НомерСтроки = ВТ_свойство2.НомерСтроки | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |