Имя: Пароль:
IT
 
Объясните, что такое выборка
,
0 Blakangelos
 
11.08.11
15:49
например на этом примере

ВыборкаСправочника = Справочники.Валюты.Выбрать();
Пока ВыборкаСправочника.Следующий() Цикл
   Сообщить

Сильно благодарен
1 ДенисЧ
 
11.08.11
15:50
набор неких элементов, перебираемых в общем случае последовательно
2 Волшебник
 
11.08.11
15:51
курсор
3 miki
 
11.08.11
15:51
подмножество
4 Stim213
 
11.08.11
15:52
Корзинка с элементами
5 Рэйв
 
11.08.11
15:52
(0)Это таблица элементов справочника, возвращенная методом .Выбрать()

Метод  .Следующий() перемещает  курсор на один вперед если есть куда и возвращает значение Истина. Если некуда, то возвращает Ложь;
6 skunk
 
11.08.11
15:52
обычная таблица или рекордсет
7 andrewks
 
11.08.11
15:52
(3) не согласен
8 Живой Ископаемый
 
11.08.11
15:53
"Выборка" - это первая часть идентификатора ВыборкаСправочника.
9 miki
 
11.08.11
15:53
(7)продолжай
10 Живой Ископаемый
 
11.08.11
15:53
если касательно приведенного примера
11 Ненавижу 1С
 
гуру
11.08.11
15:54
однонаправленный список или (2) в терминах СУБД
12 Blakangelos
 
11.08.11
15:55
ВыборкаСправочника = Справочники.Валюты.Выбрать();
Пока ВыборкаСправочника.Следующий() Цикл
       
                    или

А = Справочники.Номенклатура.Выбрать();
Пока А.Следующий()Цикл


В чем отличия ?
13 Волшебник
 
11.08.11
15:55
14 Ненавижу 1С
 
гуру
11.08.11
15:55
(12) в том что выборки по разным справочникам
15 andrewks
 
11.08.11
15:55
(9) разве после .Выбрать() фиксируется мн-во выбранных элементов?
16 Волшебник
 
11.08.11
15:55
(12) В имени справочника и имени переменной
17 ДенисЧ
 
11.08.11
15:56
(12) В первом случае переменная называется ВыборкаСправочника, во втором - А.
18 Живой Ископаемый
 
11.08.11
15:56
2(12) Во втором примере у разработчика не  хватает фантазии или прилежности придумать человеческое имя переменной
19 Волшебник
 
11.08.11
15:56
(15) Нет. Выборка является динамической, т.е. выбирает порциями
20 Волшебник
 
11.08.11
15:57
(15) Для фиксации выбранных элементов выборку можно заключить в транзакцию.
21 andrewks
 
11.08.11
15:57
(19) вот поэтому и не согласен с (3)
22 Волшебник
 
11.08.11
15:58
Если внутри цикла по выборке происходит изменение элементов, то одни и те же элементы могут попасть в выборку дважды или трижды. О_о...
23 Живой Ископаемый
 
11.08.11
15:58
2(12) чтобы было еще понятней... так тоже можно:
ЖиберкаСправочника  = Справочники.Валюты.Выбрать();
Пока ЖиберкаСправочника.Следующий()Цикл

БибиркаСправочника  = Справочники.Номенклатура.Выбрать();
Пока БибиркаСправочника.Следующий()Цикл
24 Волшебник
 
11.08.11
15:59
(23) Нет, так будет ошибка.
25 Asmody
 
11.08.11
15:59
в терминах паттернов Выборка ближе всего к wiki:%C8%F2%E5%F0%E0%F2%EE%F0_(%EF%F0%EE%E3%F0%E0%EC%EC%E8%F0%EE%E2%E0%ED%E8%E5)
26 Ненавижу 1С
 
гуру
11.08.11
15:59
(19) и в запросе и в справочнике?
27 andrewks
 
11.08.11
15:59
имхо, выборка - это отношение линейного порядка на множестве строк таблицы
28 Stim213
 
11.08.11
15:59
..хороший вброс..
29 Волшебник
 
11.08.11
16:00
(25) Щас он спросит, что такое "паттерны"
30 Asmody
 
11.08.11
16:00
(25)+ да блин! к итератору. «Итератор — объект, позволяющий программисту перебирать все элементы коллекции без учёта особенностей её реализации.»
31 Волшебник
 
11.08.11
16:01
(30) В 1С есть выборки, а есть итераторы. Разные объекты
32 andrewks
 
11.08.11
16:01
(30) даёшь юникод! :)
33 Asmody
 
11.08.11
16:02
(31) выборка как объект ближе к итератору по смыслу
34 Живой Ископаемый
 
11.08.11
16:02
или даже так
БибиркаАТутНапалаЛеньИЯНеСталПисатьСловоСправочника  = Справочники.Номенклатура.Выбрать();
Пока БибиркаАТутНапалаЛеньИЯНеСталПисатьСловоСправочника  .Следующий()Цикл
35 Волшебник
 
11.08.11
16:04
Я бы лучше сравнил выборку динамическую и выборку из результата запроса. Вот где отличия сидят:
1. фиксированность набора элементов
2. требования по памяти
3. скорость работы
36 Шапокляк
 
11.08.11
16:04
(34) Неа, ошибку выдаст. Пробелы не на месте :)
37 Волшебник
 
11.08.11
16:06
(34) Почему не работает следующий код?

Пока Справочники.Номенклатура.Выбрать().Следующий() Цикл
 
КонецЦикла;
38 andrewks
 
