Имя: Пароль:
1C
1С v8
Использование кода локализации в табличном документе
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
Нема за що.
Самому польза вышла.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn