|
Помогите с запросом к временым таблицам Ø (GROOVY 30.11.2011 07:50) | ☑ | ||
---|---|---|---|---|
0
Max1986
29.11.11
✎
13:36
|
в продолжении
https://1cers.ru/topic.php?upd&id=581996 решил немного переписать запрос. Сделал так: МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.Текст =" |ВЫБРАТЬ | РегистрСведений.СписанныеТовары.Номенклатура КАК Номенклатура, | РегистрСведений.СписанныеТовары.Склад КАК Склад |ПОМЕСТИТЬ ВременнаяТабл |ИЗ | РегистрСведений.СписанныеТовары |ГДЕ |РегистрСведений.СписанныеТовары.Регистратор = &Ссылка |; |ВЫБРАТЬ | СписанныеТовары.НомерСтрокиДокумента КАК НомерСтрокиДокумента, | ПартииТоваровНаСкладах.ДокументОприходования КАК ДокументОприходования, ........ |ИЗ | РегистрСведений.СписанныеТовары КАК СписанныеТовары | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.Остатки( | &Дат, | Организация = &Организация | И Номенклатура В | (ВременнаяТабл.Номенклатура) | И (Склад В | (ВременнаяТабл.Склад) ИЛИ Склад = &ПустойСклад)) КАК ПартииТоваровНаСкладах Но не работает пишет - Ошибка.Поле не найдено "ВременнаяТабл.Номенклатура" (<<?>>ВременнаяТабл.Номенклатура) Подскажите, что я делаю не так? |
|||
1
Ненавижу 1С
гуру
29.11.11
✎
13:37
|
И Номенклатура В
(ВЫБРАТЬ ВременнаяТабл.Номенклатура ИЗ ВременнаяТабл КАК ВременнаяТабл) |
|||
2
Staffa
29.11.11
✎
13:38
|
(ВременнаяТабл.Номенклатура)
заменить на (Выбрать ВТ.Номенклатура Из ВременнаяТабл КАК ВТ) и со складом тоже самое |
|||
3
Max1986
29.11.11
✎
13:38
|
Спасибо!
|
|||
4
Buster007
29.11.11
✎
13:42
|
ВЫБРАТЬ ВременнаяТабл.Номенклатура ИЗ ВременнаяТабл
)) |
|||
5
Max1986
29.11.11
✎
13:43
|
А еще 2 вопроса:
1. После выполнения как удалить менеджер Временных таблиц ? Я написал Запрос.МенеджерВременныхТаблиц = Неопределено; 2.Как происходит блокировка таблиц в SQL при выполнении данного запроса? Т.е. когда первый запрос из пакета выполнился, но второй еще нет - будут ли освобождены таблицы которые в нем используются. Это важно для параллельной работы |
|||
6
Max1986
29.11.11
✎
13:46
|
+(5)Запрос заработал. Но несмотря на то что использую теперь временную таблицу, скорость выполнения не уменьшилась. Визуально на 1 сек увеличилось даже.
Что разве не влияют они на скорость? |
|||
7
Ненавижу 1С
гуру
29.11.11
✎
13:50
|
(5)
1. в пакетном удалять и создавать менеджера не надо совсем 2. никак, у тебя нет ДЛЯ ИЗМЕНЕНИЯ, если будет - то блокируется до конца транзакции |
|||
8
Ненавижу 1С
гуру
29.11.11
✎
13:51
|
(6) попробуй его еще раз выполнить, когда он закешировался
|
|||
9
Max1986
29.11.11
✎
13:54
|
(7)>> в пакетном удалять и создавать менеджера не надо совсем
т.е. вообще в пакетном мнеджер временных таблиц не нужен? Блин, а я его всегда создавал! Точно можно не пользоваться? Получается он нужен когда использую внешнюю таблицу? (8)скорость не изменилась. Но мне кажется меньше стало блокировок |
|||
10
Staffa
29.11.11
✎
13:55
|
(9) менеджер нужен, когдна одну ВТ ты будешь использовать в нескольких различных запросах
|
|||
11
Max1986
29.11.11
✎
13:57
|
(10)т.е. если есть пакет и там несколько запросов к временной таблице - то надо?
Тогда правильно использовал |
|||
12
Staffa
29.11.11
✎
14:01
|
(11) нет, если у тебя несколько объектов "Запрос" и тебе надо из одного в другой передать, например, список номенклатуры, то здесь нужно использовать МВТ. Если объект "Запрос" один (любой сложности), то МВТ не нужно.
|
|||
13
Staffa
29.11.11
✎
14:02
|
+(12) "список номенклатуры" в виде ВТ, конечно.
|
|||
14
Max1986
29.11.11
✎
14:04
|
(12)независимо от количества временных таблиц в одном запросе?
|
|||
15
Staffa
29.11.11
✎
14:04
|
(14) да
|
|||
16
Max1986
29.11.11
✎
14:10
|
(15)спасибо.
Неясно осталось - как влияет разложение одного запроса с подзапросами в СОЕДИНЕНИИ на пакетные запросы. В книгах по оптимизации сказано - влияет. реально - не видно |
|||
17
Staffa
29.11.11
✎
14:12
|
(16) возьми запрос по формированию расчетного листа из ЗУПа и убери оттуда временные таблицы - увидишь, насколько(!) влияет.
да и просто по логике вещей запрос в ВТ выполняется один раз и выдает готовый рекордсет, который ты вертишь в дальнейшем как хочешь. |
|||
18
Ненавижу 1С
гуру
29.11.11
✎
14:15
|
1c придумало TOTALS, хот был уже ROLLUP
|
|||
19
Max1986
29.11.11
✎
14:20
|
(18)не понял. Поясни плиз.
|
|||
20
Vitally Programmer
29.11.11
✎
14:35
|
(18)А что такое пакетный запрос и чем он отличается от непакетноко,и что понимается под словом пакет?
|
|||
21
rs_trade
29.11.11
✎
14:37
|
(20) несколько запросов
|
|||
22
Vitally Programmer
29.11.11
✎
14:58
|
(21) Несколько запросов-это один пакет? или каждое обращение к таблице это пакет?
|
|||
23
Max1986
29.11.11
✎
15:14
|
(22)несколько запросов в одном.
Неужели не пользовался? |
|||
24
Max1986
29.11.11
✎
15:15
|
+(23)Типа
ВЫБРАТЬ * ИЗ Таблицы А Поместить АА ; ВЫБРАТЬ * ИЗ Таблицы Б Поместить ББ ну и т.д. |
|||
25
Vitally Programmer
29.11.11
✎
15:19
|
(24) это создание временных таблиц использовано,а если я просто пишу
Выбрать Из Регистр1 ЛевоеСоединение( выбрать из Регистр2) это два пакета или один? |
|||
26
Ненавижу 1С
гуру
29.11.11
✎
15:19
|
(25) и там и там пакет один ))
|
|||
27
andrewks
29.11.11
✎
15:19
|
(25) ЖКК почитать не предлагать?
|
|||
28
Vitally Programmer
29.11.11
✎
15:21
|
(26) А как написать два пакета? И ,как я понял-пакет-это просто выполняемый текст запроса?
|
|||
29
andrewks
29.11.11
✎
15:22
|
(28)
Запрос1 ; Запрос2 ; Запрос3 и т.д. |
|||
30
Vitally Programmer
29.11.11
✎
15:25
|
(29)А,понятно вроде
|
|||
31
Vitally Programmer
30.11.11
✎
07:49
|
(29)Васили Петрович,в конструкторе вот как показано:
ВЫБРАТЬ ТиповойОбороты.Регистратор, ТиповойОбороты.КорСубконто1, ТиповойОбороты.КорСубконто2, ТиповойОбороты.Субконто1, ТиповойОбороты.Субконто2 ПОМЕСТИТЬ ТЧВрем ИЗ РегистрБухгалтерии.Типовой.Обороты(&НачДата, &КонДата, Регистратор, счет В ИЕРАРХИИ (&СписокСчетовВыручки), , организация В (&СписокОрганизаций), , ) КАК ТиповойОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТЧВрем.Регистратор, ТЧВрем.Субконто1, ТЧВрем.Субконто2, ТЧВрем.КорСубконто1, ТЧВрем.КорСубконто2 ИЗ ТЧВрем как ТЧВрем ОБЪЕДИНИТЬ ВСЕ Выбрать ТиповойОборотыСебестоимость.Счет, ТиповойОборотыСебестоимость.Субконто1, ТиповойОборотыСебестоимость.Субконто2, ТиповойОборотыСебестоимость.КорСубконто1, ТиповойОборотыСебестоимость.КорСубконто2 ИЗ РегистрБухгалтерии.Типовой.Обороты(&НачДата, &КонДата, Регистратор, счет В ИЕРАРХИИ (&СписокСчетовСебестоимости), , Организация В (&СписокОрганизаций), , ) КАК ТиповойОборотыСебестоимость Где ТиповойОборотыСебестоимость.Регистратор В(Выбрать ТчВрем.Регистратор из ТЧВрем) (Создание временной таблицы-это один пакет,а все остальное -это другой пакет) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |