К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как добавить язык в конфигурацию 1С

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

Мультиязычный интерфейс в 1С:Предприятии строится на объекте метаданных «Язык». Каждый язык, добавленный в конфигурацию, позволяет задавать для элементов интерфейса (синонимов объектов, команд, надписей форм, сообщений пользователю) отдельные значения на каждом поддерживаемом языке. Платформа переключает отображение в зависимости от настроек пользователя или параметров запуска сеанса.

Типовые конфигурации обычно уже содержат два языка — русский и английский. В самописных и доработанных решениях нередко встречается только один язык, и при выходе на зарубежных пользователей или партнёров возникает задача добавить второй или третий. Работа ведётся в конфигураторе и не требует внешних инструментов, но требует аккуратности: пропущенные переводы приводят к пустым надписям в интерфейсе.

Ниже разобран полный цикл: от создания объекта «Язык» до проверки результата в режиме предприятия, включая перевод синонимов, строк в коде и типичные ошибки.

Когда нужен дополнительный язык и как это устроено

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

Механизм устроен просто: у большинства объектов метаданных есть свойство «Синоним», которое хранит значения на всех языках конфигурации. Платформа в момент отображения выбирает значение, соответствующее текущему языку сеанса. Если значение на нужном языке не заполнено, пользователь увидит пустую строку или значение по умолчанию — это главный источник жалоб после небрежной локализации.

Создание объекта «Язык» в конфигураторе

Откройте конфигурацию в конфигураторе (меню «Конфигурация → Открыть конфигурацию»). Если конфигурация находится на поддержке с запретом изменений, сначала включите возможность изменения через «Поддержка → Настройка поддержки» — учтите, что это влияет на дальнейшее обновление типового решения.

В дереве конфигурации разверните ветку «Общие», найдите узел «Языки», вызовите контекстное меню и выберите «Добавить». В палитре свойств нового языка задайте имя (например, Английский) и код языка — короткий идентификатор по стандарту, например en, de, uk. Код важен: именно он используется при переключении языка сеанса и в параметрах запуска.

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

Порядок действий
  1. 1
    Сделайте резервную копию информационной базы или выгрузку конфигурации в файл.
  2. 2
    Откройте конфигуратор и дерево конфигурации, разверните «Общие → Языки».
  3. 3
    Через контекстное меню добавьте новый язык, задайте имя и код (например, en).
  4. 4
    Сохраните конфигурацию (Ctrl+S) и при необходимости обновите конфигурацию базы данных.
  5. 5
    Заполните синонимы объектов на новом языке и переведите строки в коде.
  6. 6
    Проверьте результат, запустив сеанс с параметром /L en.

Перевод синонимов объектов метаданных

Основной объём работы — перевод синонимов справочников, документов, реквизитов, перечислений, регистров, команд и ролей. Откройте палитру свойств объекта и щёлкните по кнопке с лупой у поля «Синоним»: откроется окно с полями ввода для каждого языка конфигурации. Заполните значение на новом языке.

Делать это вручную для сотен объектов утомительно, поэтому для массового перевода используют внешние обработки и редакторы мультиязычных строк, которые выгружают все синонимы в таблицу и загружают обратно. Также удобно пользоваться поиском по конфигурации («Правка → Глобальный поиск»), чтобы найти объекты с незаполненным переводом.

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

Типичные ошибки
01
Переведены синонимы объектов, но забыты надписи на формах — в интерфейсе остаются русские заголовки.
02
Оставлены пустые значения на новом языке у части реквизитов — пользователь видит пустые подписи полей.
03
Строки в коде захардкожены через НСтр только на русском — сообщения об ошибках не переводятся.
04
Код языка задан произвольно, а не по стандарту — параметр /L при запуске не срабатывает как ожидается.

Строки в программном коде

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

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

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

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

Проверка результата и переключение языка сеанса

Самый быстрый способ проверить интерфейс — запустить тонкий или толстый клиент с параметром командной строки /L en (вместо en — код вашего языка). Для веб-клиента язык задаётся параметром строки подключения или настройками публикации.

В файловом варианте и клиент-серверном язык также можно указать в свойствах пользователя информационной базы (ветка «Пользователи» в конфигураторе или настройки в режиме предприятия, если конфигурация это поддерживает). После смены языка перезапустите сеанс.

Контрольные точки

Как проверить результат

Главное меню и панели разделов
Норма

Все разделы подписаны на новом языке

Тревожный признак

Часть пунктов пустая или на русском

Формы документов и справочников
Норма

Заголовки полей и кнопок переведены

Тревожный признак

Пустые подписи полей, русские надписи

Сообщения при проведении и ошибках
Норма

Тексты сообщений на новом языке

Тревожный признак

Сообщения выводятся на русском

Печатные формы
Норма

Макеты переведены или осознанно оставлены

Тревожный признак

Шаблоны содержат только русский текст

Ограничения, риски и частые ошибки

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

Отдельный риск — неполный перевод. Если после добавления языка не пройтись по всем объектам, пользователи увидят смесь языков или пустые надписи, что выглядит хуже, чем отсутствие локализации. Планируйте проверку как обязательный этап, а не опцию.

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

Удобный приём — вести перевод в таблице: выгрузить все синонимы и строки НСтр, отдать таблицу переводчику, затем загрузить обратно. Так исключаются пропуски, а прогресс перевода легко контролировать по количеству незаполненных строк.
ПЗ
Практическое замечание

FAQ

Сколько языков можно добавить в конфигурацию?

Жёсткого практического ограничения для типового сценария нет — добавляют два, три и более языков. Однако каждый язык увеличивает объём работы по переводу и поддержке: любое новое сообщение или синоним нужно заполнять на всех языках, иначе часть пользователей увидит пустые строки.

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

Объект «Язык» сам по себе не меняет структуру таблиц, но после сохранения конфигурации платформа может потребовать обновление конфигурации базы данных. Выполните его стандартно через «Конфигурация → Обновить конфигурацию базы данных».

Что произойдёт, если не заполнить синоним на новом языке?

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

Как быстро переключить язык интерфейса без правки пользователя?

Используйте параметр командной строки /L с кодом языка при запуске клиента, например /L en. Это удобно для тестирования: можно держать два ярлыка — с русским и с дополнительным языком.

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

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

Можно ли удалить добавленный язык?

Да, объект удаляется из ветки «Языки» как любой другой объект метаданных. При этом все значения синонимов и строк НСтр для этого языка будут потеряны, поэтому перед удалением убедитесь, что переводы не понадобятся в будущем.

Итог

Что важно запомнить

Язык добавляется через «Общие → Языки» с указанием кода, после чего требуется полный перевод синонимов, надписей форм и строк НСтр в коде. Результат проверяется запуском сеанса с параметром /L. Данные базы и печатные формы автоматически не локализуются, а работу на типовой конфигурации следует начинать с копии и оценки влияния на обновления.