![]() |
|
Работа с менеджером временных таблиц | ☑ | ||
---|---|---|---|---|
0
inmortal203
03.06.13
✎
11:07
|
Есть обработка, в которой хочу обработать запросом табличную часть.
МВТ = Новый МенеджерВременныхТаблиц; Запр=Новый Запрос; Запр.МенеджерВременныхТаблиц = МВТ; Запр.Текст = "ВЫБРАТЬ * |ПОМЕСТИТЬ Товары |ИЗ &ЗагрузкаЗаказа КАК ЗагрузкаЗаказа"; Запр.УстановитьПараметр("ЗагрузкаЗаказа",Товары.Выгрузить()); Запр.Выполнить(); Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МВТ; Запрос.Текст = "ВЫБРАТЬ | ЦеныНоменклатурыСрезПоследних.Цена |ИЗ | Товары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО Товары.Наименование = ЦеныНоменклатурыСрезПоследних.Номенклатура |ГДЕ | ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен"; Запрос.УстановитьПараметр("ТипЦен",Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000002")); Выборка = Запрос.Выполнить().Выбрать(); 1С выдает что поле "Товары.Номенклатура" не существует. Почему оно так? |
|||
1
mikecool
03.06.13
✎
11:08
|
и правильно выдает, ты же постоянно пустой мвт передаешь
|
|||
2
inmortal203
03.06.13
✎
11:10
|
как так? обоснуешь кодом?
|
|||
3
zmaximka
03.06.13
✎
11:11
|
Новый Запрос это лишнее
|
|||
4
Ёпрст
гуру
03.06.13
✎
11:11
|
(0)
выкини создание Запроса каждый раз, как и задания менеджера временных таблиц. |
|||
5
zmaximka
03.06.13
✎
11:12
|
Запр.Текст =
"ВЫБРАТЬ | ЦеныНоменклатурыСрезПоследних.Цена |ИЗ | Товары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО Товары.Наименование = ЦеныНоменклатурыСрезПоследних.Номенклатура |ГДЕ | ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен"; и .... |
|||
6
Ёпрст
гуру
03.06.13
✎
11:12
|
И .. используй пакетный запрос.
|
|||
7
inmortal203
03.06.13
✎
11:22
|
попробовал создать пакетный запрос, ругается что нет выбранных полей. то есть создается запрос с пустой таблицей без единого поля. естественно связей по полям которых нет тоже не утсановишь
|
|||
8
wraithik
03.06.13
✎
11:23
|
Товары.Выгрузить() - там колонка товар есть?
|
|||
9
alexhtn
03.06.13
✎
11:23
|
В соединении таблиц пишешь "ПО Товары.Наименование".
А в тексте ошибки Товары.Номенклатура. Что-то не сходится. |
|||
10
inmortal203
03.06.13
✎
11:24
|
(9)
Попутал... Товары.Наименование всюду |
|||
11
inmortal203
03.06.13
✎
11:25
|
но суть не в этом, а в том что сама Товары пуста. То есть ни Номенклатура ни Наименование в ней нет
|
|||
12
alexhtn
03.06.13
✎
11:27
|
Попробуй писать вместо * имена колонок
"ВЫБРАТЬ Номенклатура |ПОМЕСТИТЬ Товары |
|||
13
inmortal203
03.06.13
✎
11:28
|
(8)
Я выгружаю всю табличную часть, потом обращаюсь по ее имени, я не прав? В табличной части 2 поля - Наименование и количество. |
|||
14
inmortal203
03.06.13
✎
11:29
|
(12)
Так тоже не катит, пишет "Поле не найдено" |
|||
15
Любопытная
03.06.13
✎
11:32
|
(14)обрабатываешь ТЧ чего? Обратись к ней по ссылке в запросе, чего ты ее туда-сюда выгружаешь-загружаешь.
И да - пакетный запрос удобоваримее, имхо |
|||
16
ИС-2
naïve
03.06.13
✎
11:32
|
так пробывал?
+ Code МВТ = Новый МенеджерВременныхТаблиц; Запр=Новый Запрос; Запр.МенеджерВременныхТаблиц = МВТ; Запр.Текст = "ВЫБРАТЬ * |ПОМЕСТИТЬ Товары |ИЗ &ЗагрузкаЗаказа КАК ЗагрузкаЗаказа"; Запр.УстановитьПараметр("ЗагрузкаЗаказа",Товары.Выгрузить()); Запр.Выполнить(); // Запрос = Новый Запрос; // Запрос.МенеджерВременныхТаблиц = МВТ; Запрос.Текст = "ВЫБРАТЬ | ЦеныНоменклатурыСрезПоследних.Цена |ИЗ | Товары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО Товары.Наименование = ЦеныНоменклатурыСрезПоследних.Номенклатура |ГДЕ | ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен"; |
|||
17
wraithik
03.06.13
✎
11:33
|
Товары.Наименование замени на Товары.Номенклатура
|
|||
18
inmortal203
03.06.13
✎
11:36
|
(17)
Именно то! Уже углядел) Спасибо, все работает... Почему то был уверен что в ТЧ именно Наименование |
|||
19
inmortal203
03.06.13
✎
11:37
|
а так изначальный код рабочий...
информация к размышлению тем кто советовал следующее) // Запрос = Новый Запрос; // Запрос.МенеджерВременныхТаблиц = МВТ; |
|||
20
1Сергей
03.06.13
✎
11:38
|
(19) нафиг тут не упёрся это МВТ. Всё делается одним запросом
|
|||
21
inmortal203
03.06.13
✎
11:40
|
(20)
Не скажи... Я же говорю что... см. (7) |
|||
22
inmortal203
03.06.13
✎
11:41
|
Ну или как вариант написать ручками весь запрос) Конструктор зло...
|
|||
23
ИС-2
naïve
03.06.13
✎
11:43
|
(19) откуда второй запрос найдет МВТ первого запроса? Переменную запрос фактически обнуляешь.
|
|||
24
ИС-2
naïve
03.06.13
✎
11:44
|
а хотя понял, в переменной МВТ храниться Товары. Работает, но,имхо, дурной стиль.
|
|||
25
inmortal203
03.06.13
✎
11:49
|
(24)
Может быть дурной, но как лишний опыт сгодится |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |