Когда мы сталкиваемся с необходимостью изменить язык интерфейса 1С:Предприятия, часто возникает вопрос: почему одни элементы переводятся, а другие остаются на исходном языке? Разберем эту ситуацию подробно, поскольку она затрагивает две разные, но взаимосвязанные сущности: язык самой платформы 1С:Предприятие и язык прикладного решения (конфигурации). Именно в этом различии кроется ключ к полному решению задачи локализации.
Прежде чем перейти к конкретным шагам, давайте четко определим, что такое платформа и что такое конфигурация в контексте 1С:Предприятия.
Основная проблема, с которой мы часто сталкиваемся, заключается в том, что изменение языка платформы не приводит к автоматическому переводу всех элементов конфигурации, если сама конфигурация не была изначально разработана с поддержкой нескольких языков интерфейса. Разберем каждый аспект подробнее.
Для начала рассмотрим, как изменить язык элементов, которые относятся непосредственно к платформе. Это меню «Файл», «Сервис», «Окна», а также стандартные системные сообщения и диалоги. Если вам требуется, например, английский интерфейс платформы, мы можем выполнить следующие действия:
При установке или модификации платформы 1С:Предприятие у вас есть возможность выбрать компоненты для установки. Убедитесь, что требуемый язык (например, английский) выбран в списке доступных языков. Если платформа уже установлена, вы можете запустить инсталлятор снова и выбрать опцию «Изменить» (Modify), чтобы добавить или удалить языковые пакеты.
Мы должны убедиться, что соответствующий языковой пакет установлен. Например, для английского языка это будет English (en). Программа установки 1С обеспечивает установку на языке, который соответствует установкам операционной системы пользователя.
После установки языкового пакета мы можем задать язык интерфейса платформы по умолчанию. Это делается через свойства ярлыка запуска базы или в настройках самой платформы. Для этого:
/L<код_языка>. Например, для английского языка это будет /Len. Если язык не установлен, по умолчанию может использоваться английский.Помимо языка интерфейса, существует понятие локализации текущего сеанса, которое определяет формат вывода чисел, дат, времени и других региональных настроек. Эти параметры наследуются от настроек интерфейса, но их также можно явно указать с помощью параметра запуска /VL<код_локали>. Например, /VLen_US для английского языка США.
Таким образом, если наша цель – только перевод стандартных элементов платформы, то вышеописанные шаги будут достаточными. Однако, если мы хотим перевести все названия подменю, документов, реквизитов и форм, специфичных для конфигурации, нам потребуется учитывать другие аспекты.
Самая частая причина, по которой пользователи не видят полного перевода интерфейса после смены языка платформы, заключается в том, что сама конфигурация не поддерживает нужный язык. Это означает, что разработчик конфигурации не предусмотрел многоязычность или не перевел все тексты на альтернативные языки.
Рассмотрим, как это происходит и что мы можем с этим сделать:
Мы можем проверить, какие языки указаны в нашей конфигурации. Для этого:
Объекты конфигурации «Языки» используются для создания интерфейса прикладного решения на разных языках. Разработчик может добавлять несколько языков и указывать различные варианты отображения для одной и той же надписи на каждом из них.
Важно понимать, что "наличие языка в метаданных не означает, что интерфейс локализован". Это значит, что разработчик мог добавить английский язык в список поддерживаемых языков конфигурации, но фактически не перевел все элементы интерфейса (заголовки форм, наименования реквизитов, тексты кнопок, элементы меню, сообщения, тексты отчетов и т.д.) на этот язык. Для каждой формы, элемента интерфейса, сообщения и даже для каждой строки кода, выводящей пользовательский текст, должен быть явно указан перевод. При необходимости перевода печатных форм и выходных отчетов можно использовать обработку для автоматического перевода табличных документов через Яндекс.Переводчик.
Мы можем проверить локализацию конкретной формы в конфигураторе, используя специальный переключатель в правом нижнем углу окна формы, который позволяет переключаться между языками и видеть, есть ли переводы для каждого элемента.
На каком языке будет "разговаривать" прикладное решение, устанавливается с помощью свойства «Язык пользователя» или определяется на основе локализации платформы, если конфигурация поддерживает мультиязычность. Таким образом, если интерфейс прикладного решения не локализован на нужный язык, отображаться на этом языке он не будет.
Если наша конфигурация не поддерживает нужный язык интерфейса из коробки, у нас есть несколько путей решения проблемы. Рассмотрим их подробно:
Некоторые типовые конфигурации 1С изначально разрабатываются с поддержкой нескольких языков, включая английский. Если вы стоите перед выбором конфигурации, и мультиязычность является критическим требованием, мы можем рассмотреть следующие продукты:
Если вы используете такие конфигурации, как «1С:Управление торговлей» (УТ 11), для которой изначально английский язык не является основным и полностью поддерживаемым, то простой смены языка платформы будет недостаточно.
Для популярных типовых конфигураций 1С, таких как «1С:Управление торговлей», «1С:Бухгалтерия», «1С:Зарплата и управление персоналом», существуют готовые языковые пакеты, разработанные партнерами 1С. Эти пакеты представляют собой расширения или доработки, которые обеспечивают полный перевод интерфейса, экранных форм, текстов диалогов, сообщений и отчетов на нужный язык (например, английский).
Преимущества таких пакетов:
Например, существуют продукты типа «BIT.English Language Pack», которые предлагают комплексное решение для перевода типовых конфигураций 1С на английский язык. Мы можем рассмотреть возможность приобретения такого пакета для своей конфигурации УТ 11, если нам требуется полный английский интерфейс.
Если ни один из вышеперечисленных вариантов не подходит, или у нас есть уникальная конфигурация, возникает задача самостоятельной локализации. Это наиболее трудоемкий и затратный путь, который требует значительных ресурсов и квалификации разработчиков.
Если мы разрабатываем конфигурацию с нуля, крайне важно сразу предусмотреть ее мультиязычность. В 1С для этого используются «Языки» в конфигурации, а также механизмы получения текста по идентификатору в зависимости от текущего языка пользователя. Необходимо создавать элементы интерфейса таким образом, чтобы они могли отображать тексты на разных языках. Также можно предусмотреть ввод данных сразу на нескольких языках и многоязычное представление метаданных (например, предопределенные элементы, дополнительные реквизиты).
Для доработки существующей конфигурации потребуется:
EnScript, когда параллельно ведется разработка решения сразу на двух языках (русском и английском), но это является очень затратным для компании. «Требования по локализации» в системе стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8 описывают общие требования к локализации конфигурации, работе с интерфейсными текстами в коде, запросами, отчетами, форматированием дат и чисел, а также другими аспектами.LangTool (расширение или плагин для среды разработки 1C:EDT). Этот инструмент помогает собирать все тексты конфигурации, управлять словарями и автоматизировать процесс перевода на альтернативные языки, что существенно ускоряет локализацию, собрать полные словари и использовать их для перевода интерфейса, исходного кода и метаданных.Мы должны помнить, что ручная локализация большой типовой конфигурации – это практически создание новой версии продукта, требующее глубоких знаний как 1С, так и целевого языка, а также значительных временных затрат.
Отдельно стоит упомянуть Региональные установки информационной базы. Эти настройки влияют на представления дат, чисел, форматы валют в рамках конкретной базы данных. Мы можем найти их в режиме 1С:Предприятие через «Функции технического специалиста» (в английском интерфейсе Functions for technician...) -> «Региональные установки информационной базы» (Infobase regional settings) или в конфигураторе через «Администрирование» -> «Региональные установки информационной базы». Эти настройки важны для корректного отображения числовых и календарных данных в соответствии с региональными стандартами, но они не отвечают за перевод текстовых элементов интерфейса.
Также стоит учитывать некоторые специфические моменты, которые могут повлиять на язык интерфейса:
/ru_RU (для русского языка).Если Условие Тогда и If Condition Then могут coexist.Мы выяснили, что полный перевод интерфейса 1С:Предприятия на другой язык требует не только изменения настроек платформы, но и, что более важно, наличия локализованных текстов в самой конфигурации. Если конфигурация (как, например, типовая УТ 11 без дополнительных пакетов) изначально не разрабатывалась с поддержкой английского языка, то нам потребуется либо найти конфигурацию с такой поддержкой, либо приобрести специализированный языковой пакет от партнеров, либо выполнить дорогостоящую и трудоемкую самостоятельную локализацию. Понимание этой разницы критически важно для эффективного решения задачи мультиязычности в 1С.