|
Уничтожение временных таблиц | ☑ | ||
---|---|---|---|---|
0
Max Street
11.11.13
✎
17:10
|
Собственно вопрос, если ли смысл уничтожать временную таблицу в конце запроса?
|
|||
1
shuhard
11.11.13
✎
17:10
|
(0) да
|
|||
2
ДенисЧ
11.11.13
✎
17:11
|
разумеется.
|
|||
3
elCust
11.11.13
✎
17:11
|
А чего нетовский сборщик мусора тут не шастает? )))
|
|||
4
DocWin
11.11.13
✎
17:11
|
Есть мнение, что иногда они сами не уничтожаются. Хотя и должны.
|
|||
5
Нуф-Нуф
11.11.13
✎
17:12
|
(1) (2) а разве...
|
|||
6
mikecool
11.11.13
✎
17:13
|
на бога надейся, а сам удаляй )))
|
|||
7
К_Дач
11.11.13
✎
17:13
|
Если юзать менеджер ВТ, то сами уничтожаются. Должны, по крайней мере
|
|||
8
shuhard
11.11.13
✎
17:14
|
(7) эту древность ?
все давно живут на пакетных запросах |
|||
9
mikecool
11.11.13
✎
17:15
|
(8) ну почему древность? можно менеджер использовать многократно, а пакет выполнился и забыли
|
|||
10
Max Street
11.11.13
✎
17:21
|
Спасибо. Правильно ли так удалять врем таблицу?
ВЫБРАТЬ РасходнаяНакладнаяТЧ.Номенклатура, СУММА(РасходнаяНакладнаяТЧ.Количество) КАК Количество ПОМЕСТИТЬ ВремТабл ИЗ Документ.РасходнаяНакладная.ТЧ КАК РасходнаяНакладнаяТЧ ГДЕ РасходнаяНакладнаяТЧ.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО РасходнаяНакладнаяТЧ.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВремТабл.Номенклатура, ВремТабл.Количество, ОстаткиНоменклатурыОстатки.КоличествоОстаток ИЗ ВремТабл КАК ВремТабл ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки( &МоментВремени, ) КАК ОстаткиНоменклатурыОстатки ПО ВремТабл.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ВремТабл |
|||
11
ptiz
11.11.13
✎
17:26
|
Никогда не удаляю. Никто не жаловался.
|
|||
12
wowik
11.11.13
✎
17:28
|
(11) тоже никогда не удалял.
|
|||
13
mikecool
11.11.13
✎
17:28
|
(10) пользуйся конструктором, он правильно пишет )
|
|||
14
GANR
11.11.13
✎
17:29
|
(0) Иногда в запросе в цикле создается ВТ с одним именем, но содержащая различные данные. Если не уничтожена старая таблица с таким именем - попытка поместить новую с таким же именем вызовет исключение.
|
|||
15
mikecool
11.11.13
✎
17:29
|
(11) (12) это как правило хорошего тона - убрать за собой мусор
|
|||
16
mikecool
11.11.13
✎
17:29
|
(14) за изначально "в запросе в цикле создается ВТ с одним именем," можно руки отбить )
|
|||
17
Dmumaju
11.11.13
✎
17:32
|
Если например, ВТ создается в запросе схемы отчета, построенном на СКД, то лучше удалить, т.к. есть подозрения, что само оно произойдет только в момент закрытия отчета.
|
|||
18
Dmumaju
11.11.13
✎
17:33
|
(16) и тулово
|
|||
19
Лефмихалыч
11.11.13
✎
17:35
|
(0) в пакетных запросах сами очищаются. Только было замечено, что пакетные запросы на СКД ведут себя как-то хрен пойми и почему, короче, в отчетах лучше руками грохать
|
|||
20
Нуф-Нуф
11.11.13
✎
17:35
|
если вы подключаете менеджер временных таблиц "Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;" то удаление временных таблиц рекомендуется.
Ибо при наличие гамнокода в виде "Выборка = Запрос.Выполнить().Выбрать()" (вместо правильного использования РезультатЗапроса = Запрос.Выполнить()) вы не сможете повторить Запрос.Выполнить() в отладке, ибо будет ругаться на существование временной таблицы с таким же именем |
|||
21
Нуф-Нуф
11.11.13
✎
17:37
|
вот такой запрос работает:
Запрос = Новый Запрос; //Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | Валюты.Ссылка, | Валюты.ВерсияДанных, | Валюты.ПометкаУдаления, | Валюты.Предопределенный, | Валюты.Код, | Валюты.Наименование, | Валюты.НаименованиеПолное, | Валюты.ПараметрыПрописиНаРусском, | Валюты.ПараметрыПрописиНаАнглийском |ПОМЕСТИТЬ врем |ИЗ | Справочник.Валюты КАК Валюты |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | врем.Ссылка, | врем.ВерсияДанных, | врем.ПометкаУдаления, | врем.Предопределенный, | врем.Код, | врем.Наименование, | врем.НаименованиеПолное, | врем.ПараметрыПрописиНаРусском, | врем.ПараметрыПрописиНаАнглийском |ИЗ | врем КАК врем"; Выборка = Запрос.Выполнить().Выбрать(); РезультатЗапроса = Запрос.Выполнить(); Если раскомментировать строчку - будет падать по ошибке |
|||
22
Полотенчик
11.11.13
✎
17:40
|
(8) при чем тут МВТ/пакетный запрос и древность?
|
|||
23
Лефмихалыч
11.11.13
✎
17:41
|
(21) оба варианта поведения - это нормально и нет говнокода ни там, ни там
|
|||
24
Нуф-Нуф
11.11.13
✎
17:49
|
(23) я считаю что сначала лучше получить результат запроса, а уж потом выбирать. иначе в определенных случаях можно нарваться на (20), что неприятно
|
|||
25
GANR
11.11.13
✎
17:52
|
(16) Согласен полностью, запрос в цикле - это отстой, но распределение с множеством переделов по определенным правилам без запросов в цикле сделать весьма непросто - это задачки из сборника "1С:Специалист по Платформе" легко решить без запроса в цикле. А вот реальные задачи, (РАУЗ, к примеру) - совсем иное.
|
|||
26
Лефмихалыч
11.11.13
✎
17:54
|
(24) >лучше получить результат запроса, а уж потом выбирать
тебе от похудания основательно снесло кукушечку или ты просто выразился неправильно? |
|||
27
Нуф-Нуф
11.11.13
✎
17:54
|
(26) ты просто не наступал на эти грабли
|
|||
28
hhhh
11.11.13
✎
19:20
|
(27) используй РезультатыЗапроса = Запрос.ВыполнитьПакет();
у тебя получается массив таблиц, и в отладчике получать не надо уже. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |