![]() |
|
Использование кода локализации в табличном документе | ☑ | ||
---|---|---|---|---|
0
Crush
02.06.14
✎
15:52
|
Вывожу обычный табличный документ.
МакетОтчета = ПолучитьМакет("Макет"); МакетОтчета.КодЯзыкаМакета = "EN"; Текст ячейки задал на русском "Имя" и на английском "Name". Когда МакетОтчета.КодЯзыкаМакета = "EN"; тогда выводит "Name", когда "RU", тогда выводит "Имя". Тут всё здорово, всё работает. Есть еще одна ячейка. Заполнение = Параметр, Параметр = Контрагент, Контрагент: Справочник ссылка. У справочника есть реквизит НаименованиеEN. Я конечно могу переделать параметр в строку и в зависимости от кода языка обращаться к нужному наименованию. Но кажется должен быть более простой способ. Как менять представление элемента справочника в зависимости от текущего языка? Платформа (8.2.18.102) обычное приложение. |
|||
1
fisher
02.06.14
✎
16:10
|
Вообще-то, пихать ссылку в параметр ячейки макета, чтобы платформа сама рожала её представление - это фэйл (неявный запрос к БД).
Еще на 8.0 рекомендовалось для этих целей специально получать представление в запросе. |
|||
2
fisher
02.06.14
✎
16:11
|
По сабжу - не вижу другого варианта, как получать оба представления и НСтр().
|
|||
3
Crush
02.06.14
✎
16:16
|
(1) согласен, лень переделывать отчет.
Но походу придется получать представления и передавать кодЯзыка в запрос. А там Выбор когда &КодЯзыка="EN" тогда Контрагент.НаименованиеEN иначе Представление(Контрагент) Конец Как КонтрагентПредставление |
|||
4
fisher
02.06.14
✎
16:16
|
Ну, или переходить на 8.3
|
|||
5
Crush
02.06.14
✎
16:18
|
(4) :) я уж лучше запросик подправлю, чем самописку 5-ти летней давности на 8.3:)
Спасибо! |
|||
6
fisher
02.06.14
✎
16:22
|
Хотя вру. 8.3 не сильно полечит.
Там можно формировать произвольное представление, но механизм не параметризируемый. Короче, вообще сабжевый момент остался самым недопиленным местом в механизмах локализации. ИМХО. |
|||
7
fisher
02.06.14
✎
16:30
|
(3) Лучше чё-нить вроде
НСтр(ПодставитьПараметрыВСтроку("en='%1';ru='%2'", НаименованиеEN, НаименованиеRU), КодЯзыка) Преимущество будет в том, что эта точка легко найдется, ежели вдруг еще один язык локализации будет добавляться или просто будет проводится анализ локализации. |
|||
8
Crush
02.06.14
✎
17:26
|
А ларчик то еще проще открывается оказывается:) Жаль уже в запрос представление добавил.
Свойства ячейки - Заполнение - Шаблон. Тогда в тексте доступны встроенные поля локализации. Вставил [Контрагент.Наименование] и [Контрагент.НаименованиеEN] Работает:) |
|||
9
Crush
02.06.14
✎
17:28
|
(8) А не.. Вру. Что то не взлетело пока
|
|||
10
fisher
02.06.14
✎
17:33
|
Прикольно. Шаблоном я не сообразил.
Попробуй просто два параметра указать "НаименованиеRU" и "НаименованиеEN" в своих полях локализации и заполняй их из запроса. |
|||
11
Crush
02.06.14
✎
17:35
|
(10) Ага. С прямым параметром [КонтрагентПредставлениеРу][КонтрагентПредставлениеАнгл] - взлетело.
Можно считать, что тема решена:) |
|||
12
Crush
02.06.14
✎
17:38
|
fisher, спасибо за участие;)
|
|||
13
fisher
02.06.14
✎
17:43
|
Нема за що.
Самому польза вышла. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |