|   |   | 
| 
 | Работа с менеджером временных таблиц | ☑ | ||
|---|---|---|---|---|
| 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 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 03.06.13✎ 11:43 | 
        (19) откуда второй запрос найдет МВТ первого запроса? Переменную запрос фактически обнуляешь.     | |||
| 24
    
        ИС-2 03.06.13✎ 11:44 | 
        а хотя понял, в переменной МВТ храниться Товары. Работает, но,имхо, дурной стиль.     | |||
| 25
    
        inmortal203 03.06.13✎ 11:49 | 
        (24) 
  Может быть дурной, но как лишний опыт сгодится | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |