Ошибка временная таблица уже существует

   cfk

02.12.15 — 14:36

тзДанные77  = Новый ТаблицаЗначений;                

            мт             = Новый Массив;

            мт.Добавить(Тип(«Строка»));          

            мт.Добавить(Тип(«Дата»));          

            мт.Добавить(Тип(«Число»));          

            отСтрока     = Новый ОписаниеТипов(мт,,,

                Новый КвалификаторыЧисла(9,2,ДопустимыйЗнак.Любой),

                Новый КвалификаторыСтроки(25,ДопустимаяДлина.Переменная),

                Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя),);

            
            стрКолонки     = Новый Структура(«Документ,Период,Организация,ОрганизацияКлюч,»

                +»Склад,СкладКлюч,Контрагент,КонтрагентКлюч,Сумма»);                

            Для каждого киз Из стрКолонки Цикл

                тзДанные77.Колонки.Добавить(киз.Ключ,отСтрока);

            КонецЦикла;

            
            Пока РН77.ПолучитьДокумент()=1 Цикл

                Если РН77.Проведен()=1 Тогда

                    стз = тзДанные77.Добавить();

                    стз.Документ         = РН77.НомерДок;

                    стз.Период             = РН77.ДатаДок;

                    стз.Организация     = РН77.Фирма.Наименование;

                    стз.ОрганизацияКлюч = РН77.Фирма.Код;

                    стз.Склад             = РН77.МестоХранения.Наименование;

                    стз.СкладКлюч         = РН77.МестоХранения.Код;

                    стз.Контрагент        = РН77.Контрагент.Наименование;

                    стз.КонтрагентКлюч    = РН77.Контрагент.Код;

                    стз.Сумма             = РН77.Итог(«СуммаСНДС»);

                КонецЕсли;                

                 //Сообщить(«Документ <«+РН77.НомерДок

                 //    +»> от <«+РН77.ДатаДок

                 //    +»>Фирма <«+РН77.Фирма.Наименование

                 //    +»> Контрагент <«+РН77.Контрагент.Наименование

                 //    +»> Сумма <«+РН77.Итог(«СуммаСНДС»)

                 //   +»> Проведен <«+РН77.Проведен()

                 //   +»>»);                                  

            КонецЦикла;

                
               З = Новый Запрос;            

               мвт = Новый МенеджерВременныхТаблиц;

               З.МенеджерВременныхТаблиц = мвт;                        

            З.УстановитьПараметр(«тзДанные77»,тзДанные77);

                        
            З.Текст = »                

                |ВЫБРАТЬ

                |    тзДанные77.Организация,

                |    тзДанные77.ОрганизацияКлюч,

                |    тзДанные77.Склад,

                |    тзДанные77.СкладКлюч,

                |    тзДанные77.Контрагент,

                |    тзДанные77.КонтрагентКлюч,

                |    тзДанные77.Документ,

                |    тзДанные77.Период,

                |    тзДанные77.Сумма

                |ПОМЕСТИТЬ Данные77

                |ИЗ

                |    &тзДанные77 КАК тзДанные77

                |;

                |

                |////////////////////////////////////////////////////////////////////////////////

                |ВЫБРАТЬ

                |    Данные77.Организация,

                |    Данные77.ОрганизацияКлюч КАК Ключ,

                |    МАКСИМУМ(Организации.Ссылка) КАК Ссылка

                |ИЗ

                |    Данные77 КАК Данные77

                |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации

                |        ПО Данные77.ОрганизацияКлюч = Организации.Ключ

                |

                |СГРУППИРОВАТЬ ПО

                |    Данные77.Организация,

                |    Данные77.ОрганизацияКлюч

                |

                |ИМЕЮЩИЕ

                |    МАКСИМУМ(Организации.Ссылка) ЕСТЬ NULL «;

            рз = З.Выполнить();

   cfk

11 — 02.12.15 — 14:45

(8), (9) так понятнее?

Попытка                

        v77 = Новый COMОбъект(«V77.Application»);

        
        Dir = стрПар.Каталог;

        Usr = стрПар.Пользователь;

        Pwd = стрПар.Пароль;

        
        ConnStr = «/D»»»+Dir+»»»»

            +» /N»»»+Usr+»»»»+            

            ?(StrLen(TrimAll(Pwd))<>0,» /P»»»+Pwd+»»» «,»»);

        
//        Сообщить(«Подключаюcь как <«+Usr+»> к <«+Dir+»>»);

        
        Если v77.Initialize(v77.RMTrade,TrimAll(ConnStr),»NO_SPLASH_SHOW») = 0 Тогда

            ВызватьИсключение(«Сбой подключения к <«+Dir+»>»);

        КонецЕсли;

        
//        Сообщить(«Успешно подключена база <«+Dir+»>»);

        
        Период = стрПар.Период;

        
        РН77 = v77.CreateObject(«Документ.РасходнаяНакладная»);

        Если РН77.ВыбратьДокументы(Период.ДатаНачала,Период.ДатаОкончания) = 1 Тогда

            
            тзДанные77  = Новый ТаблицаЗначений;                

            мт             = Новый Массив;

            мт.Добавить(Тип(«Строка»));          

            мт.Добавить(Тип(«Дата»));          

            мт.Добавить(Тип(«Число»));          

            отТипы     = Новый ОписаниеТипов(мт,,,

                Новый КвалификаторыЧисла(9,2,ДопустимыйЗнак.Любой),

                Новый КвалификаторыСтроки(25,ДопустимаяДлина.Переменная),

                Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя),);

            
            стрКолонки     = Новый Структура(«Документ,Период,Организация,ОрганизацияКлюч,»

                +»Склад,СкладКлюч,Контрагент,КонтрагентКлюч,Сумма»);                

            Для каждого киз Из стрКолонки Цикл

                тзДанные77.Колонки.Добавить(киз.Ключ,отТипы);

            КонецЦикла;

            
            Пока РН77.ПолучитьДокумент()=1 Цикл

                Если РН77.Проведен()=1 Тогда

                    стз = тзДанные77.Добавить();

                    стз.Документ         = РН77.НомерДок;

                    стз.Период             = РН77.ДатаДок;

                    стз.Организация     = РН77.Фирма.Наименование;

                    стз.ОрганизацияКлюч = РН77.Фирма.Код;

                    стз.Склад             = РН77.МестоХранения.Наименование;

                    стз.СкладКлюч         = РН77.МестоХранения.Код;

                    стз.Контрагент        = РН77.Контрагент.Наименование;

                    стз.КонтрагентКлюч    = РН77.Контрагент.Код;

                    стз.Сумма             = РН77.Итог(«СуммаСНДС»);

                КонецЕсли;                

                 //Сообщить(«Документ <«+РН77.НомерДок

                 //    +»> от <«+РН77.ДатаДок

                 //    +»>Фирма <«+РН77.Фирма.Наименование

                 //    +»> Контрагент <«+РН77.Контрагент.Наименование

                 //    +»> Сумма <«+РН77.Итог(«СуммаСНДС»)

                 //   +»> Проведен <«+РН77.Проведен()

                 //   +»>»);                                  

            КонецЦикла;

                
               З = Новый Запрос;            

               мвт = Новый МенеджерВременныхТаблиц;

               З.МенеджерВременныхТаблиц = мвт;                        

            З.УстановитьПараметр(«тзДанные77»,тзДанные77);

                        
            З.Текст = »                

                |ВЫБРАТЬ

                |    тзДанные77.Организация,

                |    тзДанные77.ОрганизацияКлюч,

                |    тзДанные77.Склад,

                |    тзДанные77.СкладКлюч,

                |    тзДанные77.Контрагент,

                |    тзДанные77.КонтрагентКлюч,

                |    тзДанные77.Документ,

                |    тзДанные77.Период,

                |    тзДанные77.Сумма

                |ПОМЕСТИТЬ Данные77

                |ИЗ

                |    &тзДанные77 КАК тзДанные77

                |;

                |

                |////////////////////////////////////////////////////////////////////////////////

                |ВЫБРАТЬ

                |    Данные77.Организация,

                |    Данные77.ОрганизацияКлюч КАК Ключ,

                |    МАКСИМУМ(Организации.Ссылка) КАК Ссылка

                |ИЗ

                |    Данные77 КАК Данные77

                |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации

                |        ПО Данные77.ОрганизацияКлюч = Организации.Ключ

                |

                |СГРУППИРОВАТЬ ПО

                |    Данные77.Организация,

                |    Данные77.ОрганизацияКлюч

                |

                |ИМЕЮЩИЕ

                |    МАКСИМУМ(Организации.Ссылка) ЕСТЬ NULL «;

            рз = З.Выполнить();

            Если НЕ рз.Пустой() Тогда

                //ЗначениеВР З.Выполнить().Выгрузить(),ДанныеФормыВЗначение(

                тзОрганизации = З.Выполнить().Выгрузить();

                стрРезультат.Значения.Вставить(«Организации»,тзОрганизации);

            КонецЕсли;    

            
            //Склады

            З.Текст = »

                |ВЫБРАТЬ

                  |    Данные77.Склад,

                  |    Данные77.СкладКлюч КАК Ключ,

                  |    МАКСИМУМ(Склады.Ссылка) КАК Ссылка

                  |ИЗ

                  |    Данные77 КАК Данные77

                  |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады

                  |        ПО Данные77.СкладКлюч = Склады.Ключ

                  |

                  |СГРУППИРОВАТЬ ПО

                  |    Данные77.Склад,

                  |    Данные77.СкладКлюч

                |

                  |ИМЕЮЩИЕ

                  |    МАКСИМУМ(Склады.Ссылка) ЕСТЬ NULL «;

            рз = З.Выполнить().Выгрузить();

            Если НЕ рз.Пустой() Тогда

                тзСклады = рз.Выгрузить();

                стрРезультат.Значения.Вставить(«Склады»,тзСклады);

            КонецЕсли;

            
            //Контрагенты

            З.Текст = »

                |ВЫБРАТЬ

                  |    Данные77.Контрагент,

                  |    Данные77.КонтрагентКлюч КАК Ключ,

                  |    МАКСИМУМ(Контрагенты.Ссылка) КАК Ссылка

                  |ИЗ

                  |    Данные77 КАК Данные77

                  |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты

                  |        ПО Данные77.КонтрагентКлюч = Контрагент.Ключ

                  |

                  |СГРУППИРОВАТЬ ПО

                  |    Данные77.Контрагент,

                  |    Данные77.КонтрагентКлюч

                |

                  |ИМЕЮЩИЕ

                  |    МАКСИМУМ(Контрагенты.Ссылка) ЕСТЬ NULL «;

            Если НЕ рз.Пустой() Тогда

                тзКонтрагенты = рз.Выгрузить();

                стрРезультат.Значения.Вставить(«Контрагенты»,тзКонтрагенты);

            КонецЕсли;

                                          
            //Продажи

            З.Текст = »

                |ВЫБРАТЬ

                |    Данные77.ОрганизацияКлюч,

                |    Данные77.СкладКлюч,

                |    Данные77.КонтрагентКлюч,                

                |    Данные77.Документ,

                |    Данные77.Период,

                |    Данные77.Сумма                

                |ИЗ Данные77″;

            Если НЕ рз.Пустой() Тогда

                тзПродажи = рз.Выгрузить();

                стрРезультат.Значения.Вставить(«Продажи»,тзПродажи);

            КонецЕсли;

                
            мвт.Закрыть();

            стрРезультат.Результат = Истина;

        Иначе                                        

            Сообщить(«У подключенной базы в выбранном периоде нет документов!»);

        КонецЕсли;

        
        v77 = Неопределено;

        
    Исключение

        Сообщить(ОписаниеОшибки());        

        Если мвт<>Неопределено Тогда

            мвт.Закрыть();

        КонецЕсли;

        v77 = Неопределено;

    КонецПопытки;

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account

Labels

ошибка ИР

Несоответствие поведения программы задуманному

проблема

Неожиданное или неудобное поведение программы

{Обработка.Импорт.Форма.Форма.Форма}: Ошибка при вызове метода контекста (Выполнить): {(12, 11)}: Временная таблица уже существует «Данные77» ПОМЕСТИТЬ <<?>>Данные77

второй раз вызываешь без обнуления переменных…

Отладкой делаешь З.Выполнить, смотришь результат. А как оно само доходит до этой строчки, то падает.

тоесть нет =) С первого раза выскакивает. А менеджер в исключении закрывается

не понял, чем будет отличаться отладка от рантайма в данном случае

тем, что в рантайм не будет повторного создания ВТ

(8,9) где вы видите повторное создание. С ПЕРВОГО раза выскакивает, говорю вам. и Менеджер временных таблиц закрывается каждый раз при исключении. Т.е. временные таблицы после каждого исключения уничтожаются.

Дайте пепла, я одел рубище Закрыто

З.МенеджерВременныхТаблиц = мвт; Удаляй это нафиг

,, Слово ЗАКРЫТО означает что проблема решена. Тема Закрыта.

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

2.92 Объекты для отладки. Временная таблица уже существует

JohnyD Дата: Вторник, 10.09.2013, 15:20 | Сообщение # 1

Сержант

Группа: Проверенные

Репутация: 4

Статус: Оффлайн

Делаю отладку запроса. Создается элемент справочника «Объекты для отладки (ИР)». При открытии этого объекта вываливается сообщение об ошибке:


Цитата

{Обработка.ирКонсольЗапросов.Форма.Форма.Форма(2496)}: Ошибка при вызове метода контекста (Выполнить)
мОбъектЗапроса.Выполнить();
по причине:
{(1, 496)}: Временная таблица уже существует «_Создание_ПериодыЛьгот_ЗначенияНаНачало_»
ВЫБРАТЬ ДАТАВРЕМЯ(1,1,1) КАК Период, ЗНАЧЕНИЕ(Справочник.Льготы.ПустаяСсылка) КАК Льгота, ВЫБОР КОГДА ЛОЖЬ ТОГДА ЗНАЧЕНИЕ(Справочник.ДополнительныеПараметрыЛьгот.ПустаяСсылка) КОГДА ЛОЖЬ ТОГДА ИСТИНА КОГДА ЛОЖЬ ТОГДА ЗНАЧЕНИЕ(Справочник.МетодыРасчетаЛьгот.ПустаяСсылка) КОГДА ЛОЖЬ ТОГДА ВЫРАЗИТЬ(«» КАК СТРОКА(500)) КОГДА ЛОЖЬ ТОГДА ДАТАВРЕМЯ(1,1,1) КОГДА ЛОЖЬ ТОГДА ВЫРАЗИТЬ(0 КАК ЧИСЛО(15, 2)) КОГДА ЛОЖЬ ТОГДА ЗНАЧЕНИЕ(Перечисление.БюджетныеУровни.ПустаяСсылка) КОНЕЦ КАК Действует ПОМЕСТИТЬ <<?>>_Создание_ПериодыЛьгот_ЗначенияНаНачало_

Внутренности этого элемента во вложении

Добавлено (10.09.2013, 15:20)
———————————————
Не знаю как сюда прикрепить файл (txt, zip и 7z не разрешены). Положил вот так: http://pastebin.com/

Сообщение отредактировал JohnyDСреда, 11.09.2013, 14:48

 
tormozit Дата: Среда, 11.09.2013, 09:03 | Сообщение # 2

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

К сожалению не могу десериализовать этот объект для отладки, т.к. там есть зависимости от твоих метаданных (в значениях параметров).
Добейся его десериализации в пустой конфигурации ИР и выложи снова.

По поводу прикрепления файлов должно работать. Возможно ты не нажал плюсик после выбора файла?

 
JohnyD Дата: Среда, 11.09.2013, 09:46 | Сообщение # 3

Сержант

Группа: Проверенные

Репутация: 4

Статус: Оффлайн

Да, попробую сделать запрос поменьше, без привязки к метаданным.
А нельзя сделать так, чтобы при открытии консоли из «объектов для отладки» дерево запросов не строилось автоматом? Именно на этом этапе ошибка и вываливается.

По поводу прикрепления файлов: у меня при выборе файла внизу всплывает окошко с надписью «Недопустимый формат изображения»

Сообщение отредактировал JohnyDСреда, 11.09.2013, 09:51

 
tormozit Дата: Среда, 11.09.2013, 10:10 | Сообщение # 4

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

Построение дерева автоматом полезно в большинстве случаев. Поэтому не хотелось бы это отключать. Давай сначала воспроизведем проблему в чистом виде.
По файлам проверил. Действительно, для группы пользователей Проверенные не было разрешено загружать любые файлы. Теперь разрешил.

 
JohnyD Дата: Среда, 11.09.2013, 11:21 | Сообщение # 5

Сержант

Группа: Проверенные

Репутация: 4

Статус: Оффлайн

Удалось-таки локализовать проблему. Сократить запрос до минимума и повыкидывал все свои специфичные таблицы. Вот что осталось:


Код

ВЫБРАТЬ
    втПериодыДляДвижений.Абонент
ПОМЕСТИТЬ втИтог
ИЗ
    втПериодыДляДвижений КАК втПериодыДляДвижений
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
          Контрагенты.Ссылка КАК Ссылка
       ИЗ
          втПериодыДляДвижений КАК ЛьготыАбонентов
             ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
             ПО ЛьготыАбонентов.Льгота = Контрагенты.Ссылка) КАК СрезПриоритета
       ПО втПериодыДляДвижений.Льгота = СрезПриоритета.Ссылка
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
          Контрагенты.Ссылка КАК Ссылка
       ИЗ
          втПериодыДляДвижений КАК ЛьготыАбонентов
             ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
             ПО ЛьготыАбонентов.Льгота = Контрагенты.Ссылка) КАК СрезМонетизируется
       ПО втПериодыДляДвижений.Льгота = СрезМонетизируется.Ссылка

Если попробовать построить дерево, то вывалится ошибка:


Цитата

{Обработка.ирКонсольЗапросов.Форма.Форма.Форма(2496)}: Ошибка при вызове метода контекста (Выполнить)
мОбъектЗапроса.Выполнить();
по причине:
{(1, 76)}: Временная таблица уже существует «_Создание_втПериодыДляДвижений_Контрагенты_»
ВЫБРАТЬ ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) КАК Ссылка ПОМЕСТИТЬ <<?>>_Создание_втПериодыДляДвижений_Контрагенты_

Причем ошибка не вываливается, если убрать строку «ПОМЕСТИТЬ втИтог».
Также ошибка не вываливается, если заменить таблицу Справочник.Контрагенты на любую «временную», например «втКонтрагенты»

 
tormozit Дата: Среда, 11.09.2013, 13:28 | Сообщение # 6

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

Проблема не воспроизводится на 2.93.

 
JohnyD Дата: Среда, 11.09.2013, 15:43 | Сообщение # 7

Сержант

Группа: Проверенные

Репутация: 4

Статус: Оффлайн

Что-то я пропустил выход 2.93. Извиняюсь
Обновил на 2.93. Теперь на попытки открыть из объектов для отладки тот же запрос вываливается ошибка:


Цитата

{Обработка.ирКонсольЗапросов.Форма.Форма.Форма(3443)}: Значение не является значением объектного типа (ТекстЗапроса)
И МассивСоздаваемыхВременныхТаблиц.Количество() > 0

Там «ПолеТекстовогоДокументаСКонтекстнойПодсказкой» имеет «Неопределено»


Далее вываливает ту же ошибку. На «чистом» из пред. поста не воспроизводится. млин… буду вычищать новый.

Добавлено (11.09.2013, 15:43)
———————————————
В общем вот очередной запрос, на котором при построении дерева запроса вываливается ошибка:

Код

ВЫБРАТЬ
    ПодЗапрос.Ссылка
ПОМЕСТИТЬ вт1
ИЗ
    (ВЫБРАТЬ
       Контрагенты.Ссылка КАК Ссылка
    ИЗ
       Справочник.Контрагенты КАК Контрагенты) КАК ПодЗапрос
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПодЗапрос.Ссылка
ПОМЕСТИТЬ вт2
ИЗ
    (ВЫБРАТЬ
       Контрагенты.Ссылка КАК Ссылка
    ИЗ
       Справочник.Контрагенты КАК Контрагенты) КАК ПодЗапрос

Сообщение отредактировал JohnyDСреда, 11.09.2013, 14:48

 
tormozit Дата: Четверг, 12.09.2013, 09:54 | Сообщение # 8

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

Спасибо. Ошибка будет исправлена в следующей версии.

 
tormozit Дата: Четверг, 12.09.2013, 21:27 | Сообщение # 9

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

Исправлено в 2.94

 
JohnyD Дата: Пятница, 13.09.2013, 10:04 | Сообщение # 10

Сержант

Группа: Проверенные

Репутация: 4

Статус: Оффлайн

Спасибо большое, проблема ушла.
Только появилась другая проблемка: при открытии объекта для отладки задваеваются некоторые параметры запроса

 
tormozit Дата: Среда, 25.09.2013, 10:21 | Сообщение # 11

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

По задваиванию параметров проблема не совсем понятна. Просьба описать ее отдельно, если не исправлена в 2.94

 
JohnyD Дата: Среда, 25.09.2013, 10:31 | Сообщение # 12

Сержант

Группа: Проверенные

Репутация: 4

Статус: Оффлайн

Сделал видео. Отправил ссылку через скайп.

 
tormozit Дата: Пятница, 27.09.2013, 13:57 | Сообщение # 13

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

JohnyD, сделай отдельную тему с описанием воспроизведения проблемы.

 
JohnyD Дата: Пятница, 27.09.2013, 13:59 | Сообщение # 14

Сержант

Группа: Проверенные

Репутация: 4

Статус: Оффлайн

Да, Сергей, сделаю обязательно. Просто никак не могу создать простой и независимый пример. Как только — так сразу.. wink

 
tormozit Дата: Воскресенье, 06.10.2013, 21:47 | Сообщение # 15

Генералиссимус

Группа: Администраторы

Репутация: 141

Статус: Оффлайн

JohnyD, скорее всего твоя проблема задваивания параметров при вызове функции Отладить устранена в 2.97

 
  • Страница 1 из 2
  • 1
  • 2
  • »

Временные таблицы — хранятся на сервере и позволяют писать более простые запросы.
Временные таблицы хранятся в объекте типа МенеджерВременныхТаблиц. Когда этот объект уничтожается, уничтожаются и временные таблицы.
Чтобы создать временную таблицу, используется ключевое слово «ПОМЕСТИТЬ В«, например:

Код 1C v 8.х

 |ВЫБРАТЬ * ИЗ Справочник.Номенклатура ПОМЕСТИТЬ В ВТТовары   

Временная таблица создается при выполнении запроса, если повторно выполнить запрос, то выдастся ошибка, что таблица уже существует.
Описания временных таблиц хранятся в свойстве запроса МенеджерВременныхТаблиц. К сожалению, нельзя получить список временных таблиц, которые хранятся в запросе.

Пример 1: Как можно выгрузить временную таблицу в таблицу значений и как использовать менеджер временных таблиц:

Код 1C v 8.х

 Запрос=Новый Запрос("ВЫБРАТЬ * ИЗ Справочник.Номенклатура ПОМЕСТИТЬ В ВТТовары");
Запрос.Выполнить(); //Создалась таблица ВТТовары
ЗапросТМП=Новый Запрос("ВЫБРАТЬ * ИЗ ВТТовары");
ЗапросТМП.МенеджерВременныхТаблиц=Запрос.МенеджерВременныхТаблиц; //Копируем ссылку на временные таблицы
ТЗ=ЗапросТМП.Выполнить().Выгрузить(); //Получаем временную таблицу в таблице значений
Готовую таблицу значений из памяти можно выгружать в менеджер временных таблиц запроса. Единственное условие - колонки таблицы значений должны быть типизированными, т.е. иметь тип. Вот пример, демонстрирующий это:

ТЗ=Новый ТаблицаЗначений();
//Колонки должны быть типизированы
ТЗ.Колонки.Добавить("А", Новый ОписаниеТипов("Строка"));
ТЗ.Колонки.Добавить("Б", Новый ОписаниеТипов("Строка"));

//Заполняем таблицу данными
Стр=ТЗ.Добавить();
Стр.А="А";
Стр.Б="Б";
Стр=ТЗ.Добавить();
Стр.А="А1";
Стр.Б="Б1";

//Загружаем таблицу значений в менеджер временных таблиц запроса
Запрос=Новый Запрос("Выбрать Т.А, Т.Б ПОМЕСТИТЬ ВТТаб Из &Таб Как Т");
//Вариант: Запрос=Новый Запрос("Выбрать * ПОМЕСТИТЬ ВТТаб Из &Таб Как Т");
Запрос.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Таб",ТЗ);
Запрос.Выполнить();

