Холиварный мегасрач - 3

  1. 9 г. назад

    1 вариант - правильный

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



    КонецЦикла;

    2 вариант - неправильный

    ВыгрузкаИзЗапроса = Запрос.Выполнить().Выгрузить();
    Для каждого СтрокаЗапроса Из ВыгрузкаИзЗапроса Цикл



    КонецЦикла;

    Как известно, на экзамене на спеца второй вариант может вам скосить был, т.к. в этом случае используется дополнительный объект "таблица значений" и считается что это не кашерно.
    А что поэтому поводу думают уважаемые 330-ки?
    Ведь в первом варианте тоже используется дополнительный объект "Выборка из запроса".
    Вообще, заморачиваетесь ли вы выбором между вариантом 1 и 2, или результаты запроса вываливаете в ТЗ и потом обходите запросом?

    Ответы: (2) (17) (22)
  2. я в тз выгружаю только если по другому никак...а так просто выборка...зачем огород городить??? тем более группировки...

  3. БухиТог на экзамене на спеца второй вариант может вам скосить был,

    нифига не понял

    Ответы: (14)
  4. в любом случае, 1-й вариант более правильный структурно.

    Ответы: (5)
  5. кстати если уж речь зашла о экзамене...на 8.3 уже надо интерфейс таксишный делать??? кто в курсе??? какие еще новшества???

    Ответы: (15)
  6. andrewks в любом случае, 1-й вариант более правильный структурно.

    Что значит "правильно структурно"?

    Ответы: (6)
  7. 04.07.2014 08:50:25 отредактировано andrewks

    (5) то и значит, что модель "Выборка" более точно отражает структурно объект результата запроса, чем модель "ТЗ"

    Ответы: (12)
  8. А если тебе, к примеру, надо заполнить табличную часть документа, неужели выборкой заполнять будешь? не проще выгрузить результат запроса в таб. часть, чем бежать циклом?

    Ответы: (8)
  9. (7) ну, в сабже рассматривается несколько иная задача, нежели заполнение ТЧ

    Ответы: (9)
  10. (8) перечитал сабж. ничего про задачи не нашел. только то что первый вариант правильный, второй нет.

    Ответы: (10) (11)
  11. (9) там идёт явно обход выборки результата запроса. цель может быть любая, конечно, в т.ч. и построковое заполнение ТЧ, но первично то, что именно обход выборки.

    Ответы: (13)
  12. (9) ну а перебор в цикле для чего по твоему написан в примере?

  13. 04.07.2014 09:10:47 отредактировано БухиТог

    (6) ну а вплане прожирания оперативки?
    Метод ".Выбрать()" перекидывает данные в новый объект "Выборка из запроса", или просто встаёт на начало выборки и никакого дополнительного объекта не инициализируется как с таблицей значений.

  14. (10) ок. для проведении документа, например реализация, готовится таблица по товарам, таблица по услугам, таблица по таре. задача другая, промежуточное тз необходимо. конечно если вываливать в тз с целью самому посмотреть что выдал запрос то за Выгрузить() бить по рукам надо. а так существует много моментов когда тз необходима.

    Ответы: (16)
  15. andrewks а экзамене на спеца второй вариант может вам скосить был

    БАЛЛ

  16. 04.07.2014 09:27:34 отредактировано MIK

    (4) пока, на данный момент - по желанию

  17. Доброжук а так существует много моментов когда тз необходима.

    никто с этим не спорит :)

  18. (0) Помимо структуры.
    Выбрать() не тянет на клиента весь результат запроса. Ну и если обнюхивать результат Выгрузить(), то придется обращаться к серверу за объектами в запросе повторно, в отличии от Выбрать(0, где оне туточки вот.

    Ответы: (18) (19)
  19. (17) объект РезультатЗапроса вообще не передается между сервером и клиентом

  20. (17) Мощно завернул. Спасибо....

  21. Еще один аргумент против второго варианта.
    Сортировка в ТЗ:
    http://www.forum.mista.ru/topic.php?id=724871

    Ответы: (21)
  22. (20) а кстати, какой алгоритм 1С применяет для сортировки ТЗ? кто нибудь знает?

    Ответы: (27)
  23. (0) простите мою забывчивость - давно одноэсией не занимался - ВыборкаИзЗапроса уже содержит весь результат запроса на сервере приложений или только открывает курсор в базе данных который будет шагать по результату на каждое выполнение команды ВыборкаИзЗапроса.Следующий() ?

    Ответы: (24) (25) (27)
  24. а зачем выгружать в таблицу значений для выборки? приведите хоть пару аргументов

    Ответы: (24) (27)
  25. (23) сначала ответьте на (22)

    Ответы: (28)
  26. (22) Если запрос уже выполнен, значит результат запроса уже есть. Не?

    Ответы: (26)
  27. (25) я не знаю(забыл) как 1С это реализовала. Вопрос еще в том, где этот результат запроса есть - в базе данных или на сервере приложений. Собственно, это и спрашиваю

    Ответы: (27)
  28. (22)(26) нет там курсора (судя по ТЖ, да и по выделению памяти на мега-выборки).
    (23) как зачем? запросы конкатенацию строк уже поддерживают?

    ЗлобнийМальчик акой алгоритм 1С применяет для сортировки ТЗ? кто нибудь знает?

    пузырьком конечно, если я правильно понял вопрос

    Ответы: (29) (30)
  29. (24) если честно, то не в курсе

  30. (27) а как связана конкатенация (зачетное слово, надо запомнить) и выбора результатов запроса?

  31. (27) то есть ВыборкаИзЗапроса - это объект сервера приложений в котором содержится уже весь результат запроса?
    серьезно что ли пузырьком????????? :) [smile=:S] [smile=('<] [smile=('<] [smile=('<]

    Ответы: (31)
  32. ЗлобнийМальчик серьезно что ли пузырьком?????????

    нет конечно. кто тебе расскажет? два человека же платформу писали, когда сортировка была готова.
    кстати, с учетом того, что индексировать можно таблицу - какая-нибудь стандартная библиотека VC используется

    Ответы: (32)
  33. (31) почему не расскажет? опять таки, я и сам мог бы проверить при желании. чай, не бином ньютона - посчитать зависимость времени сортировки от размера не так то уж сложно. для разных методов сортировки эта зависимость будет разная.
    ну и сортировка, это настолько базовая вещь для производительности, что я был бы удивлен, если бы они это место 38 раз не переписали с тех пор.
    вот что меня удивляет, так это то, что мне никто на вопрос по поводу ВыборкаИзЗапроса однозначно ответить не может.

    Ответы: (33) (35)
  34. 04.11.2014 12:44:05 отредактировано sf

    (32) в выборке курсора нет. был бы курсор - память бы на сервере 1с не росла.
    в выборке ссылочных - всегда есть версия данных. т.е. если ты выборку долго обрабатываешь, он будет сравнивать версии с субд и фигачить доп запросы.

    по поводу того, что ты разберешься в алгоритме сортировки - я тебе верю. только зачем? в СП все написано, работа с ТЗ прозрачная. влиять на скорость сортировки возможность есть - через индексирование, например

    Ответы: (34)
  35. (33) ну если данные уже все в ВыборкаИзЗапроса и курсор на стороне базы данных уже закрыт, и нам нужно просто перебрать ее (и при этом в процессе перебора нам не надо обращаться к другим строкам результата запроса) то конечно первый вариант предпочтительнее.
    В сапе это проще реализовано - там никакого такого типа как выборка нет и все результаты запроса выгружаются только в таблицу значений (ну или можно открыть курсор и считывать построчно или пакетами)

  36. (32)

    ЗлобнийМальчик вот что меня удивляет, так это то, что мне никто на вопрос по поводу ВыборкаИзЗапроса однозначно ответить не может.

    Вообще-то такие вещи одинесникам знать не обязательно

    Ответы: (36)
  37. (35) правильно. двух классов церковно приходской школы должно хватать для любого одноэснега. какая нам разница где осуществляется обработка наших данных - в базе данных или на сервере приложений? одноэсия справится

    Ответы: (37) (38)
  38. ЗлобнийМальчик какая нам разница где осуществляется обработка наших данных - в базе данных или на сервере приложений?

    вот только не надо говорить о том, .... эта инфа от 1С есть.
    только причем здесь алгоритм сортировки ТЗ?

    Ответы: (40)
  39. (36) Не утрируй.
    Знаешь, чем отличается ламер от чайника?

  40. фашистик умничает...какая прелесть...

  41. 04.11.2014 13:01:03 отредактировано ЗлобнийМальчик

    (37) алгоритм сортировки меня интересовал чисто из любопытства. А вот утверждение, что про то, где находится ВыборкаИзЗапроса, одинэнегу знать не обязательно - меня удивляет. Но может я чего не понимаю - поясните? я вполне допускаю, что одноэсия далеко ушла вперед с тех пор как я последний раз с ней работал. и спасибо Вам за пояснение по поводу ВыборкаИзЗапроса, кстати.

или зарегистрируйтесь чтобы ответить!