Имя: Пароль:
1C
1С v8
В базе данных уже существует объект с именем "#tt1"
0 Werios
 
27.01.14
14:56
Добрый день всем.
Вот в чем проблема. Я использую 1с 8.3 для получения данных из внешних источников, но периодически получаю ошибки такого рода:

1.
Платформа: 1С:Предприятие 8.3 (8.3.3.658)
Конфигурация: Самописная
Режим: Файловый (без сжатия)
Приложение: Тонкий клиент
Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)
Вариант интерфейса: Версия 8.2

Ошибки:
--------------------------------------------------------------------------------
24.01.2014 11:16:59
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: 42S01
Номер ошибки: 2714
Описание: [Microsoft][ODBC SQL Server Driver][SQL Server]В базе данных уже существует объект с именем "#tt1".


2.
Частенько при получении представления внешних источников он пишет "Ошибка получения представления".
При чем частично он отображает верно, такое осушение что он качает их из какого то временного хранилища.


В инете искал инфу, ничего путного. Обновил платформу до 8.3.4.389 не помогло. Ставил совместимость 8.2.16 тоже не катит.
Эти ошибки доставляют массу проблем по работе с данными.

Подскажите как от этого избавиться или куда копать.
Может есть вариант дропить временную таблицу из под сеанса 1с.
1 degot
 
27.01.14
15:07
по 1 пункту у меня такая же фигня точь в точь была после перехода на 8.3
2 Werios
 
28.01.14
11:08
Вопрос еще актуален
3 Werios
 
28.01.14
12:40
Программа с этой ошибкой падает при
!!! ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);


Вот Кусок Кода
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
4 Господин ПЖ
 
28.01.14
12:42
#tt1 - временная таблица (с) ко
5 Maxus43
 
28.01.14
12:43
попробуй принудительно в запросе уничтожать временные таблицы ненужные сразу
6 Werios
 
28.01.14
13:08
Вопрос только - КАК ЭТО СДЕЛАТЬ

Это не прокатывает -
Запрос = Новый Запрос;
Запрос.Текст = "УНИЧТОЖИТЬ #tt1";
Запрос.Выполнить();

Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
по причине:
{Отчет.ПланФактБюджета.МодульОбъекта(136)}: Ошибка при вызове метода контекста (Выполнить)
    Запрос.Выполнить();
по причине:
{(1, 12)}: Не установлен менеджер временных таблиц
УНИЧТОЖИТЬ <<?>>#tt1
7 Господин ПЖ
 
28.01.14
13:13
>#tt1

не факт что эта времянка имеет свой "прототип" в запросе
8 МихаилМ
 
28.01.14
13:16
1c8.2 может не удалять временные таблицы.
даже если в запросе указана команда удалить.

как временная мера , увеличьте число рабочих процессов.
9 Maxus43
 
28.01.14
13:20
#tt1 - это внутреннее имя таблицы в скуле, у тебя они называются ПОМЕСТИТЬ втЧотоТам, и УНИЧТОЖИТЬ надо именно втЧотоТам
10 Werios
 
28.01.14
13:33
(9)
Плохо ты знаешь Скуль.
она именно #tt1
а вот в куле она что то типа #tt1____________________098776978
11 МихаилМ
 
28.01.14
13:38
(10)
" типа #tt1____________________098776978"

она в базе tempdb . в контексте подключения она #tt1.
12 Maxus43
 
28.01.14
13:39
(10) в 1с она у тебя не #tt1, я про это
13 Werios
 
28.01.14
14:04
(12)
она там #tt1

ее в скуле даже увидеть можно, но на этом все ))))

Все временные таблице содержат в себе настоящее имя, только к этому имени плюсуется префикс подключения типа "_______69786987"

чето уже все перепробовал
ни что не помогает избавиться от этой гребаной #tt1
14 Maxus43
 
28.01.14
14:11
кто она там? В Запросе 1с она у тебя не #tt1,
если ты в 1с пишешь УНИЧТОЖИТЬ, то и писать надо не #tt1, а то, что у тебя в ПОМЕСТИТЬ...

я вкурсе какая она в скуле и где её увидеть, но для её уничтожения тебе эта информация вобще не нужна
15 Maxus43
 
28.01.14
14:12
вобще на ошибку платформы похоже это всё, погляди в списках ошибок на сайте 1с
16 degot
 
28.01.14
16:32
попробуй следующее:
перейти на 8.3.4.389 или последнюю (не помню)
отключить режим совместимости если есть
17 Werios
 
28.01.14
16:37
(16)
читай 0

Пробовал не помогло
18 neckto
 
28.01.14
16:49
(0) Всегда есть вариант Drop Table перед выполнением запроса
19 Werios
 
28.01.14
17:10
(18)

Поведай эту тайну как это сделать для таблички созданной самой платформой, в ее выдуманном сеансе
20 МихаилМ
 
28.01.14
17:11
(19)
в мс скл 2000 такое возможно.
21 МихаилМ
 
28.01.14
17:12
+(20)
из другого подключения манипулировать временными таблицами
22 Werios
 
28.01.14
17:17
(21)
только нужно знать какая именно таблица #tt1 тебе нужна.
народ то работает и плодит их.
я решил СКД перерисовать сейчас посмотрю что получится.
23 m-serg74
 
28.01.14
17:29
(19) /для таблички созданной самой платформой/

а внешние данные кто и как получает?
24 Господин ПЖ
 
28.01.14
17:32
>из другого подключения манипулировать временными таблицами

а сеанс будет один и тот же в sql?
25 Werios
 
28.01.14
17:38
(23)
ты про что.
Падает она здесь
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

а это компилятор платформы.
26 m-serg74
 
28.01.14
17:46
(25) а это ты про что в (0)

/Я использую 1с 8.3 для получения данных из внешних источников/
27 m-serg74
 
28.01.14
17:53
я так понимаю там запрос к СКЛ напрямую, и именно там создается эта временная таблица, но не удаляется... при повторной попытке создать вторую с таким именем как уже есть и получается ошибка, ИМХО перед созданием ВТ нужно проверить если есть с таким именем, то сначали дропнуть ее, а уж потом создавать, да и потом не плохо б было почистить за собой еже ли она уже не нужна... хотя после закрытия сеанса все что насоздавал само конечно очиститься... вроде как...
28 Werios
 
28.01.14
18:02
(27)
Нет там ее в помине нет.
Я там вообще временных таблиц не юзаю.
читай (25)
29 m-serg74
 
28.01.14
19:55
(28) ну отсюда не видно что ты там юзаешь, а то что в (25) - ни о чем не говорит. Так же как при выполнении запроса ошибка пишется:
Ошибка - Запрос.Выполнить(); косяк то не в этой строке, а в самом запросе...
30 Werios
 
29.01.14
08:44
(29)
В компановки юзаю таблицы значений.
Соответственно лефт джойты.
посторыбую подготовить данные так, что бы в компановке осталась одна таблица данных, возможно тогда он не будет создавать временных таблиц интерпретируя запрос.
31 Werios
 
30.01.14
16:07
Решение:
Вчера на SQL серваке сделали Очистку процедурного кэша.

Сегодня ни 1-й ни 2-й ошибки не наблюдается.

Возможно помог переход на 8.3.4.389 + Очистка процедурного кэша.


Если ошибки появятся отпишусь.
Всем спасибо.