Skip to content

Подключение к подсистеме МультиязычностьБазовая

Подсистема позволяет хранить значения строковых реквизитов произвольных объектов метаданных ссылочного типа на разных языках: Изображение

Для подключения необходимо:

Настройка реквизитов

Для целевого строкового реквизита необходимо добавить дополнительные реквизиты, имена которых необходимо формировать по шаблону <ИмяРеквизита>Язык1 и <ИмяРеквизита>Язык2. Например, для строкового реквизита СодержаниеЗаказа следует создать строковые реквизиты СодержаниеЗаказаЯзык1 и СодержаниеЗаказаЯзык2.

Реквизиты допускается создавать как непосредственно на уровне объекта, так и применять общие реквизиты.

Настройка функциональных опций

Включить добавленные реквизиты в состав функциональных опций ИспользоватьДополнительныйЯзык1 и ИспользоватьДополнительныйЯзык2

Настройка формы списка

Затем для каждого объекта, допускающего ввод мультиязычных данных, в форме списка в обработчике события ПриСозданииНаСервере вставить вызов процедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.Мультиязычность
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.Мультиязычность
КонецПроцедуры

Настройка формы элемента

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

#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
// СтандартныеПодсистемы.Мультиязычность
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
// Конец СтандартныеПодсистемы.Мультиязычность
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.Мультиязычность
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
// Конец СтандартныеПодсистемы.Мультиязычность
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.Мультиязычность
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
// Конец СтандартныеПодсистемы.Мультиязычность
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
// СтандартныеПодсистемы.Мультиязычность
МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
// Конец СтандартныеПодсистемы.Мультиязычность
КонецПроцедуры
#КонецОбласти

Для регистра сведений здесь и далее переменную Объект следует заменить на Запись.

В область ОбработчикиСобытийЭлементовШапкиФормы модуля формы элемента (документа) поместить следующий код:

#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
// СтандартныеПодсистемы.Мультиязычность
МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
// Конец СтандартныеПодсистемы.Мультиязычность
КонецПроцедуры
#КонецОбласти

Настройка модуля объекта

#Область ОбработчикиСобытий
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
// СтандартныеПодсистемы.Мультиязычность
МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.Мультиязычность
КонецПроцедуры
#КонецОбласти

Настройка модуля менеджера

Для объекта ссылочного типа (справочники, документы и т.п.) в модуль менеджера объекта добавить обработчики ОбработкаПолученияПолейПредставления, ОбработкаПолученияПредставления и ОбработкаПолученияДанныхВыбора:

#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
// СтандартныеПодсистемы.Мультиязычность
МультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка);
// Конец СтандартныеПодсистемы.Мультиязычность
КонецПроцедуры
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
// СтандартныеПодсистемы.Мультиязычность
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
// Конец СтандартныеПодсистемы.Мультиязычность
КонецПроцедуры
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
// СтандартныеПодсистемы.Мультиязычность
МультиязычностьСервер.ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка, <Метаданные.ПланыВидовХарактеристик.ОбъектыАдресацииЗадач>);
// Конец СтандартныеПодсистемы.Мультиязычность
КонецПроцедуры
#КонецОбласти

Четвертым параметром в вызове процедуры МультиязычностьСервер.ОбработкаПолученияДанныхВыбора следует передавать объект метаданных.