|
Использование кросс-таблиц в языке запросов [нашли МВТ и ПОМЕСТИТЬ Реквизиты] | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
04.12.20
✎
12:37
|
Рарус-конфа на базе БП3. Модуль менеджера ПКО.
Встречаю вот такой код в языке запросов: |ВЫБРАТЬ | Реквизиты.Дата КАК Период, | Реквизиты.Ссылка КАК Регистратор, | ..., |ИЗ | Документ.ПриходныйКассовыйОрдер КАК Реквизиты |ГДЕ | Реквизиты.Ссылка = &Ссылка |; | | |ВЫБРАТЬ | 1 КАК НомерСтроки, | Реквизиты.СчетУчетаРасчетовСКонтрагентом КАК СчетКт, | Реквизиты.СубконтоКт1 КАК СубконтоКт1, | Реквизиты.СубконтоКт2 КАК СубконтоКт2, | Реквизиты.СубконтоКт3 КАК СубконтоКт3, | ... | Реквизиты.ПодразделениеОрганизации КАК ПодразделениеДт, | Реквизиты.СуммаДокумента КАК ВалютнаяСумма, | ВЫРАЗИТЬ(Реквизиты.СуммаДокумента * &КоэффициентРуб КАК ЧИСЛО(15, 2)) КАК СуммаРуб |ИЗ | Реквизиты КАК Реквизиты Сижу, чешу репу - это как? Реквизиты - это ж вроде не временная таблица, каким образом она становится доступна далее, в пакете запроса? Это что за новые веяния в языке запросов, а? |
|||
1
polosov
04.12.20
✎
12:41
|
А менеджер временных таблиц не определяется случайно нигде?
|
|||
2
Гений 1С
гуру
04.12.20
✎
12:50
|
(1) Определяется:
Запрос = Новый Запрос; МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Но ведь Реквизиты - это ж не ВТ, там нет Поместить? |
|||
3
RomanYS
04.12.20
✎
12:53
|
(2) Чудес не бывает... запускаю БП3 :)
|
|||
4
trdm
04.12.20
✎
12:55
|
(0) замены строки запроса нет нигде?
|
|||
5
polosov
04.12.20
✎
12:55
|
(2) Результат = Запрос.ВыполнитьПакетСПромежуточнымиДанными();
Сделай и проанализируй. |
|||
6
Гений 1С
гуру
04.12.20
✎
12:55
|
(3) если че, это модуль менеджера ПКО, функция ТекстЗапросаРеквизитыДокумента и ТекстЗапросаПрочееПоступление
Правда, конфа древненькая, счас хз может уже переписали. |
|||
7
Гений 1С
гуру
04.12.20
✎
12:56
|
(4) я финальный запрос тебе выложил, который передается на ВыполнитьПакет
|
|||
8
RomanYS
04.12.20
✎
12:58
|
(6)
Запрос = Новый Запрос; МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; .... ПодготовитьПараметрыРеквизитыДокумента(Запрос, ПараметрыПроведения, Отказ);//вот здесь поместить .... //а здесь вызов ТекстЗапросаПрочееПоступление() |
|||
9
Гений 1С
гуру
04.12.20
✎
12:58
|
Может быть это в пакетных запросах происходит неявное помещение таблиц во временные?
В результате пакета три таблицы, ровно по числу запросов в пакете. (там еще есть второй запрос по другим таблицам, я его вырезал) |
|||
10
RomanYS
04.12.20
✎
13:00
|
Помещение явное, оно сделано ранее и ВТ живут в МВТ. В финишном тексте запроса помещения уже нет, оно и не нужно
|
|||
11
Гений 1С
гуру
04.12.20
✎
13:00
|
(5) ради прикола проанализировал:
Результат = Запрос. ВыполнитьПакетСПромежуточнымиДанными(); Результат = Запрос.ВыполнитьПакет(); Результаты идентичны. Ничего не понимаю. |
|||
12
Гений 1С
гуру
04.12.20
✎
13:01
|
(10) а да, сукко. Вот это чудеса извращенного мышления! Офигеть...
Они до этого вызывают в ПодготовитьПараметрыРеквизитыДокумента "ВЫБРАТЬ | Реквизиты.Дата КАК Дата, | Реквизиты.Ссылка КАК Ссылка, | Реквизиты.ВидОперации КАК ВидОперации, .. | КОНЕЦ КАК ЭтоВозврат |ПОМЕСТИТЬ Реквизиты |ИЗ | Документ.ПриходныйКассовыйОрдер КАК Реквизиты |ГДЕ Жесть. Ну слава богу, а то я думал, у меня крыша едет. |
|||
13
polosov
04.12.20
✎
13:02
|
(12) В следующий раз просто запускай глобальный поиск по "поместить реквизиты"
|
|||
14
Гений 1С
гуру
04.12.20
✎
13:08
|
(13) до этого еще надо было додуматься, видишь ли. Я думал, это некая магия. ;-)
|
|||
15
БаксПо90
04.12.20
✎
13:13
|
а ты говоришь 1800 .. старость дело такое, все хотят есть .. но всем нужны молодые и красивые
|
|||
16
RomanYS
04.12.20
✎
13:18
|
(14) А почему ты это кросс-таблицами назвал?
|
|||
17
ADirks
04.12.20
✎
13:30
|
Если физику в школе не учить, то весь мир вокруг будет преисполнен магии
|
|||
18
Гений 1С
гуру
04.12.20
✎
13:36
|
(16) ну как-то так в голову пришло. Типа таблица, использованная в одном месте, доступна в другом. Кросс
|
|||
19
Гений 1С
гуру
04.12.20
✎
13:37
|
(17) Ай-вэй, к нам пришел Самый Умный. А ты точно Самый Богатый?
|
|||
20
ADirks
04.12.20
✎
13:44
|
(19) А у меня комплекса неполноценности нет, шоб его богатствами компенсировать
|
|||
21
PR
04.12.20
✎
13:48
|
Гений проморгал написанное им же в (0) "Документ.ПриходныйКассовыйОрдер КАК Реквизиты" и такой "О, здесь еще и море есть!"
|
|||
22
Гений 1С
гуру
04.12.20
✎
13:49
|
(20) Понятно, Идейно Бедный. Держи Пятюню.
|
|||
23
Гений 1С
гуру
04.12.20
✎
13:49
|
(21) Перечитай плиз тему, а то у тебя сложилось поверхностное и неправильное понимание сути вопроса.
|
|||
24
polosov
04.12.20
✎
13:50
|
(21) Так наоборот он это увидел, но не увидел помещение в ВТ.
|
|||
25
PR
04.12.20
✎
13:52
|
(24) Это было очевидно, что он запикал помещение точками
|
|||
26
youalex
04.12.20
✎
13:57
|
(14) Чудо не в том, чтобы летать по воздуху или ходить по воде, но в том, чтобы ходить по земле.
|
|||
27
Гений 1С
гуру
06.12.20
✎
17:42
|
(25) нет. ты так и не въехал в тему, перекури ее еще раз, если надо, исходники в БП3 посмотри. Могу и словами объяснить.
|
|||
28
Гений 1С
гуру
06.12.20
✎
17:42
|
(24) вот-вот.
|
|||
29
Гений 1С
гуру
06.12.20
✎
17:43
|
(24) а не увидел, ибо оно было за километр от второго запроса, в лучших традициях ЗУП, хотя это и не ЗУП, а БП3
|
|||
30
ДедМорроз
06.12.20
✎
18:56
|
Менеджер временных таблиц для этого и нужен,что поместил,а потом достал.
Только вот непонятно,что с параллельным выполнением,если кто-то в другом сеансе в основную таблицу допишет или ещё лучше удалит из нее. |
|||
31
Ненавижу 1С
гуру
06.12.20
✎
19:08
|
(30) параллельные вычисления можно будет распараллеливать только на клиенте.
Менеджер временных таблиц живет на сервере от начала вызова сервера, до окончания выполнения серверного кода |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |