Вс, 26.07.2026, 21:27:43
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
ПеревестиСтроку: на платформе 8.5 представление Метаданные
zharДата: Вт, 14.07.2026, 15:05:07 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 26
Репутация: 36
Статус: Оффлайн
Версия подсистемы: Инструменты разработчика 8.19.1e, вариант — расширение конфигурации (CFE).
Версия платформы: 8.5.1.1343 (на 8.3.26/8.3.27 не воспроизводится).
Клиентское приложение: любое (дефект в общем модуле).
Конфигурация: любая; язык сеанса пользователя — отличный от русского (например, English).
СУБД: любая (проверено на файловой).

В общем модуле **ирОбщий**, функция **ПеревестиСтроку(Русский)** (строка 14301), быстрый путь
определяет вариант встроенного языка конфигурации сравнением строкового ПРЕДСТАВЛЕНИЯ
системного перечисления:

Код
Функция ПеревестиСтроку(Русский) Экспорт
    // Для ускорения
    //Если Метаданные.ВариантВстроенногоЯзыка = Метаданные.СвойстваОбъектов.ВариантВстроенногоЯзыка.Русский Тогда
    Если "" + Метаданные.ВариантВстроенногоЯзыка = "Русский" Тогда
        Возврат Русский;


Начиная с платформы 8.5 представление значений системных перечислений локализуется по языку
сеанса. Проверено на 8.5.1.1343: в сеансе с английским языком интерфейса
`"" + Метаданные.ВариантВстроенногоЯзыка` возвращает `"English"` для английского варианта
(а для русского варианта — `"Russian"`), т.е. сравнение со строкой «Русский» всегда Ложь.

Порядок воспроизведения:
1. Платформа 8.5.1.1343, любая конфигурация с РУССКИМ вариантом встроенного языка, ИР 8.19.1e.
2. Войти пользователем с языком сеанса English (или ключ /L en).
3. Вычислить `ирОбщий.ПеревестиСтроку("Справочник")`.

Фактический результат: возвращается «Catalog» — функция считает конфигурацию англоязычной
и переводит идентификаторы; внутренние структуры ИР (кэш имён таблиц, сравнения имён типов)
расходятся с реальными (русскими) именами метаданных конфигурации.
Ожидаемый результат: «Справочник» (вариант встроенного языка — свойство конфигурации,
от языка сеанса не зависит).

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

Код

  Если "" + Метаданные.ВариантВстроенногоЯзыка = "Русский"
        Или Метаданные.ВариантВстроенногоЯзыка = Метаданные.СвойстваОбъектов.ВариантВстроенногоЯзыка.Русский Тогда
        Возврат Русский;
 
tormozitДата: Чт, 16.07.2026, 00:04:46 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 7404
Репутация: 196
Статус: Оффлайн
Исправлю https://www.hostedredmine.com/issues/1008597
 
tormozitДата: Вс, 19.07.2026, 17:41:35 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 7404
Репутация: 196
Статус: Оффлайн
Исправлено в 8.20
 
  • Страница 1 из 1
  • 1
Поиск: