Содержание
1. Подходы к реализации отчетов на разных языках в системе компоновки данных 1С
2. Реализация мультиязычных параметров в системе программирования 1С
1. Подходы к реализации отчетов на разных языках в системе компоновки данных 1С
При разработке отчетов в 1С для международных компаний или пользователей, говорящих на разных языках, часто возникает необходимость отображать параметры и элементы интерфейса отчета на нескольких языках. Это позволяет улучшить пользовательский опыт и сделать отчет более удобным для анализа.
Основные подходы к реализации:
1) Использование метаданных конфигурации для мультиязычности.
2) Хранение переводов в отдельном справочнике или регистре.
3) Настройка перевода интерфейса через функции платформы.
2. Реализация мультиязычных параметров в системе программирования 1С
1. Настройка языков конфигурации
Чтобы параметры и элементы отчета поддерживали несколько языков:
· В конфигурации установите галочку для нужных языков разработки.
Путь: Конфигуратор → Настройки конфигурации → Языки.
· Укажите названия параметров и других элементов отчета для каждого языка в свойствах объекта.
Пример:
Для параметра "Период" задайте перевод:
· Русский: "Период".
· Английский: "Period".
2. Создание параметров с поддержкой языка интерфейса
Если отчет построен на СКД, настройте параметры так, чтобы они менялись в зависимости от языка интерфейса.
Пример:
Функция ПолучитьНазваниеПараметра(ИмяПараметра) Экспорт
Язык = ПараметрыСеанса.ТекущийЯзык;
Переводы = Новый Структура(
"Период, Клиент",
Новый Структура("en=Period; ru=Период"),
Новый Структура("en=Customer; ru=Клиент")
);
Если Переводы.Свойство(ИмяПараметра) Тогда
Возврат Переводы[ИмяПараметра].Получить(Язык);
КонецЕсли;
Возврат ИмяПараметра; // Значение по умолчанию
КонецФункции
3. Хранение переводов в справочнике
Если требуется гибкость или динамическое добавление новых языков, можно создать справочник для хранения переводов.
Пример структуры справочника:
· Поле: КодПараметра (например, "Период").
· Поле: Язык (например, "ru" или "en").
· Поле: Значение (например, "Период" или "Period").
Пример кода для получения перевода:
Функция ПолучитьПеревод(КодПараметра, Язык)
Запрос = Новый Запрос;
Запрос.Текст = "
ВЫБРАТЬ
Переводы.Значение
ИЗ
Справочник.Переводы КАК Переводы
ГДЕ
Переводы.КодПараметра = &КодПараметра
И Переводы.Язык = &Язык
";
Запрос.УстановитьПараметр("КодПараметра", КодПараметра);
Запрос.УстановитьПараметр("Язык", Язык);
Результат = Запрос.Выполнить().Выбрать();
Если Результат.Следующий() Тогда
Возврат Результат.Значение;
КонецЕсли;
Возврат КодПараметра; // Значение по умолчанию
КонецФункции
4. Изменение языка в сеансе
Пользовательский язык можно установить через ПараметрыСеанса.ТекущийЯзык.
Пример:
ПараметрыСеанса.ТекущийЯзык = "en"; // Установить язык интерфейса.
Специалист компании ООО "Кодерлайн"
Елена Дубровина