|
Группировка строк в запросе | ☑ | ||
---|---|---|---|---|
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.НомерСтроки |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |