#14
by Мелкий бес
добавлю: 1. использование МассиваРезультатов КонецЕсли 2. в конце запроса всегда помнить о УНИЧТОЖИТЬ ИмяВременнойТаблицы
#15
by AquaKosh
Навеяно : Если не чистить за собой временные таблицы (или через менеджер временных таблиц, или непосредственно через УНИЧТОЖИТЬ), то в консоли сервера 1С будет висеть занятость базы SQL, как будто выполняется запрос (в серверном варианте, конечно).
#17
by nop
у меня такая ситуация: текст запроса меняется в цикле и нужно получить результаты каждого из них. ВыполнитьПакет не подойдет?
#18
by Fragster
запихать все в 1 пакетный запрос через ";"... виды документов обходишь? объедини их в журнал... правда с блокировками возникнут косяки, если нагрузка большая...
#19
by Мелкий бес
1. возможно в тексте запроса есть постоянная часть и есть переменная часть постоянную часть вынести во временную таблицу и в использовать ее в цикле 2. если цикл не бесконечный, то можно собрать пакетный запрос и выполнить его один раз. а потом в цикле просматривать результаты
#21
by AquaKosh
Дык зависит от методики построения... Если используется ПАКЕТНЫЙ запрос, т.е. в одном тексте запроса много запросов, которые делают временные таблицы (ПОМЕСТИТЬ врТаб), то тогда ВыполнитьПакет. А если каждый запрос, который создаётся в цикле тут же выполняется, а потом делается Выборка/Выгрузить, тогда Выполнить.
#22
by nop
+ грубо говоря мне надо выполнить этот запрос 2 раза: 1 раз по РегистрБухгалтерии.Хозрасчетный, 2ой - РегистрБухгалтерии.Управленческий и получить результаты обоих запросов, и вернуть их из функции в Соответствие (с ключами) Функция ПолучитьСуммуСписанияАктивов.
#23
by nop
Вот пока что я использую второй способ с циклом и Выполнить. Где понятные запросы - переписываю под ОБЪЕДЕНИТЬ, СОЕДИНЕНИЕ. Иначе выполняю запрос в цикле. Но есть мысль что с ВыполнитьПакет производительность будет больше.
#24
by AquaKosh
Так если всего два запроса, да ещё и по разным регистрам, да ещё и не срощенные вместе... зачем пакетный запрос? Обычные два запроса...
#26
by nop
ну потому что во первых надо разобраться с пакетным режимом, во вторых, по моему, будет все же немного быстрее, потому что текст передается серверу 1 раз, и результат будет возвращен 1 куском.
#27
by AquaKosh
Не, затраты времени на передачу текста запроса по сравнению с временем выполнения оного - ничтожны, поэтому если два запроса по разным регистрам, то выигрыша, имхо, на глаз не заметить.
#29
by Живой Ископаемый
2 Главное сами тексты запросов в коде нужно разделить, а то констурктор будет хавать только последний запрос из пакета...
#30
by AquaKosh
Лично я юзаю временные таблицы только в больших запросах, в которых есть более-менее одинаковые куски, перевод которых на временные таблицы даёт СУЩЕСТВЕННОЕ ускорение, т.к. запросы к регистрам делаются 1 раз, а дальше идёт юзанье уже временных таблиц.
#31
by nop
я вот не пойму из статьи: Почему первые 2 будут содержать только число? Из-за слова ПОМЕСТИТЬ ?
#33
by AquaKosh
Эм... Не я автор и, честно говоря, уже не помню подробности... Сейчас почитаю... ПОМЕСТИТЬ - это признак того, что требуется создать виртуальную таблицу.
#34
by AquaKosh
Вот описание ВыполнитьПакет из СП: Синтаксис: ВыполнитьПакет Возвращаемое значение: Тип: Массив. Описание: Последовательно выполняет все запросы и возвращает массив результатов для каждого запроса из пакета. Результаты помещаются в массив в последовательности расположения запросов в тексте пакета. Результатом выполнения запроса на уничтожение временной таблицы является значение Неопределено, которое также помещается в массив результатов. Верить, соответственно, лучше СП. :)
#36
by AquaKosh
Посмотри ещё про "МенеджерВременныхТаблиц" у запроса. Иногда его очень удобно использовать.
#38
by AquaKosh
Ну типа того. Но у этой фишки есть плюс: текст запроса не обязательно должен включать сразу все временные таблицы, т.е. можно ОДНОМУ И ТОМУ ЖЕ экземпляру объекта ЗАПРОС, передавать различные тексты и выполнять их (через Выполнить) сколько угодно раз - менеджер будет запоминать эти временные таблицы и по ним ПОЗЖЕ можно будет строить запросы, например если на данный момент не известны какие-либо параметры или ещё чего...
#42
by AquaKosh
После беглого осмотра того, что СТАЛО, скажу вот что: я не знаю, сколько видов учёта, но это будет ОЧЕНЬ медленно, т.к. у тебя, предположительно, туча однотипных запросов к одному регистру. Лучше сделай так: создай ОДИН запрос к ОДНОМУ регистру с минимальным отбором и помести его во временную таблицу + про индекс на вид учёта не забудь. А далее выбирай данные уже из этой виртуальной таблицы, накладывая отбор по виду учёта.
#48
by Serg_1960
Прочитал вопрос - понял, что ничего не понял :( Почитал ответы - понял, что ничего не знал :( Спасибо за "хороший" вопрос :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- v7: Не работает "C:Program Files1Cv77BIN1CV7s.exe" enterprise /d%%a
- как вычислить в запросе часы и минуты
- Как поменять вкладки местами в табличной части документа?
- v7: Как в запросе проверить, принадлежит реквизит документу или нет?
- Универсальный обмен данными XML, где взять правила обмена
- Как проверить что объект является документом?
- Как в запросе проверить тип Регистратора?
- Время изменений периодических реквизитов можно получить?
- Компоновка данных, период из регистра сведений
- Как записать файл на FTP из обработки 1С.
- Конвертация данных 2, V8.1, конвертация периодических реквизитов
- Почему при создании документа, дата по умолчанию ставится на 0:00:00 по времени?
- Реально ли средствами только 1СV8 Написать ТЕТРИС?
- Какие лучше порты открывать
- При сохранении документа чтобы не формировались проводки?
- вывести табличную часть в результат запроса
- Как использовать числовое значение Ставки НДС в запросе?
- Изменить документ в обработке и проведения и записать
- Печать всех счет фактур
- По какому принципу проставляются серии номенклатуры в документе реализации?