11.08.11
16:07
(37) что есть "не работает" ?
39 Волшебник
 
11.08.11
16:07
(38) виснет
40 Asmody
 
11.08.11
16:07
(37) хорошо пошутил, молодец :)
41 andrewks
 
11.08.11
16:08
(39) тогда он работает
42 Ненавижу 1С
 
гуру
11.08.11
16:08
(37) потому что ты постоянно начинаешь новую выборку
кстати не виснет, если справочник пустой ))
43 neomarat
 
11.08.11
16:09
(37) он не виснет - он много работает
44 andrewks
 
11.08.11
16:09
+(41) и не виснет, а входит в бесконечный цикл.
45 neomarat
 
11.08.11
16:10
(44) т.е. размышляет о бесконечности - философф
46 Жан Пердежон
 
11.08.11
16:10
толстовато вроде, а народ все равно ведется
47 Волшебник
 
11.08.11
16:11
Выборка или выборочная совокупность — множество случаев (испытуемых, объектов, событий, образцов), с помощью определённой процедуры выбранных из генеральной совокупности для участия в исследовании.

wiki:Выборка
48 andrewks
 
11.08.11
16:11
(35) ещё есть аспект линейности выборки.
в случае с выборкой как результата запроса она может отсутствовать, в то время как в выборке динамической она присутствует всегда
49 andrewks
 
11.08.11
16:12
(47) это неправильная статья. там про статистику
50 andrewks
 
11.08.11
16:12
+(49) неправильная  = не совсем подходит к рассматриваемой проблеме
51 miki
 
11.08.11
16:13
(50)продолжай
52 andrewks
 
11.08.11
16:14
+(48) отношение линейности, естественно, имеется в виду на множестве строк таблицы, а не на множестве строк результата запроса
53 Волшебник
 
11.08.11
16:15
Почему выдаётся ошибка? Что-то типа операция не может быть выполнена...

Выб = Справочники.Номенклатура.ВыбратьИерархически();
Пока Выб.Следующий() Цикл

КонецЦикла;
54 Ненавижу 1С
 
гуру
11.08.11
16:18
(53) у кого? у меня все ок
55 miki
 
11.08.11
16:21
(48)раскрой про линейность, плз. Я не в теме просто.
56 andrewks
 
11.08.11
16:21
(53) справочник не иерархический?
57 GoldenDawn
 
11.08.11
16:23
(0)профайлером попробуй
потом нам расскажешь
58 Живой Ископаемый
 
11.08.11
16:24
Я брал справочник с иеррархие групп и элементов, создавал один элемент, и потом второй, поставив родителем ля второго первый... Это все интреактивно...
Потом я для первого устанавливал кодом родителем второй элемент. При открытии формы списка справочника у меня платформа висла
59 andrewks
 
11.08.11
16:26
(55) при динамической выборке ты получаешь элементы в строгом линейном порядке, в соответствии с заданным отношением (по коду, например).
при выборке как результат запроса в общем случае непонятно, в каком порядке там будет накидано, т.е. в общем случае линейного отношения на исходном множестве (таблице БД) нет

вроде как-то так.

8-ку я, конечно, очень слабо пока знаю, если где ошибаюсь - укажите
60 aleks-id
 
11.08.11
16:30
в сп вроде доступно объяснили...
"Содержит ссылки на данные, представленные в базе данных. Объект позволяет обойти данные, попавшие в выборку и прочитать их."
61 miki
 
11.08.11
16:30
(59)я так и не понял, почему выборку нельзя считать подмножеством. Я так понимаю, что подмножество не может быть больше исходного множества (от пустого до исходного) или содержать что-то, чего нет в исходном.
62 Ненавижу 1С
 
гуру
11.08.11
16:32
(61) подмножеством извините чего?
ну можносчитать наверное, и что это дает нам?
63 andrewks
 
11.08.11
16:33
(61) в том-то и дело, что подмножество у тебя появляется в случае выборки запросом.

в случае динамической выборки у тебя только есть отношение линейного порядка и текущий выбранный элемент в руках
64 miki
 
11.08.11
16:36
(62)
>> исходном множестве (таблице БД)/из (59)/

(63) единственный элемент - тоже подмножество.
Суть - что в выборку не попадет ничего, чего нет в таблице. Она никаких новых элементов не создает.

+ я ж не претендовал на самодостаточное определение. Ответил на сабж как представил...
65 andrewks
 
11.08.11
16:37
хотя, даже в случае с запросом подмножества нет, есть множество объектов-указателей на элементы исходные множества
66 Ненавижу 1С
 
гуру
11.08.11
16:37
(64) если во время получения выборки будут изменены элементы, то в выборку могут попасть одни и те же элементы несколько раз
67 Ненавижу 1С
 
гуру
11.08.11
16:38
(65) демагогия какая-то
68 andrewks
 
11.08.11
16:38
(64)(67) ладно, не будем ввергаться в околонаучные споры.
и так понятно, что все всё знают ;-)
69 miki
 
11.08.11
16:42
(66)да хоть миллион раз.
(68) ОК. Ты сконцентрировался на процессе (получения), а я - на результате (данных).
70 Волшебник
 
11.08.11
16:43
(56) ага :)
71 Ненавижу 1С
 
гуру
11.08.11
16:43
(69) ну и твое определение тогда ни о чем, оно есть, но толку нет
72 _Atilla
 
11.08.11
16:44
Вы еще будете спорить что такое 0 и 1. :-)
73 andrewks
 
11.08.11
16:55
(72)  рано вбросил, пятница завтра