23 способа изменить язык интерфейса в 1С

При работе с 1С интерфейс полностью или частично может отображаться на другом языке.
Причем возникать это может как у всех, так и лишь у некоторых пользователей.
Инструкция о том, как правильно указать язык работы 1С.

Какие виды языков есть в 1С, зачем они нужны.
— Язык разработки.
— Язык интерфейса платформы.
— Язык интерфейса конфигурации.
— Региональные настройки.
Итоги

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

В интернете достаточно много инструкций о том, где именно расположен выбор языка. По запросу "как изменить язык в 1с" гугл выдает 33 тысячи инструкций. Причем совершенно разных

Но проблема в том, что настроек достаточно много и не всегда ясно, какую именно нужно менять. Иногда инструкция помогает в решении проблемы, иногда нет. 

Кажется, что 1С работает криво, запутанно и глючно. На самом деле настройка языка очень проста и работает понятно и четко. Просто языков несколько. И нужно учитывать, какой именно в каких случаях нужно менять. 

Ниже краткая инструкция со всеми основными настройками, который могут влиять на язык отображения в 1С.

Какие виды языков есть в 1С, зачем они нужны.

Язык на самом деле не один, а целых три:

  1. Язык разработки;
  2. Язык интерфейса платформы;
  3. Язык интерфейса конфигурации;

А кроме языков, есть еще и региональные настройки, от которых зависит формат чисел, дат и времени.

Из этих пяти настроек на интерфейс влияют три:

Несмотря на многообразие инструкций и способов выполнения настроек, самих способов указания настроек достаточно мало. Их можно свести всего к пяти.

Язык разработки

Язык разработки (Вариант встроенного языка) — язык используемый для написания исходного кода конфигурации. 

Выбирается основной язык программирования ("Русский" или "Английский").

Назначение:  Выбор определяет, на каком языке будут формироваться языковые конструкции в модулях и выдаваться информация о базовых типах данных. От него зависит, шаблоны какого языка будут использовать при добавлении данных или использовании конструкторов.

При этом независимо от выбранного языка разработки, код можно писать на любом. В том числе и вперемешку на русском и английском. 

Настройка: Язык разработки указывается в свойствах конфигурации в поле "Вариант встроенного языка" 

Для определения встроенного языка конфигурации из кода 1С можно обратиться к метаданным командой  Метаданные.ВариантВстроенногоЯзыка.

Менять данный язык после начала разработки нельзя. Никаких изменений в интерфейсе это не принесет, но может сделать неработоспособным написанный ранее код.

Язык интерфейса платформы.

Язык интерфейса платформы — эта настройка определяет, на каком языке будут выдавать сообщения платформы и отображаться платформенные элементы интерфейса.

В стандартный дистрибутив платформы входят следующие языки интерфейса платформы

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

Соответственно, для работы пользователя можно использовать лишь один из них. Теоретически существует "Механизм быстрого частичного перевода ресурсов платформы", позволяющий для отдельного клиента/партнера в ограниченном варианте самостоятельно добавить в платформу новый язык. Но о реальных случаях использования не слышала.

При необходимости мы можем определить текущий язык интерфейса платформы с помощью функции  ТекущийЯзыкСистемы().

Настройка: Есть несколько способов установить язык платформы. Наиболее простой и наиболее часто используемый это указать язык платформы в целом для всех баз 1С на данном компьютере, прописав его в файле conf.cfg.

Способ 1. Данную настройку проще всего прописать при установке платформы. Для этого достаточно на этапе "Язык интефейса по умолчанию" указать нужный язык. 

Способ 2. Если платформа уже установлена, то можно перезапустить установку параметров. Для этого выбираем "Пуск"-"Панель управления"-"Программы и компоненты". Находим нужную установку 1С и нажимаем "Изменить"

Способ 3. Еще можно напрямую прописать настройку в файл. Обычно он лежит по адресу "C:Program Files (x86)1cv8confconf.cfg". Открываем файл, добавляем строчку  "SystemLanguage=RU", сохраняем.

Способ 4. Если язык платформы не прописан, то используются настройки операционной системы по умолчанию.  Для их изменения  выбираем "Пуск"-"Панель управления"-"Язык и региональные стандарты".

Способ 5. При работе в веб-клиенте по умолчанию используется язык, установленный как "предпочитаемый язык" в браузере. Соответственно и менять его нужно в настройках браузера.

Все прошлые способы устанавливают язык платформы в целом для всех баз на компьютере пользователя. Рассмотрим указание языка для конкретного сеанса.

Способ 6.  Если для разных баз нужно использовать разные языки интерфейса, то нужный код языка можно указать в строке запуска 1C  после ключа /L. 

Способ 7. Если при запуске информационной базы выполняется выбор базы через типовой стартер. То ключ запуска /L можно указать в окне "Редактирование информационной базы" в поле "Дополнительные параметры запуска"

Способ 8. При запуске отладки из конфигуратора язык запуска можно указать в параметрах конфигуратора.  "Сервис" — "Параметры" — "Запуск 1С:Предприятия" — "Дополнительные" — "Яык интерфейса системы".

Способ 9. При работе в браузере язык, отличный от языка по умолчанию, можно указать суффиксом адресной строки вида "/en_US/"

Способ 10. На самом деле указание кода языка в строке запуска это самый надежный вариант. Он работает всегда. Если он не сработал, значит, нужный язык просто не установлен в платформе. Возвращаемся на этап установки платформы и выбираем нужный язык.

Язык интерфейса конфигурации

Язык интерфейса конфигурации — это языки интерфейса, созданные пользователем. При разработке конфигурации разработчик продумывает, какие языки нужны пользователю данной конкретной конфигурации и для каждого языка прописывает свой вариант всех текстов, синонимов, заголовков… В отличии от языков интерфейса платформы (жестко прописанных разработчиками платформы), языки интерфейса конфигурации могут быть любыми. В том числе мы можем создать язык, не существующий в реальности. Количество языков ничем не ограничено. 

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

Единственное исключение, это разработка приложения для мобильных устройств. В этом случае рекомендуется указывать коды языков в соответствии со стандартом ISO 639 . Это позволит мобильной платформе устанавливать язык интерфейса конфигураци в зависимости от установленного у пользователя в мобильном телефоне основного языка. В противном случае при проверке конфигурации будет выдаваться предупреждение.

При необходимости мы можем определить текущий язык интерфейса платформы с помощью функции  ТекущийЯзыкСистемы().

Есть всего два способа установки языка интерфейса.

Способ 1. Указать язык для конкретного пользователя в свойствах пользователя информационной базы.

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

При работе в конфигураторе для полей, в которых поддерживается многоязычный ввод, появляется значок лупы. При нажатии на данный значок мы можем корректировать тексты на нескольких языках одновременно. Однако также можем и просто корректировать тексты в любом многоязычном поле напряму без нажатия лупы. В этом случае мы редактируем текст текущего языка, не затрагивая второй язык. Чтобы переключить текущий язык в конфигураторе есть следующие способы:

Способ 3: Выбрать в меню пункт "Конфигурация" — "Язык редактирования конфигурации". Выбрать язык, со значениями которого мы хотим работать в ближайшее время.

Способ 4: Также язык можно переключить мышкой в строке статуса в правом нижнем углу окна конфигуратора.

Способ 5: Для множественного редактирования полезно использовать режим конфигуратора "Правка" — "Редактирование текстов интерфейсов"

Региональные настройки.

Ну и последними стоит упомянуть региональные настройки. Есть региональные настройки Информационной базы в целом и региональные установки текущего сеанса. Режим настройки региональных установок информационной базы позволяет управлять форматом отображения даты, времени, чисел, логических констант и влияет на порядок сортировки строк в списках информационной базы данных.

Варианты языков региональных настроек не зависят от платформы или конфигурации. Они зависят только от возможностей операционной системы. Полный список допустимых вариантов языка региональных настроек можно получить с помощью функции  ПолучитьДопустимыеКодыЛокализации()

Лично у меня в Windows 254 варианта языков, которые можно использовать как основу региональных настроек. 

Используемые базой региональные настройки можно определить с пощью функции  КодЛокализацииИнформационнойБазы()

Региональные настройки ИБ можно установить:

Способ 1: При создании базы. На этапе "Добавление информационной базы" необходимо выбрать язык, который будт использоваться для хранения данных.

Способ 2. Из конфигуратора. В пункте меню  Администрирование – Региональные установки ИБ. Для смены языка информационной базы обязательно использование монопольного режима.

Примечания: Если в качестве СУБД используется PostgreSQL, то для существующей информационной базы изменение языка (страны) не может быть выполнено произвольным образом. Установленное значение языка (страны) можно изменить только на такое, которое будет использовать тот же порядок сортировки строк (collation) СУБД, что и существующее значение. Например, русский (Россия) может быть изменен на белорусский (Беларусь), но не может быть изменен на украинский (Украина).
Если в качестве СУБД используется IBM DB2, то смена значения языка (страны) не поддерживается.

Региональные установки конкретного сеанса влияют на отображение дат, чисел, времени при работе с ИБ. Есть несколько способов установки настройки для конкретного сеанса.

Способ 1: Установка общих настроек для всех сеансов. Для вызова режима нужно выбрать пункт Администрирование – Региональные установки ИБ  и указать региональные параметры.

Способ 2. Если общие значения по умолчанию не установлены, то используются настройки операционной системы. Поэтому можно установить нужные настройки, сменив язык операционной системы.

Способ 3.  Если для разных баз нужно использовать разные региональные настройки, то нужный код языка можно указать в строке запуска 1C  после ключа /VL. 

Способ 4. Если при запуске информационной базы выполняется выбор базы через типовой стартер. То ключ запуска /VL можно указать в окне "Редактирование информационной базы" в поле "Дополнительные параметры запуска"

Способ 5. При запуске отладки из конфигуратора язык запуска можно указать в параметрах конфигуратора.  "Сервис" — "Параметры" — "Запуск 1С:Предприятия" — "Дополнительные" — "Код локализации сеанса".

В процессе работы региональные настройки текущего сеанса можно определить с помощью функции ТекущийКодЛокализации()

Итоги.

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

В целом все варианты работы с языками в 1С можно представить следующим образом:.

Язык

Разработки

Интерфейса платформы

Интерфейса конфигурации

Региональные настройки
ИБ Сеанса
Назначение Разработка кода конфигурации. При работе любых конструкторов латформы имена элементов формируются на этом языке. Сообщения платформы, платформенные элементы интерфейса (рабочий стол, имена стандартных обработок) Весь созданный разработчиком интерфейс (имена документов, справочников, реквизитов); сообщения, предусмотренной логикой работы программы, работа отчетов… Формат хранения данных в базе данных Отображение дат, чисел, времени, логических переменных в сообщениях, полях, календаре….
Преобразование других типов в строку и из строки
Допустимые значения Английский, Русский Предопределенные в платформе (на текущий момент 17 языков) Абсолютно любые языки, созданные разработчиком. В том числе несуществующие. Любые языки, поддерживаемые операционной системой
Полный список ПолучитьДопустимыеКодыЛокализации()
(лично у меня в Windows возвращает 254 кода языка)
Настройка выполняется В метаданных конфигурации 1. В строке запуска /L;
2. В файле настройки conf.cfg
3. В свойствах ОС
1. В свойствах пользователя.
2. В метаданных конфигурации.
В настройках ИБ 1. В строке запуска /VL;
2. В настройках ИБ;
3. В настройках ОС
Как определить используемый Метаданные. Вариант Встроенного Языка ТекущийЯзык Системы() ТекущийЯзык() КодЛокализации Информационной Базы() Текущий Код Локализации()

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

 

35 Comments

  1. LexSeIch

    23 — это перебор 🙂 … Но если серьёзно, то статья хорошая и полезная: мы порой не обращаем внимания на некоторые, как нам кажется мелочи, а потом тратим время на поиск нужной информации. Здесь же особенности использования языка представлено в «концентрированном» виде. Плюс безусловно.

    Reply
  2. kolya_tlt

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

    Reply
  3. popenko

    спасибо Евгения, приходишь к клиенту, а у него кто то уже «по настраивал» и времени разбираться нет и доказывать не хочется (клиент уже с амбициями) — а так сунул под нос — читай…. мне понравилось — наглядно

    Reply
  4. nytlenc

    Как не переключай, а исходный код конфы который наколбасили на русском, так и останется — на русском. И смысл в такой мультиязычности?

    Reply
  5. ekaruk

    (7) В данном случае мультиязычность заключается в возможности писать на двух языках. Какой программисту удобнее. Причем код может быть одновременно на двух. Т.е. дописывать можно и на другом языке.

    В EDT что-то упоминали про возможность автоперевода. Но пока вроде нету. Если и будет, то для двуязычных конструкций. Переменные всё равно останутся на исходном языке.

    Reply
  6. nytlenc

    (8)

    Переменные всё равно останутся на исходном языке.

    так вот… В том то и дело… И это как минимум. Возможно что-то еще.

    Reply
  7. ekaruk

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

    Или просто встроить какую-то подсистему на другом языке.

    Т.е. не смешивать код внутри процедур, а просто часть объектов (модулей, обработок, справочников) добавить на другом языке.

    Reply
  8. logarifm

    однозначно +

    А если у вас не было заказчиков которые требует интерфейсы на русском+ англ. это не означет, что это ненужно другим.

    Reply
  9. IgorS

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

    Reply
  10. ekaruk

    (12) Если в конфигурации есть изначально украинский интерфейс, то доперевести нужно только свои доработки.

    Тут идеально подходит режим «Редактирование текстов интерфейсов».

    Сортируете по колонке «укр» и видите все непереведенные фразы.

    Reply
  11. DAnry

    Огромное спасибо. Впервые вижу такое полное описание работы с языками в одной статье.

    Reply
  12. ekaruk

    (14) В этом и смысл статьи. Собрать в одном месте то, что уже описано в разных 🙂

    Reply
  13. mvsemenov

    Отличная статья, спасибо! все собрано структурировано.Однозначно в избранное ))

    Reply
  14. Salavat

    Хорошая статья, Спасибо!

    У меня вопрос по теме, помогите пожалуйста решить.

    Есть:

    1. Конфигурация — 2 языка.

    (Пользователи — обоих языков)

    2. Есть Форма обработки с динамическими (изменяется состав и наименования их) кнопками, в зависимости от Пользователя.

    3. Наименования этих кнопок берутся из справочника.

    (Один элемент имеет одно наименование для каждой кнопки).

    4. Справочник заполняется (конкретно — Наименование) из Макета Табличного Документа.

    В Макете наименования, заданы текстом в ячейках — двумя языками.

    Заполнение происходит очень редко (т.к. — количество, положение и наименование кнопок, практически постоянно).

    Т.е. сейчас получается — в каком сеансе (с каким языком) произошло заполнение справочника, эти значения (одноязычные!) и передаются всем (обоим языкам).

    Вопрос — можно ли сделать заполнение справочника, в многоязычном варианте?

    т.е. заполнять строками, типа «ru = ‘Русский’; en = ‘English'».

    а уж наименования буду присваивать, через НСтр().

    (в макете, задан текст — «Русский» и ‘English», для соответствующих языков)

    Reply
  15. Brawler

    Вот бы еще увидеть чьи-то примеры из практики ведения в базе данных объектов на разных языках.

    Как пример справочники: номенклатур, характеристики.

    База используется на Русском, а вот прайсы на разных языках печатать нужно и в разной валюте.

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

    В частности мне пришлось реализовывать отдельный регистр сведений с

    измерениями: Объект, Язык

    ресурсом: Наименование

    Потом этот регистр сведений использовать в отчетах, печати этикеток…

    Ну и Яндекс.Переводчик прикрутить удалось))

    Reply
  16. ekaruk

    (17) Логичнее хранить в справочнике наименования на обоих языках и подставлять в зависимости от языка пользователя.

    Макет вполне может быть двуязычным.

    Просто при заполнении справочника по макету переключаете КодЯзыка у макета и берете из него оба значения.

    Reply
  17. ekaruk

    (18) Собственно, это и есть наиболее логичное решение.

    Хранение нескольких языков плюс автоперевод с ручной корректировкой.

    Reply
  18. Salavat

    (19), так я про это и говорил.

    И в продолжении же и сказал, что:

    Да, в макете введены тексты на 2 языках, но — не в разных ячейках, а в одной (для соответствующего языка).

    Вот я спросил — есть ли способ обойти, именно введёные тексты «разноязычные из одной ячейки» и также (ну, или — привести её к виду, перевариваемому через «НСтр()») многоязычно сохранить их в справочнике?

    чтобы разноязычные пользователи, считывали значения из этого справочника, в зависимости от языка своего режима.



    Спрашиваю, потому что уже реализовано так (загружается/используется, только один язык), вот и думаю — как выкрутиться теперь.

    Reply
  19. ekaruk

    (21) Сделайте в справочнике два поля и загружайте оба языка. Выводите тот, который нужен.

    Обойти макет можно. У макета есть свойства «КодМакета». Считали один язык, поменяли свойство, считали другой язык

    Reply
  20. Salavat

    (22) Действительно есть, Спасибо и за это, тоже.

    (только, название точнее — «КодЯзыкаМакета»).

    Reply
  21. user973931

    Спасибо за подробное и в принципе понятное описание.

    Мне, как новичку в 1С, очень пригодиться.

    К сожалению, не понял как применить это к моей проблеме — выставить русский в клиенте для MacOS. Различные советы из гугла не помогают — после запуска клиент остается двуязычный (англ/рус) — т.е. часть текста (меню и т.п.) на русском, часть на английском.

    На Windows проблем нет, а вот макинтош… 🙁

    Вопрос касается УНФ, платформа и клиент 8.3.10.2252, MacOS Hihgh Sierra 10.13.2

    Reply
  22. payta

    (24) в профиле какая локаль установлена?

    Reply
  23. ekaruk

    (24) С Мак не работала, но принципы должны быть те же.

    Какой именно язык остается английским? язык платформы или колнфигурации?

    Если возможно, выложите скриншот того, как все выглядит.

    Reply
  24. user973931

    Русский, если я правильно понял вопрос.

    Либо ткните новичка, куда конкретно смотреть… 🙂

    Reply
  25. user973931

    По малоопытности, тяжко с определением, что к чему относится.

    Проблема проявляется и на кнопках и в пунктах меню…

    Скрин выложу попозже — как доберусь до «больного»…

    Reply
  26. payta

    (27) самый примитивный способ узнать — запустить finder и посмотреть наверху, в строке меню на каком оно языке.

    Выберите меню Apple > «Системные настройки», затем нажмите «Язык и регион».

    Убедитесь что русский у вас находится на самом верху во всех списках.

    Reply
  27. Алексей_mir2mb

    Основная проблема при локализации данных справочников — это невозможность задать разноязычные варианты для основного реквизита «Наименование», который используется в качестве представления элемента справочника на формах для выбора элемента или открытия карточки. У нашего клиента работают пользователи на двух языках. Мы сделали доработку «Локализация наименований элементов справочника» для решения этого вопроса. После встаивания подсистемы в конфигурацию добавление 1 справочника в перечень локализованных занимает 5 мин. В том числе сделали инструменты массовой выгрузки исходных наименований и загрузки результатов перевода.

    Reply
  28. igor_1c

    У меня проблема была с учебной версией 1С 8 . В windows 10 на ноутбуке выставили региональные настройки «Беларусь» Русский (Беларусь)

    1с устанавливается, но когда пытаешься добавить каталог базы и создать базу выдает ошибку при создании информационной базы. Неверные или отсутствующие параметры соединения

    Reply
  29. msv@genesis.com.ua

    Подскажите, как в 1С конф BAS Документооборот КОРП, редакция 2.1, интерфейс на русском сделать, а печатные формы (макеты печатных форм) на украинском?

    Reply
  30. ekaruk

    (32) Вы можете указать в константе «Режим формирования печатных форм» язык «Украинский»

    Не помню, где именно она в меню. Можете указать просто через «Все действия»

    Reply
  31. shusharu

    Добрый день! Спасибо за статью!

    Сейчас появился клиент у которого есть конфигурация КА по сути типовая, но первый бит добавил туда еще один язык интерфейса Английский.

    Соответственно типовые обновления теперь нельзя поставить штатно, а нужно ждать от бита. Но они очень сильно запаздывают. Вот например сейчас есть только обновления от марта, а сейчас октябрь.

    Клиент просит обновить их. И вот тут вопрос, можно ли как то перенести язык интерфейса с одной конфигурации на другую. Т.е. идея какая, сняться с поддержки бита, поставить на поддержку типовую конфигурацию КА и как то сохранить этот дополнительный язык.

    Спасибо!

    Reply
  32. ekaruk

    (34) Не знаю, в чем именно заключается локализация от 1Бит. Если речь только о переводах, то в конфигураторе есть режим «Правка»-«Редактирование текстов интерфейсов». В нем есть выгрузка переводов в файл и загрузка их из файла.

    Вы можете выгрузить переводы и загрузить их в типовую КА.

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

    Т.е. после простого переноса переводов второй язык появится, но в отдельных местах могут остаться русские фразы.

    Reply
  33. 7OH

    Вот в андроиде локализация сделана корректно — нет нужного языка — используем тот, что есть — английский.

    А в 1С ?

    99% всех обработок написаны на изначально русском языке.

    Сидит бухгалтер в другой стране, открывает обработку, скачанную с ИС и видит….

    И ничего не видит, так как 1С до сих пор не может сделать так, чтобы при отсутствии локализации можно было видеть хоть что-то, а не пустые кнопки и заголовки.

    Ну нет у строки локализации нужной — возьмите ту единственную, которая есть.

    Если их таки несколько — добавьте опцию в базу — какой язык использовать при отсутствии нужного (как это в винде сделано).

    Печально — очень печально, учитывая желание осваивать соседние рынки.

    Reply
  34. ekaruk

    (36) Частично в 1С тоже так работает.

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

    И в мобильном 1С приложении выберется другой, если языка, выбранного как основной язык в Андроид, в мобильной конфигурации нет.

    А вот с языком конфигурации полноценной платформы такого нет 🙁

    Reply
  35. 7OH

    (37) Вопрос больше про формы : обработок, документов, и прочего.

    Если никто в ячейку для нужного языка ничего не написал — то в итоге пользователь увидит НИЧЕГО вместо хоть какой-то имеющейся информации.

    Особенно печально смотрится в печатных формах.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *