Язык 1С:Предприятия 8.3: где он задаётся и как его переключить

· 8 мин

Содержание

Сменить язык в 1С 8.3 можно на трёх уровнях. Язык платформы (меню, системные окна) задают параметром запуска /L, например /Len, или строкой SystemLanguage в файле conf.cfg. Язык конфигурации (названия разделов, документов, реквизитов) задают каждому пользователю в его свойствах, на вкладке Прочие в Конфигураторе. Он работает только для языков, которые реально есть в конфигурации.

Типичная ситуация: в филиал приходит сотрудник, который не читает по-русски. Администратор ставит ему английский в шаблоне ярлыка, а видит смесь: окно «О программе» на английском, а разделы «Продажи» и «Банк и касса» остались русскими. Дело не в ошибке. Язык интерфейса платформы и язык базы — разные настройки, и меняют их в разных местах.

Язык платформы, язык конфигурации и язык базы данных — в чём разница

Под словом «язык» в 1С скрываются три независимые вещи. Пока их не развести, любая смена языка даёт половинчатый результат.

ЧтоЗа что отвечаетГде меняется
🖥️ Язык интерфейса платформыГлавное меню, системные диалоги, стандартные сообщения платформы, окно запускаПараметр /L, файл conf.cfg, состав установленной платформы
📚 Язык конфигурации (язык сеанса)Синонимы объектов: разделы, документы, реквизиты, тексты из НСтр()Свойство «Язык» пользователя информационной базы
🗄️ Региональные установки базыПорядок сортировки строк, формат дат и чисел по умолчаниюАдминистрирование → Региональные установки информационной базы в Конфигураторе

Первые два пункта и называют «интерфейсным» и «системным» языком. Третий иногда ошибочно считают «языком базы данных». На самом деле он ничего не переводит, а определяет, как база сравнивает и сортирует строки.

Типовые российские конфигурации (Бухгалтерия, ЗУП, УТ) поставляются с одним языком — русским. Английская платформа переведёт системные элементы, но названия документов останутся русскими: перевода просто нет в метаданных.

Как сменить язык интерфейса 1С при запуске

Язык платформы выбирается в момент запуска. Есть три способа: для одной базы, для всех баз на компьютере и разово.

Способ 1. Параметр в списке информационных баз

Подходит, когда другой язык нужен для конкретной базы.

  1. В окне запуска выделите базу и нажмите Изменить.
  2. Пройдите мастер до последней страницы.
  3. В поле Дополнительные параметры запуска впишите /Len (английский) или /Lru (русский).
  4. Нажмите Готово и запустите базу заново.

Параметр хранится в списке баз текущего пользователя 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. Тогда русскоязычный бухгалтер и иностранный менеджер работают на одном сервере, каждый на своём языке.

Многоязычная конфигурация: настройка в Конфигураторе

Чтобы перевести не только платформу, но и сами разделы и документы, в конфигурации должен быть второй язык. Для типовых решений это задача разработчика: доработка затронет сотни объектов.

Добавить язык в конфигурацию

  1. Откройте Конфигуратор, затем Конфигурация → Открыть конфигурацию.
  2. В дереве метаданных разверните Общие → Языки.
  3. Добавьте новый элемент, задайте имя (например, Английский) и код языка en.
  4. В свойствах корня конфигурации проверьте «Основной язык». Он используется, когда у пользователя язык не указан.

После этого в полях «Синоним», «Подсказка» и в других многоязычных строках появится возможность вводить текст на каждом языке. Без перевода объект покажет текст основного языка.

Тексты в коде

Сообщения, которые программист выводит из модулей, тоже нужно переводить. Для этого строку пишут через НСтр():

Сообщить(НСтр("ru = 'Документ проведён'; en = 'Document posted'"));

Платформа выберет вариант по коду текущего языка сеанса. Если нужного кода в строке нет, вернётся пустая строка. Поэтому основной язык в НСтр() указывают всегда.

Доработка типовой конфигурации снимает её с полной поддержки или усложняет обновления. Для перевода интерфейса типовой базы безопаснее искать локализованную редакцию продукта или выносить переводы в расширение по согласованию с разработчиком.

Региональные установки информационной базы

Этот пункт меняют реже, но именно его ищут под словами «язык базы данных».

  1. В Конфигураторе откройте Администрирование → Региональные установки информационной базы.
  2. Выберите язык (страну). От этого зависят сортировка строк и форматы по умолчанию.
  3. Сохраните. Операция требует монопольного доступа к базе.

Монопольный режим отключит работающих пользователей. Меняйте региональные установки вне рабочего времени и после резервной копии. Смена влияет на порядок строк в отчётах и списках: проверьте их после изменения.

Как переключить язык из кода в текущем сеансе

Язык сеанса нельзя поменять «на лету». Он определяется при входе пользователя и до конца сеанса остаётся прежним. Программное «переключение» поэтому всегда состоит из двух шагов: записать язык пользователю и перезапустить сеанс.

Узнать текущий язык можно так:

ЯзыкСеанса = ТекущийЯзык();            // объект метаданных Язык
КодЯзыка   = ЯзыкСеанса.КодЯзыка;      // например, "ru"
ЯзыкПлатформы = ТекущийЯзыкСистемы();  // код языка интерфейса платформы

Записать язык пользователю на сервере:

&НаСервереБезКонтекста
Процедура УстановитьЯзыкПользователя(ИмяЯзыка)
    Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
    Пользователь.Язык = Метаданные.Языки.Найти(ИмяЯзыка);
    Пользователь.Записать();
КонецПроцедуры

После этого перезапустите клиент:

&НаКлиенте
Процедура СменитьЯзык(Команда)
    УстановитьЯзыкПользователя("Английский");
    ЗавершитьРаботуСистемы(Ложь, Истина);
КонецПроцедуры

Второй параметр Истина перезапускает приложение после выхода. Пользователь заходит уже с новым языком.

Для записи пользователя информационной базы нужны административные права. Обычному пользователю такую команду дают через привилегированный режим или отдельную серверную процедуру, которую проверяет разработчик.

Язык в профиле пользователя и персональные настройки

Чаще всего языковую настройку делают не кодом, а в карточке пользователя.

Через Конфигуратор

  1. Администрирование → Пользователи.
  2. Откройте нужного пользователя.
  3. Перейдите на вкладку Прочие.
  4. В поле Язык выберите язык из списка языков конфигурации.
  5. Нажмите ОК. Новый язык применится при следующем входе.

Если в списке только «Русский», значит, в конфигурации нет других языков. Переключать нечего.

В пользовательском режиме

В конфигурациях на БСП пользователей ведут в разделе Администрирование → Настройки пользователей и прав → Пользователи. Поле выбора языка в карточке появляется, когда в конфигурации больше одного языка. В одноязычной базе его нет.

Полезно разделять, что за что отвечает:

  • 👤 Язык пользователя — общий для всех его входов, на любом компьютере.
  • 💻 Параметр /L в списке баз — только для этого компьютера и пользователя Windows.
  • 🧩 Персональные настройки форм (колонки, отборы, расположение) — сохраняются отдельно и от языка не зависят. После смены языка настройки форм сохраняются.

Чек-лист перед переводом сотрудника на другой язык

Проверьте перед сменой языка
Выполнено: 0 / 5

Почему язык не меняется: сбои и решения

Диагностика: выберите симптом

Если не помогло

  • 🔍 Запустите базу с явными параметрами из командной строки: так сразу видно, работает ли /L без влияния списка баз.
  • 📂 Проверьте, нет ли на компьютере нескольких версий платформы. Ярлык может запускать не ту версию, для которой вы правили conf.cfg.
  • 🌐 Для веб-клиента язык интерфейса берётся из параметров браузера или из адресной строки: у опубликованной базы можно добавить к адресу параметр ?L=en. Перед массовым использованием проверьте это на своей публикации.

Если для проверки приходится завершать сеансы пользователей в консоли кластера, предупредите их заранее: несохранённые данные пропадут.

Частые вопросы

Можно ли перевести типовую Бухгалтерию 3.0 на английский одним параметром?
Нет. Параметр /Len переведёт только платформу: главное меню и системные окна. Названия разделов, документов и реквизитов останутся русскими, потому что в конфигурации нет английских синонимов.
Влияет ли язык интерфейса на данные в базе?
Нет. Документы, справочники и проводки хранятся одинаково. Меняется только отображение. Сортировку строк определяют региональные установки базы, а не язык пользователя.
Нужна ли отдельная лицензия для английского интерфейса?
Нет. Языковые интерфейсы входят в дистрибутив платформы и ставятся как компонент установки. Лицензия от языка не зависит.
Почему в списке языков пользователя пусто или один «Русский»?
В конфигурации описан только один язык. Добавить язык может разработчик в ветке Общие → Языки, но без перевода синонимов это ничего не даст.
Можно ли дать двум пользователям одной базы разные языки?
Да, если в конфигурации есть оба языка. Язык задаётся каждому пользователю отдельно, и они могут работать в базе одновременно.