Как перевести стандартные команды формы (Записать, Провести и др.) в 1С на другой язык?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Понятие языка платформы и языка конфигурации

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

Рассмотрим по шагам основные способы перевода интерфейса.

Использование ключей запуска в параметрах клиента

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

  1. Откроем список информационных баз.
  2. Выберем нужную базу и нажмем кнопку «Изменить».
  3. Перейдем на последнюю закладку настроек, где находится поле «Дополнительные параметры запуска».
  4. Пропишем ключ /L с указанием кода языка. Например, для английского языка это будет /L en.

Важно: обратите внимание на наклон косой черты. В платформе используется прямой слеш /. Опечатка, например использование обратного слеша \L, приведет к тому, что параметр будет проигнорирован. Также помните, что ключ /L влияет именно на язык интерфейса (меню, системные диалоги, кнопки платформы).

Если нам необходимо также изменить форматы отображения дат и чисел (например, чтобы дата выводилась в формате MM/DD/YYYY), следует использовать дополнительный ключ /VL. Посмотрим на пример совместного использования этих параметров:

/L en /VL en_US

Настройка языков в дереве метаданных

Для того чтобы конфигурация понимала, на какие языки она может быть переведена, необходимо настроить объект «Языки» в ветке «Общие». Разберем этот процесс:

  1. Развернем дерево конфигурации и найдем раздел Общие -> Языки.
  2. Добавим новый язык (например, English) и укажем его код en.
  3. Укажем в свойствах конфигурации (самый верхний корень дерева), какие языки являются допустимыми для использования.

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

Настройка языка на стороне сервера 1С

В клиент-серверном варианте работы некоторые сообщения или отчеты могут формироваться на стороне сервера. Чтобы сервер корректно обрабатывал языковые настройки, проанализируем файл conf.cfg. Этот файл располагается в каталоге bin/conf установленной платформы.

В этом файле можно жестко задать системный язык с помощью параметра SystemLanguage. Например:

SystemLanguage=EN

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

Особенности перевода в веб-клиенте

Если пользователи работают через браузер, ключи запуска в ярлыке не сработают. В этой ситуации проанализируем параметры URL. Чтобы переключить язык в веб-клиенте, необходимо добавить к адресу информационной базы параметр L:

http://server/base_name?L=en

Также язык может определяться настройками самого браузера (приоритетом языков в настройках Chrome или Firefox) или параметрами в файле публикации default.vrd на веб-сервере (Apache или IIS).

Инструмент «Правка текстов интерфейса»

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

  1. Перейдем в меню «Конфигурация» — «Общие» — «Правка текстов интерфейса».
  2. В открывшемся окне выберем исходный язык и целевой язык для перевода.
  3. Платформа выведет таблицу со всеми строками конфигурации. Мы сможем массово заполнить переводы для заголовков, подсказок и текстов сообщений.

Программная проверка текущего языка

Иногда требуется изменить логику работы программы в зависимости от того, какой язык интерфейса выбрал пользователь. Рассмотрим, как это сделать с помощью встроенного языка 1С. Для этого воспользуемся функцией ТекущийЯзыкСистемы().


// Пример проверки языка для вывода сообщения
Если ТекущийЯзыкСистемы() = "en" Тогда
    Предупреждение("The document has been posted successfully.");
Иначе
    Предупреждение("Документ успешно проведен.");
КонецЕсли;

Переопределение стандартных команд (ручной метод)

Если штатный перевод платформы по каким-то причинам вас не устраивает (например, вместо «Post and close» вы хотите видеть «Save & Finish»), единственный способ изменить текст стандартных кнопок — это их ручное переопределение в форме. Проанализируем этот алгоритм:

  1. Откроем форму документа или справочника.
  2. Найдем элемент «Командная панель».
  3. В свойствах панели снимем флажок Автозаполнение.
  4. После этого панель станет пустой, и вам придется вручную добавить кнопки, привязав их к стандартным командам (например, ЗаписатьИЗакрыть).
  5. В свойстве Заголовок для каждой созданной кнопки вы сможете указать любой текст на любом языке, используя механизм строк на разных языках (нажав на кнопку с лупой в поле ввода заголовка).

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

← На главную