Имя: Пароль:
1C
1С v8
Обращение к строке выборки
0 Kaukass
 
09.03.15
11:35
Знаю, что результат запроса перебирают в цикле "Пока Выборка.Следующий()..." ,
а можно, зная что в результате всего одна строка, обратиться к результату без цикла?
1 GROOVY
 
09.03.15
11:37
Можно.

Выборка = Результат.Выбрать();
Выборка.Следующий();

Данные = Выборка.Данные;
2 GROOVY
 
09.03.15
11:38
Но на всякий случай, лучше так:

Если Выборка.Следующий() Тогда
3 Kaukass
 
09.03.15
11:39
Благодарю
4 Kaukass
 
09.03.15
12:16
2. Т.е. "следующий()" - это как в delphi команда "next"?
5 SSSSS_AAAAA
 
09.03.15
12:23
(0) Если не зацикливаться на Выборка.Следующий(), то есть еще варианты.
Выборка = Результат.Выбрать().Выгрузить();
Данные = Выборка[0].Данные;
6 Kaukass
 
09.03.15
12:25
5., Выборка[0]
В квадратных скобках индекс строки?
7 GROOVY
 
09.03.15
12:25
(5)  За выгрузку результата в ТЗ бьют по рукам.
8 Kaukass
 
09.03.15
12:28
(7) - а по что такие суровые санкции?
9 zak555
 
09.03.15
12:31
(7) а за



Набор.Загрузить( Результат.Выбрать().Выгрузить()) );


?
10 GROOVY
 
09.03.15
12:32
(9)  За это не бьют :)

(8) За создание ТЗ без необходимости.
11 фобка
 
09.03.15
12:36
(10)  к открытию выборки в (2) тоже можно придраться..
Нужно так:
Результат = запрос.выполнить();
Если не Результат.Пустой() тогда
  Выборка = результат.выбрать();
...
12 zak555
 
09.03.15
12:36
(10) в 9 не создаётся ТЗ ?
13 фобка
 
09.03.15
12:41
(9) не взлетит
14 GROOVY
 
09.03.15
12:42
(11)  Согласен.
(12) Создается, но загрузка ТЗ в другой набор, при достаточном количестве строк, намного эффективнее, чем заполнение набора построчно. А вот получать ТЗ для обращения к одной строке - это крайне неэффективно.
(13) Я думаю там просто опечатка.
15 zak555
 
09.03.15
12:48
(14) > при достаточном количестве строк, намного эффективнее, чем заполнение набора построчно


странно как-то

создавать ТЗ неэффективно, но сразу загружать в набор -- эффективно
16 zak555
 
09.03.15
12:48
(13) выбрать надо убрать =)
17 фобка
 
09.03.15
12:56
(15) "при достаточном количестве строк" эффективнее чем гонять цикл с получением значений из выборки..
Получать тз выгодно если дергаешь из результирующего набора массив значений какого-то поля, например