|
Функция ирОбщий.ИменаИспользуемыхВЗапросеВременныхТаблицЛк
|
|
| gslawa | Дата: Пт, 26.01.2018, 06:43:41 | Сообщение # 1 |
|
Лейтенант
Группа: Проверенные
Сообщений: 62
Репутация: 32
Статус: Оффлайн
| Функция ирОбщий.ИменаИспользуемыхВЗапросеВременныхТаблицЛк получает имена ВТ только из текста запроса пытаясь рег.выражениями найти имена идущие после "ИЗ|СОЕДИНЕНИЕ|УНИЧТОЖИТЬ". Это приводит к получению имен ВТ вроде "Документ.Реализация".
В платформе 8.3.8 у объекта МенеджерВременныхТаблиц появилось новое свойство Таблицы в котором хранятся имена ВТ.
Пожалуйста переделайте функцию ИменаИспользуемыхВЗапросеВременныхТаблицЛк на получение имен из МенеджерВТ.Таблицы и из теста запроса после "ПОМЕСТИТЬ"
Сапасибо
|
| |
| |
| tormozit | Дата: Пт, 26.01.2018, 06:58:17 | Сообщение # 2 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7261
Репутация: 193
Статус: Оффлайн
| Я поддерживаю платформы 1С начиная с 8.2.12. Поэтому такое изменение нет смысла делать. Если есть какая то проблема, то рекомендую описать способ ее воспроизведения.
|
| |
| |
| gslawa | Дата: Пт, 26.01.2018, 07:01:56 | Сообщение # 3 |
|
Лейтенант
Группа: Проверенные
Сообщений: 62
Репутация: 32
Статус: Оффлайн
| Так-же, в связи с этим, становится возможно в функцию От() передать МенеджерВТ, чтоб посмотреть его содержимое.
Пока, для просмотра содержимого ВТ, сделал такую функцию:
Код Функция ОтМенеджерВТ(МенеджерВТ) Экспорт Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; Для каждого эл Из МенеджерВТ.Таблицы Цикл Запрос.Текст = Запрос.Текст + "ВЫБРАТЬ | * |ИЗ | "+эл.ПолноеИмя+" |ГДЕ | ЛОЖЬ |;"; КонецЦикла; Возврат От(Запрос); КонецФункции Добавлено (26.01.2018, 07:01) ---------------------------------------------
Цитата tormozit (  ) Я поддерживаю платформы 1С начиная с 8.2.12. Поэтому такое изменение нет смысла делать. Если есть какая то проблема, то рекомендую описать способ ее воспроизведения.
Так в том-то и дело, что эта функция написана чтоб работать на платформах до 8.3.8 А с 8.3.8 её можно переделать на более правильную
|
| |
| |
| tormozit | Дата: Пт, 26.01.2018, 07:02:00 | Сообщение # 4 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7261
Репутация: 193
Статус: Оффлайн
| Для этого есть функция ПолВТ
|
| |
| |
| tormozit | Дата: Пт, 26.01.2018, 07:03:24 | Сообщение # 5 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7261
Репутация: 193
Статус: Оффлайн
| Опиши сначала полностью проблему, а потом уже способ ее решения.
|
| |
| |
| gslawa | Дата: Пт, 26.01.2018, 07:08:31 | Сообщение # 6 |
|
Лейтенант
Группа: Проверенные
Сообщений: 62
Репутация: 32
Статус: Оффлайн
| Цитата tormozit (  ) Для этого есть функция ПолВТ Она так-же использует функцию из заголовка ИменаИспользуемыхВЗапросеВременныхТаблицЛкс
|
| |
| |
| tormozit | Дата: Пт, 26.01.2018, 07:18:31 | Сообщение # 7 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7261
Репутация: 193
Статус: Оффлайн
| И это правильно, т.к. заявлена опять же поддержка 8.2.12+
|
| |
| |
| gslawa | Дата: Пт, 26.01.2018, 07:47:07 | Сообщение # 8 |
|
Лейтенант
Группа: Проверенные
Сообщений: 62
Репутация: 32
Статус: Оффлайн
| Код ОС: Windows x86 Microsoft Windows 8.1 version 6.3 (Build 9600) Платформа: 8.3.11.2954 Конфигурация: Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.57.10) Режим БД: клиент-серверный Приложение: Управляемое приложение 32б Основной режим запуска: Управляемое приложение От имени администратора Windows: Нет Режим совместимости: Версия8_3_10 Инструменты разработчика: Подсистема 4.39
Выполняем код:
Код МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; Запрос.Текст = "ВЫБРАТЬ * |ПОМЕСТИТЬ ВТ_Валюты |ИЗ | Справочник.Валюты КАК Валюты"; Запрос.Выполнить(); Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Ссылка КАК Ссылка, | Валюты.Наценка КАК НаценкаВалюты |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Валюты КАК Валюты | ПО РеализацияТоваровУслуг.ВалютаДокумента = Валюты.Ссылка |ГДЕ | РеализацияТоваровУслуг.Дата >= ДатаВремя(2018, 1, 1)"; От(Запрос);
Открываем в "Объекты для отладки ИР" Получаем три виртуальные таблицы Мне кажется должна быть одна
 Добавлено (26.01.2018, 07:47) ---------------------------------------------
Цитата tormozit (  ) И это правильно, т.к. заявлена опять же поддержка 8.2.12+
В том, то и дело что до 8.3.8 не возможно было посмотреть то, что находится в менеджереВТ
Может стоит подправить функцию так, чтоб она в 8.3.8+ работала более корректно, а на более старых платформах так, как сейчас.
|
| |
| |
| tormozit | Дата: Сб, 27.01.2018, 14:31:52 | Сообщение # 9 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7261
Репутация: 193
Статус: Оффлайн
| Спасибо. Ошибку обнаружения имен обычных таблиц в качестве имен временных таблиц воспроизвел.
|
| |
| |
| tormozit | Дата: Вс, 11.02.2018, 17:59:23 | Сообщение # 10 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7261
Репутация: 193
Статус: Оффлайн
| Исправлено в 4.40
|
| |
| |