|
Использование кода локализации в табличном документе |
☑ |
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
|
Нема за що.
Самому польза вышла.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший