Имя: Пароль:
1C
1С v8
Какой вид запроса оптимальней и правильней использовать? И почему ?
0 dfaa
 
04.05.12
13:54
1. Первый    

ТаблицаЗначений = Новый ТаблицаЗначений;
ТаблицаЗначений.Колонки.Добавить("А",Новый ОписаниеТипов("Строка"));
ТаблицаЗначений.Колонки.Добавить("В",Новый ОписаниеТипов("Строка"));
   
Стр = ТаблицаЗначений.Добавить();
Стр.А = "Отдел 1";
Стр.В = "Иванов";
   
Запрос = Новый Запрос("ВЫБРАТЬ
                 |    Таблица.А,
                 |    Таблица.В
                 |ПОМЕСТИТЬ ВТ1
                 |ИЗ
                 |    &Таблица КАК Таблица");
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;                      
Запрос.УстановитьПараметр("Таблица",ТаблицаЗначений);
Результат = Запрос.Выполнить();
   
Запрос1 = Новый Запрос("ВЫБРАТЬ * ИЗ ВТ1");
Запрос1.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
Результат1 = Запрос1.Выполнить().Выгрузить();


2 Второй


ТаблицаЗначений = Новый ТаблицаЗначений;
ТаблицаЗначений.Колонки.Добавить("А",Новый ОписаниеТипов("Строка"));
ТаблицаЗначений.Колонки.Добавить("В",Новый ОписаниеТипов("Строка"));
   
Стр = ТаблицаЗначений.Добавить();
Стр.А = "Отдел 1";
Стр.В = "Иванов";

Запрос = Новый Запрос("ВЫБРАТЬ
             |    Таблица.А,
             |    Таблица.В
             |ПОМЕСТИТЬ ВТ1
             |ИЗ
             |    &Таблица КАК Таблица
             |;
             |
             |////////////////////////////////////////////////////////////////////////////////
             |ВЫБРАТЬ
             |    ВТ1.А,
             |    ВТ1.В
             |ИЗ
             |    ВТ1 КАК ВТ1");
                         
Запрос.УстановитьПараметр("Таблица",ТаблицаЗначений);
Результат = Запрос.Выполнить().Выгрузить();
1 vicof
 
04.05.12
13:56
А сам как думаешь?
2 Ненавижу 1С
 
гуру
04.05.12
13:57
проще 2 (использую почти всегда его), но вариант 1 может быть более гибким
3 КМ155
 
04.05.12
13:58
(0) попробуй засунуть первый вариант в СКД или УФ
4 Stim
 
04.05.12
13:59
я за второй. он более читабелен
5 dfaa
 
04.05.12
14:00
с точки зрения производительности, для системы есть разница ? И почему в типовых конфигурациях используют только первый вариант ?
6 КМ155
 
04.05.12
14:01
(5)[И почему в типовых конфигурациях используют только первый вариант]
брехня
в УПП только пакетные запросы
7 Nagaru
 
04.05.12
14:01
Не вижу разницы, для системы они должны быть идентичны, ИМХО.
8 dfaa
 
04.05.12
14:04
(6) я имею ввиду используют в основном только МенеджерВременныхТаблиц
9 КМ155
 
04.05.12
14:05
(8) нет в УПП МенеджерВременныхТаблиц, этот аппендикс давно отпал
10 Александр Б
 
04.05.12
14:07
(5) с точки зрения производительности 2 вариант будет немного быстрее.
Т.к. на скуль отсылается один раз запрос. А при втором варианте их будет 2. Конечно, это доли секунды, но все же нагрузка больше.
11 Александр Б
 
04.05.12
14:07
+(10) "А при втором" = "А при первом"
12 Buster007
 
04.05.12
14:13
(9) оО. не неси чушь. Всё там есть.
13 azernot
 
04.05.12
14:17
МВТ нужен если одну и ту же временную таблицу предполагается использовать в 2-х и более запросах.
14 Ненавижу 1С
 
гуру
04.05.12
14:28
(13) вот