//Получаем таблицу из менеджера временных таблиц запроса
ЗапросТМП=Новый Запрос("ВЫБРАТЬ * ИЗ ВТТаб");
ЗапросТМП.МенеджерВременныхТаблиц=Запрос.МенеджерВременныхТаблиц;
ТЗ1=ЗапросТМП.Выполнить().Выгрузить();
ТЗ1.ВыбратьСтроку(); //Показываем полученную таблицу

Вместо перечисления списка полей можно использовать «ВЫБРАТЬ * «.
Если есть ТЗ, в каждой колонке которой значения всего одного типа, для типизации колонок, можно воспользоваться функцией:

Код 1C v 8.х

 Процедура ТипизацияТЗ(ТЗ) Экспорт
РезультатТЗ = новый ТаблицаЗначений;
Для Каждого Колонка из ТЗ.Колонки Цикл
Имя = Колонка.Имя;
МассивТипов = новый Массив(1);
МассивТипов[0] = ТипЗнч(ТЗ[0][Имя]);
Описатель = новый ОписаниеТипов(МассивТипов);
РезультатТЗ.Колонки.Добавить(Имя, Описатель);
КонецЦикла;

Для каждого Строка из ТЗ Цикл
СтрокаРез = РезультатТЗ.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаРез, Строка);
КонецЦикла;

ТЗ = РезультатТЗ.Скопировать();
КонецПроцедуры

Пример 2: Нужно в отчете СКД Связать Данные из Регистра Накопления ВзаиморасчетыСРаботниками и Табличной Части Документа ЗарплатаКВыплате по Ссылке на Документ и ФизЛицу! И вывести полученные данные за указанный Период(с ДатаН по ДатаК) — Запрос будет такой:

Код 1C v 8.х

 ВЫБРАТЬ
ВзаиморасчетыСРаботникамиОрганизаций.Период,
ВзаиморасчетыСРаботникамиОрганизаций.Физлицо,
ВзаиморасчетыСРаботникамиОрганизаций.СуммаВзаиморасчетов,
ВзаиморасчетыСРаботникамиОрганизаций.Организация,
ВзаиморасчетыСРаботникамиОрганизаций.ПериодВзаиморасчетов,
ВзаиморасчетыСРаботникамиОрганизаций.Регистратор
ПОМЕСТИТЬ РегВзаимРасч
ИЗ
РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций КАК ВзаиморасчетыСРаботникамиОрганизаций
ГДЕ
ВзаиморасчетыСРаботникамиОрганизаций.Период МЕЖДУ &ДатаН И &ДатаК
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо,
ЗарплатаКВыплатеОрганизацийЗарплата.Сумма,
ЗарплатаКВыплатеОрганизацийЗарплата.ВыплаченностьЗарплаты,
ЗарплатаКВыплатеОрганизацийЗарплата.КомпенсацияЗаЗадержкуЗарплаты,
ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка
ПОМЕСТИТЬ ДокумЗарплКВыпл
ИЗ
Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата
ГДЕ
ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Дата МЕЖДУ &ДатаН И &ДатаК
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
РегВзаимРасч.Период,
РегВзаимРасч.Физлицо,
РегВзаимРасч.СуммаВзаиморасчетов,
ДокумЗарплКВыпл.Сумма,
ДокумЗарплКВыпл.ВыплаченностьЗарплаты,
ДокумЗарплКВыпл.КомпенсацияЗаЗадержкуЗарплаты
ИЗ
РегВзаимРасч КАК РегВзаимРасч
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДокумЗарплКВыпл КАК ДокумЗарплКВыпл
ПО РегВзаимРасч.Регистратор = ДокумЗарплКВыпл.Ссылка
И РегВзаимРасч.Физлицо = ДокумЗарплКВыпл.Физлицо
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ РегВзаимРасч
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ДокумЗарплКВыпл

Возможно, вам также будет интересно:

  • Ошибка временная папка не существует битрикс
  • Ошибка временная и подтвержденная в чем разница
  • Ошибка времени фильм 2014 рейтинг
  • Ошибка времени фильм сюжет полностью
  • Ошибка времени фильм 2014 отзывы о фильме

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии