Вс, 26.07.2026, 16:36:42
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Сбор статистики таблиц для английских имен
zharДата: Вт, 14.07.2026, 15:09:53 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 26
Репутация: 36
Статус: Оффлайн
Версия подсистемы: Инструменты разработчика 8.19.1e, вариант — расширение конфигурации (CFE).
Версия платформы: 8.5.1.1343 (по коду воспроизводимо и на 8.3).
Клиентское приложение: толстый клиент, обычное приложение.
Конфигурация: <название/версия>, вариант встроенного языка — Английский.
СУБД: файловая ИБ.

В общем модуле **ирОбщий**, функция **ВычислитьКоличествоСтрокТаблицВДеревеМетаданныхЛкс**,
ветка обхода дерева метаданных (строки 24450–24464): нетабличные виды исключаются сравнением
первого фрагмента полного имени с русскими литералами:

Код
КорневойТип = ПервыйФрагментЛкс(СтрокаДерева2[ИмяКлючевойКолонки]);
Если Ложь
    Или КорневойТип = "РегламентноеЗадание"
    Или КорневойТип = "ОбщаяФорма"
    Или КорневойТип = "Интерфейс"
    Или КорневойТип = "Отчет"
    Или КорневойТип = "Обработка"
    Или КорневойТип = "КритерийОтбора"
    ...


При этом дальнейшая обработка имён (**ирКэш.ИмяТаблицыИзМетаданныхЛкс**) рассчитана на
ЛОКАЛЬНЫЕ полные имена: первый фрагмент там сравнивается с `ирОбщий.ПеревестиСтроку("Константа")`.
Если в дереве локальные (английские) имена — например «Report.InternalSettlements» из
`ПолноеИмя()` на конфигурации с английским вариантом встроенного языка — фильтр не
срабатывает («Report» ≠ «Отчет»), отчёт попадает в пакет запросов статистики, и фоновое
задание «Сбор статистики таблиц» падает:

Код
Ошибка при вызове метода контекста (ExecuteBatch)
{ИнструментыРазработчикаTormozit CommonModule.ирОбщий.Module(24681)}: РезультатПакета = Запрос.ВыполнитьПакет();
{ИнструментыРазработчикаTormozit CommonModule.ирСервер.Module(978)}: Результат = ирОбщий.ВыполнитьЗапросСтатистикиПоТаблицамЛкс(БазыДанных, Параметры, ИмяКолонкиКоличества);
по причине:
{(329, 6)}: Таблица не найдена "Report.InternalSettlements"
FROM <<?>>Report.InternalSettlements AS Т


Порядок воспроизведения:
1. Конфигурация с вариантом встроенного языка «Английский» (в составе — отчёты/обработки), ИР 8.19.1e.
2. Обеспечить в дереве метаданных локальные полные имена (например, из ПолноеИмя());
   вызвать сбор статистики по дереву — Интерфейсная панель (ИР), включение количества строк.

Фактический результат: фоновое задание падает «Таблица не найдена "Report.…"».
Ожидаемый: отчёты/обработки и прочие нетабличные виды исключаются из запроса.

Предлагаемая правка — нормализовать вид перед сравнением (на русских именах ничего не меняет):

Код
КорневойТип = ПеревестиВРусский(ПервыйФрагментЛкс(СтрокаДерева2[ИмяКлючевойКолонки]));
 
tormozitДата: Ср, 15.07.2026, 23:27:43 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 7404
Репутация: 196
Статус: Оффлайн
Ошибку воспроизвел https://www.hostedredmine.com/issues/1008595
 
tormozitДата: Вс, 19.07.2026, 17:41:22 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 7404
Репутация: 196
Статус: Оффлайн
Исправлено в 8.20
 
  • Страница 1 из 1
  • 1
Поиск: