Вс, 03.08.2025, 06:30:33
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Использование менеджера временных таблиц в консоли запросов
7OHДата: Вт, 22.07.2025, 17:40:31 | Сообщение # 1
Подполковник
Группа: Пользователи
Сообщений: 144
Репутация: 88
Статус: Оффлайн



Есть желание переиспользовать менеджер временных таблиц консоли запросов в обработчике консоли запросов "Перед выполнением запроса" на сервере.

Сценарий простой - повторить типовой код, когда выполняется одна часть большого запроса с созданием некоторого количества ВТ,
потом выполняются функции, в которых дозаполняются ВТ запросами
и в конце выполняется финальная часть запроса по итогам прошлых расчетов.

Для этого создаю один запрос (начальный) и второй (финальный).
Во втором вызываю функции конфигурации, в которые передаётся менеджер временных таблиц.
По итогу получаю в этих функциях ошибку, что некоторые ВТ не найдены.
В функцию прилетает вместо менеджера - НЕОПРЕДЕЛЕНО, если стоит галка "На сервере".
Если галку не ставить - то уже обратно на клиент не может вернуться менеджер с ошибкой сериализации
"Отсутствует отображение для типа 'МенеджерВременныхТаблиц'".
 
tormozitДата: Вт, 22.07.2025, 18:36:57 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6975
Репутация: 187
Статус: Оффлайн
Сделай пример - файл консоли запросов, который можно открыть и выполнить шаги теста. Если требуется, добавь в тест общий модуль.
 
7OHДата: Вт, 22.07.2025, 19:26:11 | Сообщение # 3
Подполковник
Группа: Пользователи
Сообщений: 144
Репутация: 88
Статус: Оффлайн
Добавил CF от демки платформенной (27-я версия) и добавленным модулем и функцией для примера.
В файле запросов 2 папки - для варианта с функцией и без.
Прикрепления: 4538112.sel (19.0 Kb) · demo27.cf (1.05 Mb)
 
tormozitДата: Вт, 22.07.2025, 20:53:11 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 6975
Репутация: 187
Статус: Оффлайн
Ты читал подсказку к кнопке "На сервере"?
 
7OHДата: Вт, 22.07.2025, 21:30:23 | Сообщение # 5
Подполковник
Группа: Пользователи
Сообщений: 144
Репутация: 88
Статус: Оффлайн
Читал.
Но очень хочется иметь возможность вызывать типовые куски, которые собирают данные.
Если есть возможность на клиенте "воссоздавать", может быть можно в обратную сторону так же сделать ?
 
tormozitДата: Вт, 22.07.2025, 21:40:27 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 6975
Репутация: 187
Статус: Оффлайн
Цитата 7OH ()
Читал

Почему тогда тему создал в разделе Проблемные ситуации? Кажется что поведение соответствует описанию в этой подсказке. Если не согласен, опиши несоответствие.
Иначе предлагаю переместить тему в раздел Прочее, т.к. это явное пожелание новой возможности.
 
7OHДата: Вт, 22.07.2025, 21:46:32 | Сообщение # 7
Подполковник
Группа: Пользователи
Сообщений: 144
Репутация: 88
Статус: Оффлайн
Проблемные, потому что ошибку получаю.
На клиенте - сериализацию на выходе, на сервере - другую, так как не дочитал сразу.
По наитию - с возможностью изменять текст запроса - просто просится изменение и временных таблиц.
Если это в целом можно сделать - можно переместить в хотелки тему.
 
tormozitДата: Вт, 22.07.2025, 21:52:10 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 6975
Репутация: 187
Статус: Оффлайн
Передача менеджера временных таблиц между клиентом и сервером - очень затратная операция при большом объеме данных. После выполнения обработчика "Перед выполнением" я могу четко понять, что в менеджер были добавлены таблицы и потому нужно его передавать на клиент.
А вот на клиенте менеджер почти всегда непустой и часто в нем сидит даже больше таблиц чем нужно будет самому запросу и тем более чем нужно будет обработчику "Перед выполнением". Поэтому безусловная передача с клиента на сервер будет сильно замедлять выполнение запроса и к тому же без пользы.
 
7OHДата: Вт, 22.07.2025, 21:54:46 | Сообщение # 9
Подполковник
Группа: Пользователи
Сообщений: 144
Репутация: 88
Статус: Оффлайн
Я понимаю - тут должно быть по осознанному выбору пользователя.
Отдельной галкой -"Передавать данные менеджера на сервер".
Данных может быть не много (у нас как раз их мало, а должно быть больше намного), а может и много, но очень надо раскурить проблему - сервер разработчика потерпит.
 
tormozitДата: Ср, 23.07.2025, 00:24:11 | Сообщение # 10
Генералиссимус
Группа: Администраторы
Сообщений: 6975
Репутация: 187
Статус: Оффлайн
Создал задачу https://www.hostedredmine.com/issues/1006672
 
tormozitДата: Вс, 27.07.2025, 22:08:31 | Сообщение # 11
Генералиссимус
Группа: Администраторы
Сообщений: 6975
Репутация: 187
Статус: Оффлайн
Сделано в 7.86
 
  • Страница 1 из 1
  • 1
Поиск: