Язык 1С:Предприятия 8.3: где он задаётся и как его переключить
Содержание
Сменить язык в 1С 8.3 можно на трёх уровнях. Язык платформы (меню, системные окна) задают параметром запуска /L, например /Len, или строкой SystemLanguage в файле conf.cfg. Язык конфигурации (названия разделов, документов, реквизитов) задают каждому пользователю в его свойствах, на вкладке Прочие в Конфигураторе. Он работает только для языков, которые реально есть в конфигурации.
Типичная ситуация: в филиал приходит сотрудник, который не читает по-русски. Администратор ставит ему английский в шаблоне ярлыка, а видит смесь: окно «О программе» на английском, а разделы «Продажи» и «Банк и касса» остались русскими. Дело не в ошибке. Язык интерфейса платформы и язык базы — разные настройки, и меняют их в разных местах.
Язык платформы, язык конфигурации и язык базы данных — в чём разница
Под словом «язык» в 1С скрываются три независимые вещи. Пока их не развести, любая смена языка даёт половинчатый результат.
| Что | За что отвечает | Где меняется |
|---|---|---|
| 🖥️ Язык интерфейса платформы | Главное меню, системные диалоги, стандартные сообщения платформы, окно запуска | Параметр /L, файл conf.cfg, состав установленной платформы |
| 📚 Язык конфигурации (язык сеанса) | Синонимы объектов: разделы, документы, реквизиты, тексты из НСтр() | Свойство «Язык» пользователя информационной базы |
| 🗄️ Региональные установки базы | Порядок сортировки строк, формат дат и чисел по умолчанию | Администрирование → Региональные установки информационной базы в Конфигураторе |
Первые два пункта и называют «интерфейсным» и «системным» языком. Третий иногда ошибочно считают «языком базы данных». На самом деле он ничего не переводит, а определяет, как база сравнивает и сортирует строки.
Типовые российские конфигурации (Бухгалтерия, ЗУП, УТ) поставляются с одним языком — русским. Английская платформа переведёт системные элементы, но названия документов останутся русскими: перевода просто нет в метаданных.
Как сменить язык интерфейса 1С при запуске
Язык платформы выбирается в момент запуска. Есть три способа: для одной базы, для всех баз на компьютере и разово.
Способ 1. Параметр в списке информационных баз
Подходит, когда другой язык нужен для конкретной базы.
- В окне запуска выделите базу и нажмите
Изменить. - Пройдите мастер до последней страницы.
- В поле
Дополнительные параметры запускавпишите/Len(английский) или/Lru(русский). - Нажмите
Готовои запустите базу заново.
Параметр хранится в списке баз текущего пользователя Windows. Другие пользователи этого компьютера изменения не увидят.
Способ 2. Ярлык с параметром командной строки
Удобно для терминального сервера, где ярлык раздают через групповые политики:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /Len
Для серверной базы вместо /F указывают /S"server\base". Вместе с /L часто ставят /VL — код локализации сеанса. Он отвечает за формат дат, чисел и денежных сумм, но не переводит интерфейс:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\trade" /Len /VLen
Способ 3. Файл conf.cfg для всего компьютера
Если на машине все базы должны открываться на одном языке, пропишите его в файле конфигурации платформы. Файл conf.cfg лежит в каталоге bin\conf установленной версии, например C:\Program Files\1cv8\8.3.24.1548\bin\conf\conf.cfg. Номер версии у вас свой.
SystemLanguage=EN
Значение System берёт язык из настроек Windows. Если указан язык, которого нет в установленной платформе, интерфейс будет на языке по умолчанию.
conf.cfg относится к одной версии платформы. После обновления платформы строку придётся добавить в новый каталог bin\conf. Править файл в Program Files можно только с правами администратора.
Порядок приоритета простой. Параметр /L в командной строке или в свойствах базы сильнее, чем conf.cfg. А conf.cfg сильнее языка Windows.
Коды языков и терминальный сервер
В параметрах /L, /VL и в conf.cfg язык задают двухбуквенным кодом. Самые частые:
| Код | Язык | Пример параметра |
|---|---|---|
ru | Русский | /Lru |
en | Английский | /Len |
uk | Украинский | /Luk |
kk | Казахский | /Lkk |
de | Немецкий | /Lde |
Какие из них реально доступны, зависит от того, какие интерфейсы выбрали при установке платформы. Список видно в установщике на шаге выбора компонентов.
На терминальном сервере платформа одна на всех, а языки нужны разные. Здесь conf.cfg не подходит: он изменит язык сразу для всех. Правильнее раздать двум группам сотрудников разные ярлыки или разные файлы списка баз, где у каждой базы свой параметр /L. Тогда русскоязычный бухгалтер и иностранный менеджер работают на одном сервере, каждый на своём языке.
Многоязычная конфигурация: настройка в Конфигураторе
Чтобы перевести не только платформу, но и сами разделы и документы, в конфигурации должен быть второй язык. Для типовых решений это задача разработчика: доработка затронет сотни объектов.
Добавить язык в конфигурацию
- Откройте Конфигуратор, затем
Конфигурация → Открыть конфигурацию. - В дереве метаданных разверните
Общие → Языки. - Добавьте новый элемент, задайте имя (например,
Английский) и код языкаen. - В свойствах корня конфигурации проверьте «Основной язык». Он используется, когда у пользователя язык не указан.
После этого в полях «Синоним», «Подсказка» и в других многоязычных строках появится возможность вводить текст на каждом языке. Без перевода объект покажет текст основного языка.
Тексты в коде
Сообщения, которые программист выводит из модулей, тоже нужно переводить. Для этого строку пишут через НСтр():
Сообщить(НСтр("ru = 'Документ проведён'; en = 'Document posted'"));
Платформа выберет вариант по коду текущего языка сеанса. Если нужного кода в строке нет, вернётся пустая строка. Поэтому основной язык в НСтр() указывают всегда.
Доработка типовой конфигурации снимает её с полной поддержки или усложняет обновления. Для перевода интерфейса типовой базы безопаснее искать локализованную редакцию продукта или выносить переводы в расширение по согласованию с разработчиком.
Региональные установки информационной базы
Этот пункт меняют реже, но именно его ищут под словами «язык базы данных».
- В Конфигураторе откройте
Администрирование → Региональные установки информационной базы. - Выберите язык (страну). От этого зависят сортировка строк и форматы по умолчанию.
- Сохраните. Операция требует монопольного доступа к базе.
Монопольный режим отключит работающих пользователей. Меняйте региональные установки вне рабочего времени и после резервной копии. Смена влияет на порядок строк в отчётах и списках: проверьте их после изменения.
Как переключить язык из кода в текущем сеансе
Язык сеанса нельзя поменять «на лету». Он определяется при входе пользователя и до конца сеанса остаётся прежним. Программное «переключение» поэтому всегда состоит из двух шагов: записать язык пользователю и перезапустить сеанс.
Узнать текущий язык можно так:
ЯзыкСеанса = ТекущийЯзык(); // объект метаданных Язык
КодЯзыка = ЯзыкСеанса.КодЯзыка; // например, "ru"
ЯзыкПлатформы = ТекущийЯзыкСистемы(); // код языка интерфейса платформы
Записать язык пользователю на сервере:
&НаСервереБезКонтекста
Процедура УстановитьЯзыкПользователя(ИмяЯзыка)
Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
Пользователь.Язык = Метаданные.Языки.Найти(ИмяЯзыка);
Пользователь.Записать();
КонецПроцедуры
После этого перезапустите клиент:
&НаКлиенте
Процедура СменитьЯзык(Команда)
УстановитьЯзыкПользователя("Английский");
ЗавершитьРаботуСистемы(Ложь, Истина);
КонецПроцедуры
Второй параметр Истина перезапускает приложение после выхода. Пользователь заходит уже с новым языком.
Для записи пользователя информационной базы нужны административные права. Обычному пользователю такую команду дают через привилегированный режим или отдельную серверную процедуру, которую проверяет разработчик.
Язык в профиле пользователя и персональные настройки
Чаще всего языковую настройку делают не кодом, а в карточке пользователя.
Через Конфигуратор
Администрирование → Пользователи.- Откройте нужного пользователя.
- Перейдите на вкладку
Прочие. - В поле
Языквыберите язык из списка языков конфигурации. - Нажмите
ОК. Новый язык применится при следующем входе.
Если в списке только «Русский», значит, в конфигурации нет других языков. Переключать нечего.
В пользовательском режиме
В конфигурациях на БСП пользователей ведут в разделе Администрирование → Настройки пользователей и прав → Пользователи. Поле выбора языка в карточке появляется, когда в конфигурации больше одного языка. В одноязычной базе его нет.
Полезно разделять, что за что отвечает:
- 👤 Язык пользователя — общий для всех его входов, на любом компьютере.
- 💻 Параметр
/Lв списке баз — только для этого компьютера и пользователя Windows. - 🧩 Персональные настройки форм (колонки, отборы, расположение) — сохраняются отдельно и от языка не зависят. После смены языка настройки форм сохраняются.
Чек-лист перед переводом сотрудника на другой язык
Почему язык не меняется: сбои и решения
Если не помогло
- 🔍 Запустите базу с явными параметрами из командной строки: так сразу видно, работает ли
/Lбез влияния списка баз. - 📂 Проверьте, нет ли на компьютере нескольких версий платформы. Ярлык может запускать не ту версию, для которой вы правили
conf.cfg. - 🌐 Для веб-клиента язык интерфейса берётся из параметров браузера или из адресной строки: у опубликованной базы можно добавить к адресу параметр
?L=en. Перед массовым использованием проверьте это на своей публикации.
Если для проверки приходится завершать сеансы пользователей в консоли кластера, предупредите их заранее: несохранённые данные пропадут.