Имя: Пароль:
1C
 
СКД и временные таблицы
0 Новичок
 
16.03.09
16:17
Необходмо в наборе данных (Запрос) обратиться к внутренней таблице. Как это сделать?
1 Mitriy
 
16.03.09
16:20
пакетный запрос?
2 Mitriy
 
16.03.09
16:21
или добавить набор данных - объект...
3 IronDemon
 
16.03.09
16:23
Так временные или внутренние?
4 Новичок
 
16.03.09
16:29
(3) ВРЕМЕННЫЕ таблицы, из внешнего источника ТаблицыЗначений
5 IronDemon
 
16.03.09
16:31
Во внешнем источнике нет временных таблиц.
6 Новичок
 
16.03.09
16:34
Суть такая: мне нужно соединить НаборДанных Запрос с Временной таблицей
7 Новичок
 
16.03.09
17:00
Можно ли это сделать не создавая НаборДанных2 ?
8 Новичок
 
16.03.09
17:22
(1) А как в пакетном запросе Использовать менеджер временных таблиц?
9 GenV
 
16.03.09
17:25
(8) Ты можеш либо передать в СКД свою ТЗ и использовать её как другой набор данных, либо создать в СКД пакетный запрос без использования внешних ТЗ.
10 fisher
 
16.03.09
17:32
(8) В пакетном запросе необязательно использовать менеджер временных таблиц - в этом случае время жизни временной таблицы ограничивается выполнением пакета.
Т.е. первым запросом пакета помещаешь данные во временную таблицу, вторым запросом пакета - используешь.
11 gr13
 
16.03.09
17:32
(8) нет низзя
12 Новичок
 
16.03.09
17:36
(10) Ну мне нужно использовать менеджер временных таблиц в первом запросе, так как данные я беру из таблицы значений. Как это сделать?
13 fisher
 
16.03.09
17:43
(12) Не нужно. Либо ты не понял, что такое пакетные запросы, либо я не понял, чего ты не понял :)
14 Новичок
 
16.03.09
17:48
(13) ))
Есть НаборДанных1 (Запрос)

"Выбрать А, В из Документы.ДокументИмя"

Есть таблица значений.

Мне нужно соединить их по полю А.
15 gr13
 
16.03.09
17:51
(14) гы) а что тебе мешает использовать пакет запросов?
16 Новичок
 
16.03.09
18:05
(15) Мешает то что я не могу создать временную таблицу на основе таблицы значений в пакете запросов, так как не знаю как это сделать
17 fisher
 
16.03.09
18:06
(16)
ВЫБРАТЬ ТЗ.А
ПОМЕСТИТЬ МояВременнаяТаблица
ИЗ &ТЗ КАК ТЗ
;
ВЫБРАТЬ А, В
ИЗ Документы.ДокументИмя КАК МояТаблица
СОЕДИНЕНИЕ МояВременнаяТаблица ПО МояТаблица.А = МояВременнаяТаблица.А
18 gr13
 
16.03.09
18:07
(16) а что тебе мешает в одном пакете запроса выбрать а и б из документа и подсунуть в другой запрос? не разбивая их на 10
19 Новичок
 
16.03.09
18:08
(18) таблица значений заполняется из файла.
20 Новичок
 
16.03.09
18:09
(17)

ВЫБРАТЬ ТЗ.А
ПОМЕСТИТЬ МояВременнаяТаблица
ИЗ &ТЗ КАК ТЗ

Как передать ТЗ в запрос в СКД?
21 fisher
 
16.03.09
18:10
(20) Параметром. При программном формировании отчета на базе СКД.
22 Новичок
 
16.03.09
18:13
ВЫБРАТЬ
   Таб.A,
   Таб.B
ПОМЕСТИТЬ Таб
ИЗ
   &Таб КАК Таб
   
;    
////////////////////////////////////////////////////////////////////////////////
   
ВЫБРАТЬ
........



