Имя: Пароль:
1C
1С v8
Соединения в запросе
,
0 Stim
 
09.09.14
11:08
Есть табличная часть, в которой 12 реквизитов с типом мойДокумент.Ссылка

Нужно по каждому этому документу получить 3 свойства.

Есть ли более простой способ, чем 3*12 левых соединений с регистром сведений ЗначенияСвойствОбъектов?
1 Ёпрст
 
09.09.14
11:10
есть

Подзапрос (или создание временной) из 12 юнионов..
затем к нему(к ней) левое соединение к ЗначенияСвойствОбъектов
2 bolobol
 
09.09.14
11:11
Просто 12 соединений с выбором трёх реквизитов.
3 Stim
 
09.09.14
11:13
(2) тогда на каждый док будет 3 выборки.
А нужна одна: док свойство1 свойство2 свойство3
4 _fvadim
 
09.09.14
11:15
транспонируй тч, потом соединяй - будет одно соединение
5 Ёпрст
 
09.09.14
11:16
(3) одно соединение делай через or в условии присоединения (или через in (select фром списоквидовсвойств) +
case в основном селекте на получение 3-х видов свойств
6 _fvadim
 
09.09.14
11:16
ну и коммент про то, что есть архитектурный просчёт в базе, где в ТЧ документа 12 реквизитов с типом мойДокумент.Ссылка.
7 Stim
 
09.09.14
11:20
(6) таковы требования аналит учета.
лучше одна строка тч с 12 реквизитами, чем 12 строк
8 _fvadim
 
09.09.14
11:22
(7) где связь между требования учёта и кривыми руками?
9 Maxus43
 
09.09.14
11:22
эти 12 через Объеденить всё, в один столбец во временной, и одно соединение к свойствам со всеми доками
10 Stim
 
09.09.14
11:25
(8) узнаю одинесников))
Такая структура - самая оптимальная с учетом всех прочих задач, в том числе и кривых рук автора.

Вопрос лишь в том, как упростить и максимально ускорить запрос
11 _fvadim
 
09.09.14
11:28
(10) узнаю одинэсников))
я тут сплепил что-то из гмна и палок, как теперь сделать чтоб летало?
12 bolobol
 
09.09.14
11:33
(7) Правда всегда одна, это сказал фараон, он был очень умён... Просто - не обращай внимания, человек судит не ведая задачи - не докажешь), а по делу ему написать нечего

(10) А вот в СКД есть некая закладка Характеристики, она, по-моему, подобные задачи в ЗУП-е решает. Что-то типа выгрузки в банк заявки на ЗП-карту, где адрес расшифровывается по полям, ФИО, паспорт
13 Stim
 
09.09.14
11:34
(11) да, считай это так
(9) мне на выходе нужно получить одну строку по каждому доку с тремя свойствами. А ты предлагаешь все равно 3 строки на каждый док
14 bolobol
 
09.09.14
11:37
(13) Постой, одну строку по каждому доку со свойствами или одну строку из 12-ти доков с тремя свойствами для каждого?
15 Ёпрст
 
09.09.14
11:38
чем (1)+(5) не устраивает ?
16 Stim
 
09.09.14
11:41
(14) да, наверн не точно написал.. приношу извинения
нужна строка

док1 свойство1_1 свойство1_2 свойство1_3 док2 свойство2_1 свойство2_2 и т.д.
17 Ёпрст
 
09.09.14
11:46
(16) тебе надо 48 колонок ?
Извращенец..
18 _fvadim
 
09.09.14
11:47
(17) таковы требования аналит учета. ничо не пипишешь :)
19 _fvadim
 
09.09.14
11:47
*попишешь
20 _fvadim
 
09.09.14
11:48
(16) открой тайну - зачем?
21 _fvadim
 
09.09.14
11:49
12 доков - это по одному доку на каждый месяц?
22 Stim
 
09.09.14
11:51
(17) у меня 12 колонок( на каждый месяц) в табл поле, цвет текста с номером дока зависит от свойств дока. Раньше были колонки док и период, но вывод их в тп присоединением области был слишком громоздкий и медленный
23 _fvadim
 
09.09.14
11:52
(22) круто чо. подтверждает (6)
24 _fvadim
 
09.09.14
11:53
интересно, как можно громоздко и медленно выводить 12 документов?
25 Stim
 
09.09.14
11:55
(23) это подтверждает лишь вашу некомпетентность выносить необоснованные выводы при получении неполной информации и не более.
26 Stim
 
09.09.14
11:57
(24) по сабжу плз
27 _fvadim
 
09.09.14
11:58
(25) можно на ты. от ошибок конечно никто не застрахован, но мой опыт подсказывает, что структура базы далека от идеала, учитывая цирк с хранением и выборкой реквизитов.
28 Stim
 
09.09.14
12:09
(27) давай не будем меряться опытом.
29 Ёпрст
 
09.09.14
12:11
(28) ну тогда делай 12*3 case в селекте + 12 соединений в основном запросе к значениям свойств
30 Ёпрст
 
09.09.14
12:15
будет у тебя так
выбрать
выбор когда вася1.видсвойства = видсвойства1 Тогда вася1.значениесвойства иначе болт конец как док1Свойство1,

выбор когда вася1.видсвойства = видсвойства2 Тогда вася1.значениесвойства иначе болт конец как док1Свойство2,
.....
выбор когда вася12.видсвойства = видсвойства1 Тогда вася12.значениесвойства иначе болт конец как док12Свойство1

из документ.вася.табличка как док
левое соединение свойства как вася1 по вася1.видсвойства в (&СписокИзТрехСвойств) и вася1.объект=Док.Док1
...
левое соединение свойства как вася12 по вася12.видсвойства в (&СписокИзТрехСвойств) и вася12.объект=Док.Док12
31 Ёпрст
 
09.09.14
12:16
получишь свои 48 колонок..
32 Ёпрст
 
09.09.14
12:16
через 12 левых соединений
33 Крошка Ру
 
09.09.14
12:17
(27)(28) Не-не-не, давайте померьтесь, всем же хочется развлечений!
34 _fvadim
 
09.09.14
12:18
(33) у меня 22 :)
35 Stim
 
09.09.14
12:33
(30) да, только болты все нужно отсекать, при этом учитывая, что свойства может и не быть
36 Ёпрст
 
09.09.14
12:35
(35) че ????????

null туда воткни, ну или пустую ссылку чего надо или пустую строку или ноль..
есжели нет свойства
че как маленький
37 _fvadim
 
09.09.14
12:36
(36) ты плохо помогаешь, не стараешься :)
38 Stim
 
09.09.14
12:49
(36) если нет свойств вообще, все будет в болтах, и док отсечется
Если есть все свойства - будут 3 строки одинаковые со свойствами. Нет свойств - 1 строка с болтами.

тут только сгруппировать
39 Ёпрст
 
09.09.14
12:56
(38) ?
будет

док1  null null null док2 вася null null ...например

чего где отсечется ?
40 bolobol
 
09.09.14
13:15
С характеристиками не вышло? Чё как?