Пакетные запросы для чайников

48 Comments

  1. Поручик

    (0) Статью двухлетней или трёхлетней давности от Чистова не читал? Там намного подробней расписано.

    Reply
  2. fixin

    (1) чукча не читатель, чучка писатель…

    Reply
  3. sa1m0nn

    Автор попутал б-жий дар с яичницей. Описано так, как будто пакетные запросы — что-то недосягаемое и нереально крутое… Это обыденность, простой механизм наряду с прочими механизмами платформы.

    Reply
  4. psa247

    написано же — для «чайников»

    Reply
  5. anig99

    Если уж пейсатель (и оператор кстати тоже, гыгы), то тогда лучше для чайников сделать 2 изменения.

    1. В заглавие добавить что-то типа «как написать свой первый пакетный запрос»

    2. Найти статью Чистова и дать на неё ссылку.

    Reply
  6. maldinitaly

    Согласен с (5) лучше найти ссылку на статью Чистова

    Reply
  7. yuraskas

    Ну прямо все заладили с Чистовым, ну так дайте ссылку на эту статью, я например не читал.

    Reply
  8. sound

    Набросились такие на человека, по моему для чайников в самый раз 🙂

    Reply
  9. fomix

    Неееее для чайников не потянет — мудрено написано… Картинок мало… И запрос не из ЗУПа (на 10 листов формата А4)… Переписать!

    Reply
  10. fixin

    (6)(5) у чистово сложнее и искать надо, а тут под рукой, на ИС.

    (4) вот именно, быстрый старт, так сказать.

    (8) о чем и речь. Пусть выскажутся чайники.

    (9) статья для чайников, а не для дураков.

    Reply
  11. Godman

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

    А ссылку на Чистова дайте уж пожалуйста. И вообще странный народ, какой смысл писать фразу про Чистова, если вы не даёте ссылку? Если знаете нечто по существу, так дайте развернутый ответ.

    Reply
  12. Godman

    Вот это, я так понимаю: http://www.nashe1c.ru/materials-view.jsp?id=47#oultine_7

    Reply
  13. catena

    Чтение действительно облегчает, но, я так поняла, выигрыша в оптимизации нет?

    Reply
  14. fixin

    (13) почему это нет? Простые запросы можно быстрее выполнить, чем один сложный… Редко когда нужно оптимизировать… 😉

    (12) у Чистова тоже не густо.

    Reply
  15. YuliaYVS

    Немного в защиту автора: из общения с некотороми человеками, скажем так, возникает проблема,что читать что-то официальное, специально написанное, они не хотят. Вы за них прочитайте и выберете для них главное (с их точки зрения) и не важно, что это это уже написано, и скорее всего проще, доступнее.

    Будем надеяться, что у автора не пропадет желание что-то ещё писать и делать.

    При составлении инструкции всем угодить нельзя, очень редко бывает, чтобы угодить хотябы половине…

    Reply
  16. fixin

    (15) официальные инструкции слишком официальны! 😉

    Reply
  17. Поручик

    (14) Как раз у Чистова изложено понятно, что это такое и для чего нужно.

    (13) В некоторых случаях выигрыш есть, Чистов об этих случаях и рассказывает.

    Reply
  18. catena

    (17)В ссылке из (12) выигрыш только в НЕ создании лишнего объекта запрос и менеджера ВТ.

    Еще есть обтекаемая фраза «естественно что система при каждом вложенном запросе заново обращается к базе данных для получения данных.» — а при использовании вместо вложенного запроса пакетный не обращается? Т.е. запросы выполняется последовательно и все соединения потом отрабатываются с готовыми выборками?

    Является ли 1с-ное «поместить… ;» в данном случае аналогом скульного with … as?

    Reply
  19. fixin

    (17) ну пусть Чистов изложит свое видение на Инфостарте. Я изложил свое.

    Reply
  20. Ленкина

    По-моему не писала еще пакетные запросы, делаю вложенные, иногда получаются достаточно сложные для чтения и правки, особенно, если приходится к ним возвращаться спустя какое-то время. Так что в таких случаях пакетные наверное удобны… Теперь, если понадобится сложный запрос, попробую сделать пакетный. Так что спасибо автору, что напомнил про такую возможность))

    Reply
  21. fixin

    Лунс, не нервничай, я имел ввиду «Защиту от дурака». Вполне литературный термин…

    Можно поправить на глупцов.

    Reply
  22. i132

    по моему у Чистова понятней ( http://www.nashe1c.ru/materials-view.jsp?id=47#oultine_7 )

    Стоит добавить: пакетные запросы удобны если надо делать запрос к таблице значений или еще не записанному документу

    Запрос.Текст =

    «Выбрать ТабЧастьТовары.Номенклатура,ТабЧастьТовары.Количество

    |Поместить ТабЧасть из &ТабЧать как ТабЧастьТовары;

    |Выбрать * из ТабЧасть»;

    Запрос.УстановитьПараметр(«ТабЧать»,Док.Товары);

    (тоже боян)

    Reply
  23. fixin

    (23) сколько людей — столько мнений!

    Reply
  24. lukoyanovas

    «Запрос писался для системы компоновки, т.е. никаких таблиц значений или временных таблиц применять нельзя в принципе»

    Это почему?

    Reply
  25. Поручик

    Я тоже вброшу

    (0) >>>> Запрос писался для системы компоновки, т.е. никаких таблиц значений или временных таблиц применять нельзя в принципе

    Прямо так и нельзя в принципе? В принципе таблицу значений в СКД передать можно. http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=571359

    Reply
  26. parvoos

    в принципе понятно

    Reply
  27. VladKir

    (26) Поручик, если вам это необходимо, то может быть нужно подумать о том, чтобы поменять логику построения?

    Пакетные запросы позволили мне сэкономить почти на порядок времени при выполнении огромного запроса с кучей вложенных подзапросов всего лишь грамотным их разнесением. Также можно обращаться в разных пакетах к однажды выполненному запросу, а не выполнять его многократно.

    Ну и если данное руководство кому-то поможет, то почему нет? Вдруг кто-то да научится, почитает статью Чистова и начнёт правильно писать, чтобы потом другому человеку не переписывать данный кусок при принятии конфигурации на поддержку?

    Reply
  28. fixin

    (26) когда писал, еще не знал. таблицу значений в СКД передать можно, но менеджера временных таблиц в СКД нет.

    Reply
  29. Поручик

    (29) Впечатление такое, что тебя в погребе держали года три, и вот внезапно мятежный дух восстал из ада.

    Reply
  30. fixin

    (30) неа. просто копипащу со своего сайта… Тут обратная связь имеется, прикольно. Да и рейтинг растет как на доржжах.

    Reply
  31. Requiem

    Лучше переименовать статью во «Временные таблицы для чайников», потому что пакетные запросы это немного другое. Суть пакетных запросов в том, что можно сделать несколько запросов, не обязательно помещенных во временную таблицу, можно их получить как Запрос.ВыполнитьПакет().

    Reply
  32. fixin

    (32) Буквоедством страдаете? Могли бы сказать без буквоедства, что пакетные запросы не всегда используют временные таблицы, а в данной статье упор в основном сделан на них. 😉

    Reply
  33. dimk@a

    Ув. fixin, высказываюсь как чайник. Объяснение зачем — понятно, так действительно проще для восприятия. Но пример запроса вгоняет в полнейший ступор. В частности, вот это:

    ВЫБРАТЬ Т1.Зн ПОМЕСТИТЬ ВТБуквы ИЗ (ВЫБРАТЬ «А» КАК Зн ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ «Б») КАК Т1;

    вместо <список источников> два объединенных запроса опять же без источников. Может это чисто абстрактный пример, но мой мозг разорван в клочья и не воспринимает дальнейшую информацию. Если бы вы привели полностью весь код запроса — было бы понятнее для чайника ,имхо.

    И еще два вопроса по существу, ответа на которые, кстати в желтых книгах тоже нет:

    1. при использовании пакетных запросов реально можно не создавать менеджер временных таблиц?

    2. если юзать пакетный запрос без временных таблиц, то как обращаться к результатам предыдущего запроса?

    Reply
  34. fixin

    вложенный запрос просто выдает таблицу из одной колонки Зн в которой в первой строке А, во второй строке Б.

    1. Да, можно не создавать менеджера, если вам не надо потом получать данные из промежуточных временных таблиц, а достаточно результата

    2. А смысл? Результаты промежуточных запросов никуда не сохраняются и к ним доступ не получить. Так что временные таблицы!

    Reply
  35. dimk@a

    (35)

    [QUOTE=fixin]вложенный запрос просто выдает таблицу из одной колонки Зн в которой в первой строке А, во второй строке Б. [/IS-QUOTE] нигде не встречал ранее, запомню.

    по вопросу 2 — я имел ввиду следующий запрос в пакете. или о чем вы здесь говорите (33):

    пакетные запросы не всегда используют временные таблицы
    Reply
  36. fixin

    (36) перефразируй вопрос, не понял

    Reply
  37. dimk@a

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

    они как я понял могут тормозить работу запроса.

    Reply
  38. fixin

    (38) без них не получится. 😉 но ВТ можно использовать без создания менедежера временных таблиц, да хоть в СКД

    Reply
  39. fixin

    Кстати, статья Чистова в тему: http://pro1c.org.ua/index.php?showtopic=3052

    И заметки самому себе:

     ВЫБРАТЬ 1 КАК П Поместить Т;
    ВЫБРАТЬ Т.П Поместить Т1 ИЗ Т;
    УНИЧТОЖИТЬ Т;
    
    Reply
  40. ytpyfqrf

    мне помогло!!!

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

    Большое спасибо автору, не пожалел времени и потрудился для меня и таких как я, учтите, что ему это уже не нужно было!

    Reply
  41. nikolaygorbunov
    Запрос писался для системы компоновки, т.е. никаких таблиц значений или временных таблиц применять нельзя в принципе.

    Почему нельзя, можно, советую Хрусталеву почитать.

    Reply
  42. nikolaygorbunov

    +(42) Статья кстати толковая, спасибо.

    Reply
  43. getnight

    Бывает, что не хватает самой малости, чтобы понять какую-нибудь в принципе простую вещь.

    После чего ты никак не можешь понять, почему ты не понимал этого раньше.

    Спасибо тем, кто еще помнит, что мешало разобраться с темой, и тратят свое личное время на то, чтобы помочь другим преодолеть этот шаг.

    В то же время господа-профессионалы любят стебаться над чужими статьями, сами при этом ничего не пишут, или пишут на таком марсианском языке, что новичкам и чайникам проще искать решение в другом месте, чем выпрашивать совет мелкими крошками, как милостыню.

    От меня лично — большое спасибо, вроде не чайник, но ранее не пересекался с темой, натолкнула на новые мысли.

    Reply
  44. grey_yes

    (44) getnight, просто поддержу Ваши мысли….

    хотя кмк автору следовало бы более подробнее расписать для «чайников» смысл запроса…

    читателю сначала надо врубиться в суть примера, и только потом понять «простоту» пакетного запроса

    Reply
  45. fixin

    (45) я гений 1С, не всегда могу разжевать для посредственностей, но стараюсь. 😉

    Reply
  46. anig99

    (46) Фиксин как всегда жжот (:

    Reply
  47. CratosX

    (1) Поручик, (2) — У Чистова-то может и написано было, но ссылки из (12) Godman уже недоступна. Так что иногда полезно копипастить или переизлагать инфу на разных ресурсах.

    Reply
  48. 2tvad

    Для стандартной УТ, Бух и т.д. можно посмотреть в отладчике содержимое временной таблицы в пакетном запросе вот так:

    ОбщегоНазначенияУТ.ПоказатьВременнуюТаблицу(<Запрос>, <Наименование вн. таблицы>)

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *