Вход | Регистрация
 

Использование кросс-таблиц в языке запросов [нашли МВТ и ПОМЕСТИТЬ Реквизиты]

Использование кросс-таблиц в языке запросов [нашли МВТ и ПОМЕСТИТЬ Реквизиты]
Я
   Гений 1С
 
04.12.20 - 12:37
Рарус-конфа на базе БП3. Модуль менеджера ПКО.

Встречаю вот такой код в языке запросов:


|ВЫБРАТЬ
|    Реквизиты.Дата КАК Период,
|    Реквизиты.Ссылка КАК Регистратор,
|    ...,
|ИЗ
|    Документ.ПриходныйКассовыйОрдер КАК Реквизиты
|ГДЕ
|    Реквизиты.Ссылка = &Ссылка
|;
|
|
|ВЫБРАТЬ
|    1 КАК НомерСтроки,
|    Реквизиты.СчетУчетаРасчетовСКонтрагентом КАК СчетКт,
|    Реквизиты.СубконтоКт1 КАК СубконтоКт1,
|    Реквизиты.СубконтоКт2 КАК СубконтоКт2,
|    Реквизиты.СубконтоКт3 КАК СубконтоКт3,
|    ...
|    Реквизиты.ПодразделениеОрганизации КАК ПодразделениеДт,
|    Реквизиты.СуммаДокумента КАК ВалютнаяСумма,
|    ВЫРАЗИТЬ(Реквизиты.СуммаДокумента * &КоэффициентРуб КАК ЧИСЛО(15, 2)) КАК СуммаРуб
|ИЗ
|    Реквизиты КАК Реквизиты



Сижу, чешу репу - это как? Реквизиты - это ж вроде не временная таблица, каким образом она становится доступна далее, в пакете запроса?
Это что за новые веяния в языке запросов, а?
   polosov
 
1 - 04.12.20 - 12:41
А менеджер временных таблиц не определяется случайно нигде?
   Гений 1С
 
2 - 04.12.20 - 12:50
(1) Определяется:
    Запрос = Новый Запрос;
    МенеджерВременныхТаблиц  = Новый МенеджерВременныхТаблиц;
    Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Но ведь Реквизиты - это ж не ВТ, там нет Поместить?
   RomanYS
 
3 - 04.12.20 - 12:53
(2) Чудес не бывает... запускаю БП3 :)
   trdm
 
4 - 04.12.20 - 12:55
(0) замены строки запроса нет нигде?
   polosov
 
5 - 04.12.20 - 12:55
(2) Результат = Запрос.ВыполнитьПакетСПромежуточнымиДанными();
Сделай и проанализируй.
   Гений 1С
 
6 - 04.12.20 - 12:55
(3) если че, это модуль менеджера ПКО, функция ТекстЗапросаРеквизитыДокумента и ТекстЗапросаПрочееПоступление
Правда, конфа древненькая, счас хз может уже переписали.
   Гений 1С
 
7 - 04.12.20 - 12:56
(4) я финальный запрос тебе выложил, который передается на ВыполнитьПакет
   RomanYS
 
8 - 04.12.20 - 12:58
(6)
    Запрос = Новый Запрос;
    МенеджерВременныхТаблиц  = Новый МенеджерВременныхТаблиц;
....    
    ПодготовитьПараметрыРеквизитыДокумента(Запрос, ПараметрыПроведения, Отказ)//вот здесь поместить

....
//а здесь вызов ТекстЗапросаПрочееПоступление()
   Гений 1С
 
9 - 04.12.20 - 12:58
Может быть это в пакетных запросах происходит неявное помещение таблиц во временные?
В результате пакета три таблицы, ровно по числу запросов в пакете. (там еще есть второй запрос по другим таблицам, я его вырезал)
   RomanYS
 
10 - 04.12.20 - 13:00
Помещение явное, оно сделано ранее и ВТ живут в МВТ. В финишном тексте запроса помещения уже нет, оно и не нужно
   Гений 1С
 
11 - 04.12.20 - 13:00
(5) ради прикола проанализировал:
    Результат = Запрос. ВыполнитьПакетСПромежуточнымиДанными();
    Результат = Запрос.ВыполнитьПакет();

Результаты идентичны. Ничего не понимаю.
   Гений 1С
 
12 - 04.12.20 - 13:01
(10) а да, сукко. Вот это чудеса извращенного мышления! Офигеть...
Они до этого вызывают в ПодготовитьПараметрыРеквизитыДокумента

    "ВЫБРАТЬ
    |    Реквизиты.Дата КАК Дата,
    |    Реквизиты.Ссылка КАК Ссылка,
    |    Реквизиты.ВидОперации КАК ВидОперации,
..
    |    КОНЕЦ КАК ЭтоВозврат
    |ПОМЕСТИТЬ Реквизиты
    |ИЗ
    |    Документ.ПриходныйКассовыйОрдер КАК Реквизиты
    |ГДЕ


Жесть.
Ну слава богу, а то я думал, у меня крыша едет.
   polosov
 
13 - 04.12.20 - 13:02
(12) В следующий раз просто запускай глобальный поиск по "поместить реквизиты"
   Гений 1С
 
14 - 04.12.20 - 13:08
(13) до этого еще надо было додуматься, видишь ли. Я думал, это некая магия. ;-)
   БаксПо90
 
15 - 04.12.20 - 13:13
а ты говоришь 1800 .. старость дело такое, все хотят есть .. но всем нужны молодые и красивые
   RomanYS
 
16 - 04.12.20 - 13:18
(14) А почему ты это кросс-таблицами назвал?
   ADirks
 
17 - 04.12.20 - 13:30
Если физику в школе не учить, то весь мир вокруг будет преисполнен магии
   Гений 1С
 
18 - 04.12.20 - 13:36
(16) ну как-то так в голову пришло. Типа таблица, использованная в одном месте, доступна в другом. Кросс
   Гений 1С
 
19 - 04.12.20 - 13:37
(17) Ай-вэй, к нам пришел Самый Умный. А ты точно Самый Богатый?
   ADirks
 
20 - 04.12.20 - 13:44
(19) А у меня комплекса неполноценности нет, шоб его богатствами компенсировать
   PR
 
21 - 04.12.20 - 13:48
Гений проморгал написанное им же в (0) "Документ.ПриходныйКассовыйОрдер КАК Реквизиты" и такой "О, здесь еще и море есть!"
   Гений 1С
 
22 - 04.12.20 - 13:49
(20) Понятно, Идейно Бедный. Держи Пятюню.
   Гений 1С
 
23 - 04.12.20 - 13:49
(21) Перечитай плиз тему, а то у тебя сложилось поверхностное и неправильное понимание сути вопроса.
   polosov
 
24 - 04.12.20 - 13:50
(21) Так наоборот он это увидел, но не увидел помещение в ВТ.
   PR
 
25 - 04.12.20 - 13:52
(24) Это было очевидно, что он запикал помещение точками
   youalex
 
26 - 04.12.20 - 13:57
(14) Чудо не в том, чтобы летать по воздуху или ходить по воде, но в том, чтобы ходить по земле.
   Гений 1С
 
27 - 06.12.20 - 17:42
(25) нет. ты так и не въехал в тему, перекури ее еще раз, если надо, исходники в БП3 посмотри. Могу и словами объяснить.
   Гений 1С
 
28 - 06.12.20 - 17:42
(24) вот-вот.
   Гений 1С
 
29 - 06.12.20 - 17:43
(24) а не увидел, ибо оно было за километр от второго запроса, в лучших традициях ЗУП, хотя это и не ЗУП, а БП3
   ДедМорроз
 
30 - 06.12.20 - 18:56
Менеджер временных таблиц для этого и нужен,что поместил,а потом достал.

Только вот непонятно,что с параллельным выполнением,если кто-то в другом сеансе в основную таблицу допишет или ещё лучше удалит из нее.
 
 Рекламное место пустует
   Ненавижу 1С
 
31 - 06.12.20 - 19:08
(30) параллельные вычисления можно будет распараллеливать только на клиенте.
Менеджер временных таблиц живет на сервере от начала вызова сервера, до окончания выполнения серверного кода


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.