Версия подсистемы: Инструменты разработчика 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» — функция считает конфигурацию англоязычной
и переводит идентификаторы; внутренние структуры ИР (кэш имён таблиц, сравнения имён типов)
расходятся с реальными (русскими) именами метаданных конфигурации.
Ожидаемый результат: «Справочник» (вариант встроенного языка — свойство конфигурации,
от языка сеанса не зависит).
Предлагаемая правка — сравнивать значением перечисления (вариант из соседней
закомментированной строки), сохранив быстрый путь для русского сеанса:
Код
Если "" + Метаданные.ВариантВстроенногоЯзыка = "Русский"
Или Метаданные.ВариантВстроенногоЯзыка = Метаданные.СвойстваОбъектов.ВариантВстроенногоЯзыка.Русский Тогда
Возврат Русский;