Подключение к подсистеме МультиязычностьБазовая
Подсистема позволяет хранить значения строковых реквизитов произвольных объектов метаданных ссылочного типа на разных языках:
Для подключения необходимо:
Настройка реквизитов
Для целевого строкового реквизита необходимо добавить дополнительные реквизиты, имена которых необходимо формировать по шаблону <ИмяРеквизита>Язык1 и <ИмяРеквизита>Язык2. Например, для строкового реквизита СодержаниеЗаказа
следует создать строковые реквизиты СодержаниеЗаказаЯзык1
и СодержаниеЗаказаЯзык2
.
Реквизиты допускается создавать как непосредственно на уровне объекта, так и применять общие реквизиты.
Настройка функциональных опций
Включить добавленные реквизиты в состав функциональных опций ИспользоватьДополнительныйЯзык1
и ИспользоватьДополнительныйЯзык2
Настройка формы списка
Затем для каждого объекта, допускающего ввод мультиязычных данных, в форме списка в обработчике события ПриСозданииНаСервере
вставить вызов процедуры
&НаСервереПроцедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // СтандартныеПодсистемы.Мультиязычность МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект); // Конец СтандартныеПодсистемы.МультиязычностьКонецПроцедуры
Настройка формы элемента
В обработчики событий формы элемента (документа, записи) ПриСозданииНаСервере
, ПриЧтенииНаСервере
, ПередЗаписьюНаСервере
и ПослеЗаписиНаСервере
вставить вызовы одноименных процедур их общего модуля МультиязычностьСервер
:
#Область ОбработчикиСобытийФормы
&НаСервереПроцедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) // СтандартныеПодсистемы.Мультиязычность МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); // Конец СтандартныеПодсистемы.МультиязычностьКонецПроцедуры
&НаСервереПроцедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // СтандартныеПодсистемы.Мультиязычность МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); // Конец СтандартныеПодсистемы.МультиязычностьКонецПроцедуры
&НаСервереПроцедура ПриЧтенииНаСервере(ТекущийОбъект) // СтандартныеПодсистемы.Мультиязычность МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); // Конец СтандартныеПодсистемы.МультиязычностьКонецПроцедуры
&НаСервереПроцедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) // СтандартныеПодсистемы.Мультиязычность МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); // Конец СтандартныеПодсистемы.МультиязычностьКонецПроцедуры
#КонецОбласти
Для регистра сведений здесь и далее переменную
Объект
следует заменить наЗапись
.
В область ОбработчикиСобытийЭлементовШапкиФормы
модуля формы элемента (документа) поместить следующий код:
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиентеПроцедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) // СтандартныеПодсистемы.Мультиязычность МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); // Конец СтандартныеПодсистемы.МультиязычностьКонецПроцедуры
#КонецОбласти
Настройка модуля объекта
#Область ОбработчикиСобытий
Процедура ПриЧтенииПредставленийНаСервере() Экспорт // СтандартныеПодсистемы.Мультиязычность МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); // Конец СтандартныеПодсистемы.МультиязычностьКонецПроцедуры
#КонецОбласти
Настройка модуля менеджера
Для объекта ссылочного типа (справочники, документы и т.п.) в модуль менеджера объекта добавить обработчики ОбработкаПолученияПолейПредставления
, ОбработкаПолученияПредставления
и ОбработкаПолученияДанныхВыбора
:
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка) // СтандартныеПодсистемы.Мультиязычность МультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка); // Конец СтандартныеПодсистемы.МультиязычностьКонецПроцедуры
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) // СтандартныеПодсистемы.Мультиязычность МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); // Конец СтандартныеПодсистемы.МультиязычностьКонецПроцедуры
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) // СтандартныеПодсистемы.Мультиязычность МультиязычностьСервер.ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка, <Метаданные.ПланыВидовХарактеристик.ОбъектыАдресацииЗадач>); // Конец СтандартныеПодсистемы.МультиязычностьКонецПроцедуры
#КонецОбласти
Четвертым параметром в вызове процедуры МультиязычностьСервер.ОбработкаПолученияДанныхВыбора
следует передавать объект метаданных.