Имя: Пароль:
 
1C
1С v8
В чем преимущество пакетов запроса?
0 lanc2233
 
13.11.20
12:39
Есть задача, выгрузить номенклатуру в файл, и внутри какждого блока группировка по свойствам, ценам, остаткам и другие группировки.
Зачастую в подобных задачах, делают одним запросом, где есть пакет по свойствам, пакет по ценам, и т.д.
Пакеты выгружаются в таблицы значений, и при обходе основной выборки из таблиц ищутся подходящие строки.

Зачем так делают? Почему просто не получить таблицы значений отдельными запросами? ведь намного проще потом нализировать код, чем длиннющие запросы на много экранов.
1 Said_We
 
13.11.20
12:42
(0) Что бы одно и тоже несколько раз не писать в каждом и не надо было передавать из результата одного запроса в другой что-то установкой параметров.
Ты на выходе получаешь некую структуру, где всё уже собрано.

Я стараюсь пакеты не использовать, точнее так получать результат, что бы он был в одной таблице. Но так можно сделать не всегда.
2 RomanYS
 
13.11.20
12:44
(0) Обычно "смысл" пакетов в использовании временных таблиц. Если ВТ нет, то есть небольшая экономия на накладных расходах - меньше обращений серверу/БД. В случае 3 независимых запросов можешь делать как удобнее, практически разницы нет.
3 GreyK
 
13.11.20
12:54
(0) Ну во первых это модно. Во вторых +25lvl к самомнению. В третьих иногда можно сэкономить на обращении к одним и тем же ресурсам.
4 youalex
 
13.11.20
13:00
(0) Пакеты это ерунда. Намного веселее , когда используется МенеджерВТ, который к тому же тянется через множество функций, в каждой из которой добавляются/удаляются таблицы.
5 Джинн
 
13.11.20
13:01
(3) А уж сколько свечей для лечения геморроя при этом нужно!
6 mistеr
 
13.11.20
13:38
(0) Могу предположить несколько причин.

1. Снижаются накладные расходы, связанные с расходом памяти в СУБД, передачей по сети и т.п., по сравнению с отдельными запросами. Возможно, для какой-то из поддерживаемых СУБД эта разница существенна, (или была раньше), поэтому и реализовали эту возможность в 1С.

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

3. Пакет может быть способом обеспечить согласованность данных без использования явных транзакций. Тут я не уверен, выполняются ли все запросы пакета в одной неявной транзакции. Пусть знающие люди дополнят.
7 mistеr
 
13.11.20
13:39
(3) У кого это так модно? Я встречал очень редко.