Имя: Пароль:
1C
1С v8
как правильно сделать запрос с таблицами значений?
,
0 Hipocrisy2013
 
21.06.13
12:25
вот так не работает:
выбрать
*
из &dgfghgh как уу
левое соединение &tggt как ууу
по уу.вв = ууу.аппп
1 Godofsin
 
21.06.13
12:26
Это чо вообще?
2 Godofsin
 
21.06.13
12:27
МВТ используй
3 Hipocrisy2013
 
21.06.13
12:29
что такое mbt?
4 kosts
 
21.06.13
12:30
(0) Такую временную таблицу нельзя сразу использовать
5 Godofsin
 
21.06.13
12:30
Менеджер временных таблиц.
6 kosts
 
21.06.13
12:31
(4)+ Т.е. разбей запрос на 3 запроса
7 Hipocrisy2013
 
21.06.13
12:31
есть у кого нить небольшой пример?
8 kosts
 
21.06.13
12:33
выбрать
*
Поместить уу
из &dgfghgh как уу
;
выбрать
*
Поместить ууу
из &tggt как ууу
;
выбрать
*
из уу
левое соединение ууу как ууу
по уу.вв = ууу.аппп
9 ДенисЧ
 
21.06.13
12:33
выбрать *
ПОМЕСТИТЬ вт1
из &парам1 как парам1;
выбрать *
ПОМЕСТИТЬ вт2
из &парам2 как парам2;

выбрать вт1.*
из вт1
левое соединение вт2
по вт1.п1 = вт2.п2
10 Godofsin
 
21.06.13
12:33
МВТ = Новый МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц = МВТ;
....
выбрать
*
Поместить МояПерваяВТ
из &dgfghgh как уу;
////////////////////
выбрать
*
Поместить МоявтораяВТ
из &tggt как ууу
///////////////////
Выбрать
*
из МояПерваяВТ КАК МояПерваяВТ
ЛевоеСоединение
МояВтораяВТ Как МояВтораяВТ
ПО
по МояПерваяВТ.вв = МояВтораяВТ.аппп
11 Godofsin
 
21.06.13
12:33
(8) (9) хах)))
12 Deon
 
21.06.13
12:34
я тоже почти дописал
13 semiluki
 
21.06.13
12:34
Запрос = Новый Запрос;
       Запрос.Текст = "Выбрать ТЗ.*
       |Поместить ТЗ
       |Из &ТЗ Как ТЗ
       |;
       |Выбрать ТЗ.*
       |Из ТЗ Как ТЗ
       |Где ТЗ.Номенклатура В(&ФильтрПоНоменклатуре)";
       Запрос.УстановитьПараметр("ТЗ",МояТЗ);
       Запрос.УстановитьПараметр("ФильтрПоНоменклатуре",МойФильтр);
14 Godofsin
 
21.06.13
12:35
+(10) Запрос.УстановитьПараметр("dgfghgh", МояПерваяТЗ);
15 kosts
 
21.06.13
12:35
МенеджерВременныхТаблиц нужен, если запрос будет выполнятся отдельными вызовами Выполнить().
16 Deon
 
21.06.13
12:36
(14) А 2ю? )))
17 Godofsin
 
21.06.13
12:36
(15) Я по привычке)
18 Godofsin
 
21.06.13
12:36
(16) Думаю догадается )))
19 Mitriy
 
21.06.13
12:39
(15) менеджер нужен только тогда, когда надо выполнять много разных запросов, использующих одни и те же временные таблицы... ну, или если временные таблицы формируются в разных местах...
20 kosts
 
21.06.13
12:40
Может кто знает, можно МенеджерВременныхТаблиц переприсваивать другому запросу?

Запрос.Выполнить();
Запрос2.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
21 Mitriy
 
21.06.13
12:42
(20) да
22 Deon
 
21.06.13
12:45
А при переходе с сервера на клиент, а потом обратно на сервер можно сохранить МВТ первого серверного вызова?
23 Mitriy
 
21.06.13
12:47
(22) попробуй через временное хранилище...
24 Deon
 
21.06.13
12:49
(23) Ну, наверно, прокатит, ТЗ же нормально можно хранить. Пробовать лень )
25 fisher
 
21.06.13
12:51
Не прокатит. Болт вам, а не хранение временных таблиц между серверными вызовами.
26 Mitriy
 
21.06.13
12:54
(25) а если формирование запихать в общий модуль с повторным использованием?
27 fisher
 
21.06.13
13:00
(26) Не даст, кажись. Как я только не извращался когда-то. Какие горы можно было бы ворочать! Но тут на особенности работы с сиквелом завязано. Обычные временные таблицы, не глобальные, уничтожаются при завершении соединения с БД. А при завершении серверного вызова завершается и соединение с БД.
28 fisher
 
21.06.13
13:03
Вернее так - как я понимаю, по дефолту каждый запрос к БД формируется отдельным соединением. МВТ - это просьба придержать соединение с БД и способ выполнить очередной запрос в этом же соединении. Способов придержать соединение с БД между серверными вызовами я не нашел. Судя по всему, они таки закрываются при завершении серверного вызова в любом случае.
29 fisher
 
21.06.13
13:05
Вообще МВТ - глупый объект, маскирующий суть происходящего и усложняющий работу платформы. Оформили бы честную работу с соединениями - глядишь и был бы способ.
30 Mitriy
 
21.06.13
13:13
понятно...
31 Deon
 
21.06.13
13:15
прикольно, спасибо
32 Pro-tone
 
21.06.13
13:21
(29) и без типизации колонок