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

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 не будет опубликован. Обязательные поля помечены *