|
СКД: передача ВТ или Тз в СКД | ☑ | ||
---|---|---|---|---|
0
Snork
09.01.13
✎
22:29
|
Как передать в СКД ВТ или Тз?
|
|||
1
ДенисЧ
09.01.13
✎
22:30
|
Там есть источник данных объект. В книжке описано.
|
|||
2
Snork
09.01.13
✎
22:34
|
(1) Смотрел, если передам как объект, то данные этой Тз сразу попадают с результирующие поля СКД. Но у меня ВТ/Тз исключительно вспомогательная, результирующие данные принципиально другие.
|
|||
3
Snork
10.01.13
✎
13:14
|
up
|
|||
4
Snork
10.01.13
✎
13:33
|
ап
|
|||
5
evorle145
10.01.13
✎
13:35
|
Запрос1=Новый запрос;
Запрос1.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; МенеджерТаблицыДанных1 = Запрос1.МенеджерВременныхТаблиц; Запрос1.Текст="ВЫБРАТЬ |* |ПОМЕСТИТЬ ВТ_ТаблицаДанных1 |ИЗ |&таб КАК таб"; Запрос1.УстановитьПараметр("таб",Таб1); Запрос1.Выполнить(); ЗапросКбазеДанных = Новый Запрос; ЗапросКбазеДанных.МенеджерВременныхТаблиц = МенеджерТаблицыДанных1; ЗапросКбазеДанных.Текст = "ВЫБРАТЬ | ВТ_ТаблицаДанных1.КомНомер, | ВТ_ТаблицаДанных1.Модель, | Номенклатура.Ссылка, | Номенклатура.ЖобНомер |ПОМЕСТИТЬ ДляПустых |ИЗ | ВТ_ТаблицаДанных1 КАК ВТ_ТаблицаДанных1 | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура | ПО ВТ_ТаблицаДанных1.КомНомер = Номенклатура.ЖобНомер |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДляПустых.Ссылка, | ДляПустых.ЖобНомер, | ДляПустых.КомНомер, | ДляПустых.Модель |ИЗ | ДляПустых КАК ДляПустых |ГДЕ | ДляПустых.ЖобНомер ЕСТЬ NULL "; //ЗапросКбазеДанных.УстановитьПараметр("ВидНоменклатуры",Справочники.ВидыНоменклатуры.НайтиПоКоду("000000008")); //ПоложениеАМ = новый массив; //ПоложениеАм.Добавить(перечисления.ПоложениеАМ.Удален); //ПоложениеАМ.Добавить(перечисления.ПоложениеАМ.Продан); //ЗапросКбазеДанных.УстановитьПараметр("ПоложениеАМ",ПоложениеАМ); Рез = ЗапросКбазеДанных.Выполнить(); |
|||
6
evorle145
10.01.13
✎
13:35
|
как-то так
|
|||
7
evorle145
10.01.13
✎
13:39
|
Э, ошибся наверное. Это я скопировал для вставки ВТ в запрос
|
|||
8
Snork
10.01.13
✎
13:49
|
(5) не то
|
|||
9
alex-pro
10.01.13
✎
13:55
|
ВЫБРАТЬ
ВходящаяТЗ.Поле1 ПОМЕСТИТЬ ДанныеИзВходящейТЗ ИЗ &ВходящаяТЗ КАК ВходящаяТЗ ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ДанныеИзВходящейТЗ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДанныеИзВходящейТЗ.Поле1 ИЗ ДанныеИзВходящейТЗ КАК ДанныеИзВходящейТЗ |
|||
10
DexterMorgan
10.01.13
✎
13:57
|
(0) Никак нельзя, через источник объект или никак
|
|||
11
Snork
10.01.13
✎
13:58
|
(9) ты это пробовал в СКД?
|
|||
12
DexterMorgan
10.01.13
✎
13:59
|
(11) Я пробовал)
|
|||
13
DexterMorgan
10.01.13
✎
13:59
|
(11) Так низзя!)
|
|||
14
alex-pro
10.01.13
✎
14:02
|
Да, действительно, нельзя.
Получается, только (10) |
|||
15
Snork
10.01.13
✎
14:23
|
(14) не подходит (10), см. (2)
|
|||
16
alex-pro
10.01.13
✎
14:25
|
(15) А ограничить доступ к полям этой ТЗ не вариант?
|
|||
17
ИС-2
naïve
10.01.13
✎
14:25
|
(0) насколько помню, но ТЗ корме как объектом передать в СКД нельзя. Я формировал результирующую ТЗ и передавал ее как объект.
|
|||
18
DexterMorgan
10.01.13
✎
14:26
|
(15) Так я же и написал в (10) про источник объект
|
|||
19
wowik
10.01.13
✎
14:28
|
||||
20
Гений 1С
гуру
10.01.13
✎
14:56
|
тупой совет - закодировать данные текстом запроса.. но это извра
|
|||
21
Snork
10.01.13
✎
15:48
|
(19) опять не то. там переданный файл xml и является результирующей таблицей, СКД ее крутит-вертит. А у меня ВТ/Тз является вспомогательной таблицей, отличной от результирующей.
|
|||
22
Гений 1С
гуру
10.01.13
✎
16:19
|
(21) я ковырял, ковырял и в итоге забил.
может поковырять на тему вложенных СКД? |
|||
23
pessok
10.01.13
✎
16:22
|
хм... а если обычным пакетом, а перед инициализацией запроса вручную подпихнуть параметр?
|
|||
24
pessok
10.01.13
✎
16:23
|
или СКД не жрет
ИЗ &ВходящаяТЗ КАК ВходящаяТЗ |
|||
25
eklmn
гуру
10.01.13
✎
16:37
|
Не верю что ТЗ нельзя получить в том же СКД, че за извраты?
|
|||
26
pessok
10.01.13
✎
17:03
|
да вот мне имхается, что можно ее обычным параметром передать, как в любом пакетном запросе, но тестить ленииииво
|
|||
27
GANR
10.01.13
✎
17:13
|
(0) Никак, только (1) как обходной путь использовать можно.
|
|||
28
Snork
10.01.13
✎
19:01
|
up
|
|||
29
Snork
10.01.13
✎
19:12
|
(25) ты не понял проблемы
(27) см. (2) (22) чтобы использовать вложенные СКД надо вначале мои вспомогательные Тз/ВТ как то закинуть в СКД -- итого: получается, для СКД надо данные хранить где то в конфигурации, чтобы их запросом получать, а не через ТЗ. А это особенно печально когда конфигурация типовая и на полной поддержке - хотелось бы ее такой и оставить. С другой стороны: если кодом получить результирующую Тз, то это потеря производительности, т.к. все фильтр СКД будут накладывать после получения данных. |
|||
30
ilpar
10.01.13
✎
21:05
|
(29) "С другой стороны: если кодом получить результирующую Тз, то это потеря производительности, т.к. все фильтр СКД будут накладывать после получения данных."
чего? |
|||
31
eklmn
гуру
10.01.13
✎
21:07
|
(29) Да ну? Данные откуда в ТЗ?
|
|||
32
ilpar
10.01.13
✎
21:10
|
а, он другое имел ввиду )
|
|||
33
ilpar
10.01.13
✎
21:10
|
типа прочитал Эксель, отдал все в СКД, и типа отборы потом.
Непроизводительно )) |
|||
34
Snork
10.01.13
✎
22:12
|
(33) у меня данные получаются не из Excel, а из БД 1С. Там десятки тысяч исходных строк, которые надо свернуть в pivot
|
|||
35
DexterMorgan
11.01.13
✎
09:22
|
<<<итого: получается, для СКД надо данные хранить где то в конфигурации, чтобы их запросом получать, а не через ТЗ.
А это особенно печально когда конфигурация типовая и на полной поддержке - хотелось бы ее такой и оставить. С другой стороны: если кодом получить результирующую Тз, то это потеря производительности, т.к. все фильтр СКД будут накладывать после получения данных. Решение твоей проблемы есть, это формировать результирующую ТЗ и передавать ее в скд. Передать параметром ТЗ нельзя. Что ты хочешь? |
|||
36
bootini
11.01.13
✎
10:12
|
Я делал несколько макетов в СКД, туда передавал ТЗ их вертел как надо, результат получал тоже в виде ТЗ, а потом эти данные передавал в ОсновнуюСхемуКомпоновки им выводил в макет.
|
|||
37
Snork
11.01.13
✎
19:41
|
(35) Допустим в исходной тз 100000 строк данных. Пользователь наложил в СКД фильтр, который выводи всего 500 строк. Если делать как ты пишешь, то система отработает так: вначале получит всю тз со 100000 строк, потом потом передаем ее в скд и накладывает фильтр скд получаю 500 строк результата. Я же хочу сразу получать 500 строк результата, ибо важно производительность.
|
|||
38
Snork
11.01.13
✎
20:54
|
ап
|
|||
39
ilpar
11.01.13
✎
21:14
|
(37)
фигня, СКД по разному работает. Отборы и параметры |
|||
40
ilpar
11.01.13
✎
21:16
|
постановка все равно кривая, непонятно - консоль СКД в зубы и вперед.
Может поможет, раз более внятно постановки нет ))) |
|||
41
ilpar
11.01.13
✎
21:18
|
и курс Гилева по СКД еще раз пересмотреть ))
Мы с помощью СКД ведь можем, достать необходимые нам данные из 1С? Или что-то мешает? |
|||
42
Snork
11.01.13
✎
22:00
|
(41) мешает, вспомогательных исходных данных просто нет. по идее нужно добавить нов регистр, но конфа на полной поддержке, снимать из за 1 отчета не хочется.
|
|||
43
eklmn
гуру
11.01.13
✎
22:31
|
Чушь какая-то.
Получай свои 500 в СКД в чем проблема? Или автор до конца не говорит... СКД прекрасно справляется с большими объемами, просто СКД знать надо.. |
|||
44
y22-k
12.01.13
✎
04:41
|
(37) я иногда извращался читал отбор в cкд и писал функцию которая переводила crl отбор в отбор запроса для внешних данных это как вариант
|
|||
45
Snork
12.01.13
✎
07:27
|
(44) это как вариант остается
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |