Разбираем реальный язык Русский из КА2 и текущий язык пользователя. Код ru не обязан совпадать с региональным кодом ru_RU.
Где и как запускать
Полный серверный общий модуль учебной копии. Только чтение настроек и вычисления в памяти.
Подготовка
Работайте в отдельной учебной копии базы. Создайте серверный общий модуль УчебныеЗадачи, вставьте полный модуль урока и вызовите ВыполнитьПример() из серверного обработчика учебной команды.
Код выполняется на сервере: часть функций локализации и часовых поясов недоступна непосредственно в тонком клиенте. Реквизиты пользователя, региональные настройки и часовые пояса код не меняет.
Для двух уроков о метаданных используйте копию КА2 Progress: в исходном Languages/Русский.xml действительно есть язык Русский с КодЯзыка = ru. Остальные уроки не требуют объектов конкретной конфигурации.
Процедура ВыполнитьПример() Экспорт
Язык = Метаданные.Языки.Найти("Русский");
Если Язык = Неопределено Тогда
ВызватьИсключение "Нужна учебная копия КА2 Progress с языком Русский";
КонецЕсли;
Сообщить(Язык.Имя = "Русский");
Сообщить(Язык.КодЯзыка = "ru");
Сообщить("Синоним языка: " + Язык.Синоним);
Сообщить("Комментарий заполнен: " + Строка(НЕ ПустаяСтрока(Язык.Комментарий)));
Текущий = ТекущийЯзык();
Если ТипЗнч(Текущий) = Тип("Строка") Тогда
Сообщить("Код языка интерфейса: " + Текущий);
Иначе
Сообщить("Код языка интерфейса: " + Текущий.КодЯзыка);
КонецЕсли;
Сообщить("Язык системы: " + ТекущийЯзыкСистемы());
Сообщить("Локализация сеанса: " + ТекущийКодЛокализации());
Сообщить("Локализация базы: " + КодЛокализацииИнформационнойБазы());
КонецПроцедурыРазбор по шагам
Язык Русский найден по имени, не по позиции в коллекции. Имя и КодЯзыка сверяются с настоящим XML конфигурации; Синоним — представление, Комментарий может быть пустым.
ТекущийЯзык на сервере возвращает объект метаданных языка, а в тонком/веб-клиенте — строку кода. Ветвление показывает обе формы результата и не вызывает КодЯзыка у строки.
ТекущийЯзыкСистемы относится к языку системы 1С. Это не название часового пояса и не региональный код форматирования.
ТекущийКодЛокализации относится к сеансу, в том числе параметру /VL. КодЛокализацииИнформационнойБазы читает отдельную настройку базы; совпадение строк не навязывается.
Как проверить результат
Первые две проверки — Истина для указанной копии КА2. Остальные строки содержат фактические настройки вашего запуска.
В коде нет присваивания пользовательского языка или изменения локализации. Настройки до и после запуска одинаковы.
Ожидаемый результат
Понятно, какую настройку проверять при проблемах перевода интерфейса и форматирования чисел.
На что обратить внимание
Не сравнивайте ru и ru_RU как два одинаковых идентификатора: они относятся к разным понятиям.
Не переносите серверное обращение ТекущийЯзык().КодЯзыка в тонкий клиент без учёта строкового результата.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.