Имя: Пароль:
1C
1С v8
Выбрать или Запрос
0 igoza
 
25.07.14
13:30
Какой вариант лучше(надёжнее) использовать??? ГДЕ-ТО читал, что Вариант 1 не корректен или отрабатывает не так или не работает, но пока не встречал таких случаев.


//Вариант 1.
Отбор = Новый
Отбор.Вставить("Заход", ЭтотОбъект.Заход);
Результат = РегистрыНакопления.ЗаданияНаПроизводство.Выбрать(,,Отбор);

//ИЛИ

//Вариант 2.
Запрос = Новый Запрос;
            Запрос.Текст = "ВЫБРАТЬ
            |    НарядыЗадания.Регистратор
            |ИЗ
            |    РегистрНакопления.НарядыЗадания КАК НарядыЗадания
            |ГДЕ
            |    НарядыЗадания.Заход = &Заход";
            Запрос.УстановитьПараметр("Заход", ЭтотОбъект.Заход);
            Результат = Запрос.Выполнить().Выбрать();
1 Крошка Ру
 
25.07.14
13:31
(0)А в чем отличия?
2 Крошка Ру
 
25.07.14
13:31
Я имею в виду - на более низком уровне
3 f_vadim
 
25.07.14
13:33
В запросе можно пририсовать "РАЗРЕШЕННЫЕ", а в выборе нельзя, а это не по фэншую.
4 igoza
 
25.07.14
13:35
(3) я не про это, а про то что РегистрыНакопления.ЗаданияНаПроизводство.ВЫБРАТЬ(,,Отбор) не корректно работает и бывают ли такие случаи, мне сомнения разогнать
5 Defender aka LINN
 
25.07.14
13:39
(0) Ничего, что эти варианты возвращают разные результаты?
6 Крошка Ру
 
25.07.14
13:44
(4)Давай так: ты скажешь что ты понимаешь под некорректностью, а мы тебе скажем, где об этом можно почитать.
7 Cube
 
25.07.14
13:47
(0) Запрос работает быстрее. В очень редких случаях с такой же скоростью, как обычный код.
Обычный код работает медленнее. В очень редких случаях с такой же скоростью, как запрос.
8 igoza
 
25.07.14
13:47
(5) блин не потолкается свои мысли до вас, мне плевать что они возвращают

Что бы получить данные в первом случае воспользовался ВЫБРАТЬ во втором ЗАПРОС, и сам мой вопрос в первом случае где используется ВЫБРАТЬ бывают ли такие случае когда результат бывает не корректен, не те результаты или данные, отбор не сработал? или мне пора перестать всякую гадость читать
9 Cube
 
25.07.14
13:48
(8) Тебе пора перестать всякую гадость читать
10 Cube
 
25.07.14
13:51
11 Cube
 
25.07.14
13:51
+(10) Пост 131 и далее.
12 Крошка Ру
 
25.07.14
13:52
(8) В жизни всё бывает. Поэтому я за то, чтоб ты продолжал читать всякую гадость. Ну просто, чтоб быть во всеоружии.
13 igoza
 
25.07.14
13:54
(11) (10) (9) Спасибо)
(12) ещё бы знать как отличить что гадость, а что нет
14 le_
 
25.07.14
13:57
(0) Запрос гибче.
Выборкой (п.1) можно отбирать только по измерениям/реквизитам, для которых установлено индексирование. И возможно установить только один параметр, и вид сравнения только "Равно".
15 Крошка Ру
 
25.07.14
14:04
(14) Зато с выборкой регистра можно сразу работать, а выборку из запроса - только прочитать
16 Defender aka LINN
 
25.07.14
14:08
(8) Если тебе плевать, что метод возвращает - какая тогда вообще разница?
17 hhhh
 
25.07.14
14:24
(13) очень просто отличить:

Выбрать(,,Отбор); - это гадость. Бяка
запрос - нет.
18 Defender aka LINN
 
25.07.14
14:25
(15) И как же ты с ней собрался *работать*?
19 dj_serega
 
25.07.14
14:26
Как вариант "запрос" выбирает все записи а "выбрать" читает динамически. разве нет? =)
20 osa1C
 
25.07.14
14:45
(0) очевидно, что лучше всегда использовать запрос. Он отрабатывает быстрее, его можно легко перенастроить, в случае если постановка задачи скорректирована.
21 PRO100 NigGaZ
 
25.07.14
14:49
А отбор по нескольким полям разве работает при Выбрать()? Мне кажется запрос решает, в нем можно поставить любое условие и во многих случаях сделать вычисления
22 Крошка Ру
 
25.07.14
15:13
(18) А что, никак, да?  
Чорд!!! (((
23 Крошка Ру
 
25.07.14
15:15
(18) Ну у РС можно из позиции выборки менеджер записи получить
24 Classic
 
25.07.14
15:22
(7)
Запрос работает быстрее, чем что?

После выполнения запроса надо выбрать из результата запроса.
Будет ли выборка из результата запроса быстрее выборки из ВЫБРАТЬ?
25 osa1C
 
25.07.14
15:26
(24) в 95% случаев да!!! в 5% оставшихся скорость будет одинакова
26 Крошка Ру
 
25.07.14
15:29
(24) В первом случае выбирается все поля регистра, во втором - только нужные. Так что скорее всего да.
27 Холодильник
 
25.07.14
15:32
работает одинаково, но запрос отжирает оперативку
28 John83
 
25.07.14
15:38
(27) выборка тоже отжирает, но частями
29 Defender aka LINN
 
25.07.14
16:59
(24) Выборка - быстрее. Полный обход - медленнее. Такой вот фокус.
(23) У регистра накопления, rly?
30 Immortal
 
25.07.14
17:01
Выбрать - для семерочников
Адаптационный механизм.
Запрос - для православный восьмерочников, знающих, чем Выбрать отличается от запроса.
31 John83
 
25.07.14
17:03
(30) лично я Выбрать использую для одноразовых обработок, т.к. меньше телодвижений получается
32 Крошка Ру
 
25.07.14
20:39
РС=регистр сведений, так что - YRLY.
33 Reaper_1c
 
25.07.14
20:58
Толпа наркоманов. Методы объектного чтения из БД преобразуются платформой в курсорные запросы выбирающие данные порциями по 25 записей. Считывание инициируется методом "Следующий()" в том случае, если в памяти не осталось не прочитанных записей. Запрос же считает все записи в один присест. Таким образом, объектный доступ предназначен в первую очередь для операций группового изменения объектов. Но и здесь нужно учитывать, что обход данных происходит в порядке основного индекса главной таблицы объекта. На практике это значит, что при одновременной работе алгоритма и пользователей новые объекты могут попадать как "после", так и "до" курсора. А существующий объект может вообще не попасть в выборку: достаточно переименовать "Якова Антипова" в "Антипова Якова"  в середине работы алгоритма, чтобы Яшка остался для алгоритма стелсом.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн