Имя: Пароль:
1C
1С v8
Временная таблица. Вопрос:
0 NoobiC
 
27.04.12
09:24
Помогите нубу.
В качестве временной таблицы использую ТЗ. Запрос - проще некуда
   Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                  |    ВтСотрудники.Сотрудник,
                  |    ВтСотрудники.Сотрудник.Код КАК ТабельныйНомер,
                  |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
                  |    РаботникиОрганизацийСрезПоследних.Должность,
                  |    ВтСотрудники.ПроцентПремии
                  |ИЗ
                  |    ВтСотрудники КАК ВтСотрудники
                  |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ВыбДата, ) КАК РаботникиОрганизацийСрезПоследних
                  |        ПО ВтСотрудники.Сотрудник = РаботникиОрганизацийСрезПоследних.Сотрудник"
   ;
   Запрос.УстановитьПараметр("ВыбДата", ДатаПриказа);
   
   
   Тз = Начисления.Выгрузить();
   Запрос.УстановитьПараметр("ВтСотрудники", ТЗ);
---
Начисления - это табличная часть внешней обработки.
При выполнении запроса выдает ошибку:

"Таблица не найдена "ВтСотрудники"
<<?>>ВтСотрудники КАК ВтСотрудники"
В ЖКК прочел, что можно использовать как табличную часть, так и ТЗ. Но ни табличной частью, ни ТЗ не получилось запхать во временную таблицу.
1 Wobland
 
27.04.12
09:25
ИЗ &ВТ ? обращайся к ТЧ и не люби мозг
2 NoobiC
 
27.04.12
09:28
ТЧ - табличная часть внешней обработки. Как ее запхать в запрос без ВТ?
3 aleks-id
 
27.04.12
09:29
погугли МенеджерВременныхТаблиц
4 Maxus43
 
27.04.12
09:33
|ИЗ
                  |    &ВтСотрудники КАК ВтСотрудники
5 Maxus43
 
27.04.12
09:34
(4) + сначала втСотрудники надо в отдельном пакете запроса поместить в ВТ.
то что ты назвал её Вт - не делает её временной таблицей
6 NoobiC
 
27.04.12
09:37
попытался поместить.
   МВТ = Новый МенеджерВременныхТаблиц;
   Запрос = Новый Запрос;
   Запрос.МенеджерВременныхТаблиц = МВТ;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ВтСотрудники.Сотрудник,
                  |    ВтСотрудники.ПроцентПремии
                  |ПОМЕСТИТЬ ВтСотрудники
                  |ИЗ
                  |    ВтСотрудники КАК ВтСотрудники"
   ;
   Запрос.УстановитьПараметр("ВтСотрудники", Начисления);
   Запрос.Выполнить();
   Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                  |    ВтСотрудники.Сотрудник,
                  |    ВтСотрудники.Сотрудник.Код КАК ТабельныйНомер,
                  |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
                  |    РаботникиОрганизацийСрезПоследних.Должность,
                  |    ВтСотрудники.ПроцентПремии
                  |ИЗ
                  |    ВтСотрудники КАК &ВтСотрудники
                  |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ВыбДата, ) КАК РаботникиОрганизацийСрезПоследних
                  |        ПО ВтСотрудники.Сотрудник = РаботникиОрганизацийСрезПоследних.Сотрудник"
   ;
   Запрос.УстановитьПараметр("ВыбДата", ДатаПриказа);

Все равно ругается на то, что таблица не найдена. Чото я недопонимаю в ВТ-ах :(
7 Maxus43
 
27.04.12
09:38
ВЫБРАТЬ
   Банки.Ссылка,
   Банки.Наименование
ПОМЕСТИТЬ втБанки
ИЗ
   &ТЗ КАК Банки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   втБанки.Ссылка,
   втБанки.Наименование,
   Банки.КоррСчет,
   Банки.Город
ИЗ
   втБанки КАК втБанки
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Банки КАК Банки
       ПО втБанки.Ссылка = Банки.Ссылка
8 КМ155
 
27.04.12
09:38
(5) |ИЗ
                  |    &ВтСотрудники КАК ВтСотрудники"
9 Maxus43
 
27.04.12
09:39
всё в конструкторе делай! он покажет как правильно
10 salvator
 
27.04.12
09:39
Плюс ко всему, колонки ТЗ должны быть типизированы
11 Maxus43
 
27.04.12
09:40
(8) > (6)
12 Maxus43
 
27.04.12
09:40
(10) это норм, он выгружает из ТЧ их
13 NoobiC
 
27.04.12
09:41
Спасибо (8)! Получилось! Просто конструктор не ставит амперсанд при создании!
Спасибо, ребят, реально помогли!
14 salvator
 
27.04.12
09:42
Во 2-м запросе вместо
|ИЗ
|    ВтСотрудники КАК &ВтСотрудники

|ИЗ
|    ВтСотрудники КАК ВтСотрудники
15 Maxus43
 
27.04.12
09:42
да, до поста (8) все советы неправильные были)
16 Maxus43
 
27.04.12
09:44
(13) пиши сразу красиво, в одном запросе всё, как в (7).
   МВТ = Новый МенеджерВременныхТаблиц; - в этом случае нафиг не нужен, это для разорваных на части запросов
17 NoobiC
 
27.04.12
09:56
(15) - :). Я просто не приготовил как следует ВТ.
Если делать через (7) то что,Менеджер создавать не надо? Тогда каким образом вТ(это ж по сути ВТ) запхается в запрос?
18 Maxus43
 
27.04.12
09:57
(17) это пример пакетного запроса, просто сделай и увидиш что работает
19 Maxus43
 
27.04.12
09:58
в консоли запросов например пользовать можно, ни строчки кода по созданию Менеджеров не надо
20 Maxus43
 
27.04.12
09:59
И вобще - этот код по сути не имеет смысла, т.к. Запрос Новый - то и менеджер Новый сразу у него.
МВТ = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МВТ;

Менеджер уже присутствует в запросе изначально