Ошибка в запросе набора данных
по причине:
{(9, 2)}: Неверные параметры "Таб"
<<?>>&Таб КАК Таб
23 Новичок
 
16.03.09
18:16
параметр устанавливаю так:    

парам = СхемаКомпоновкиДанных.Параметры.Добавить();
парам.Значение = ТЗ;
парам.ВключатьВДоступныеПоля = истина;
24 Новичок
 
16.03.09
18:16
что я не так делаю?
25 IronDemon
 
16.03.09
18:17
Простой пример с ТЗ http://ibox.org.ua/90545/
26 Новичок
 
16.03.09
18:23
(25) Большое спасибо за пример!

Но все таки, интересно как использовать временные таблицы в пакетах запросов
27 73
 
16.03.09
18:32
Запрос = Новый Запрос("
   |ВЫБРАТЬ
   |    ТЗ.Товар,
   |    ТЗ.Количество,
   |    ТЗ.Цена
   |ПОМЕСТИТЬ Товары
   |ИЗ
   |    &ТЗ КАК ТЗ
   |;
   |///////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    Товары.Товар,
   |    СУММА(Товары.Количество) КАК Количество,
   |    МИНИМУМ(Товары.Цена) КАК Цена
   |ИЗ
   |    Товары КАК Товары
   |
   |СГРУППИРОВАТЬ ПО
   |    Товары.Товар
   |");

   Запрос.УстановитьПараметр("ТЗ", ТЗ);
   Результат = Запрос.Выполнить();
28 fisher
 
16.03.09
18:37
(26) Как использовать временные таблицы в пакетах запросов ты уже знаешь.
Но вот автозаполнение в СКД именно <по пакетному запросу с помещением ТЗ во временную таблицу> - в самом деле ругается... А может и не только автозаполнение - это проверять надо (попробовать заполнить настройки полей вручную - но скорее всего всё-таки ругнется на этапе сборки макета). Если таки болт - тогда остается отдельным набором данных оформлять... Но доп. наборы данных только через левое соединение соединяются...
29 fisher
 
16.03.09
18:42
(28) +
Обычный пакетный запрос с формированием и использованием временной таблицы (не из ТЗ) прокатывает в СКД на ура.
30 Новичок
 
16.03.09
18:44
(29) Я знаю, но так как временная таблица заполняется данными из ТЗ, полученными из внешнего файла, то мне это не поможет)
31 fisher
 
16.03.09
18:45
(30) А соединение двух наборов данных почему не подходит?
32 Новичок
 
16.03.09
18:51
(31)

Я хотел использовать конструкции вида

"ВЫБОР
КОГДА Таблица1.ПолеА = 0
ТОГДА Таблица2.ПолеА
ИНАЧЕ Таблица1.ПолеА
КОНЕЦ"

в своих запросах соединения таблиц.
По моему, с использованием двух НаборовДанных это сделать не получится.
Буду копать)
33 fisher
 
16.03.09
19:16
(32) Тогда я бы всё-таки попробовал заполнить параметры полей набора данных для этого запроса вручную. Объективных причин для того, чтобы СКД не могла выполнить этот запрос, вроде бы нет... Разве только СКД совсем не умеет принимать ТЗ в качестве параметра.
34 Гений 1С
 
гуру
16.03.09
19:55
так все-таки - можно или нельзя? Вопрос очень важный!
35 Kashemir
 
16.03.09
21:05
(34) Нельзя
36 Kashemir
 
16.03.09
21:07
(32) Левое присоединение и используй конструкции "ВЫБОР" в вычисляемых полях, если поможет.
37 Sol78
 
16.03.09
22:26
(34) Фиксин, ну ты же на партнерском форуме пасся больше года, эта тема не раз поднималась.

Пакетные запросы использовать в СКД можно, но только не те, где Временная таблица сделана на основе внешнего источника. В этом случае для СКД остаётся только набор данных Объект.