Выбор в запросе представления реквизита (Синонима) на определенном языке

1. AnryMc 849 10.01.14 11:59 Сейчас в теме
В системе может использоваться несколько языков, например русский и украинский...
Соответственно представление реквизита (его синоним) тоже (как правило) существуют на 2-х языках...
Как заставить запрос выбирать представление по 2-му языку (не языку интерфейса)???
Т.е. как выбрать например украинские синонимы при русском языке системы (интерфейсе)?

P.S. Ещё интересней - как если нет украинского синонима - выбрать русский???
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
6. awk 744 10.01.14 12:51 Сейчас в теме
(1) AnryMc, Штатно никак.
Можно:

1. Локализацию сохранить в табличный документ.
2. Импортировать ее в регистр сведений.
3. Там где требуется использовать регистр и функцию НСтр(Текст, КодЯзыка)

Пример регистра:
-Измерения:
--Ключ: Строка - Например полное имя метаданных
--Код_языка: Строка - ru, en и т.п.
-Ресурсы:
--Значение: Строка - Значение на разных языках

Пример текст запроса:

ВЫБРАТЬ Ключ, Код_языка + " = """ + Значение + """;"
ИЗ <ИмяРегистра>
[ГДЕ Ключ = &Ключ И Код_языка В (&Код_Языка)]

Пример кода:

Таблица = Запрос.Выполнить().Выгрузить();

Массив = ПолучитьМассивНужныхСтрок(Таблица);

Текст = СтрокавыеФункцииКлиентСервер.ПолучитьСтрокуИзМассиваПодстрок(Массив, ";");

НужныйТекст = НСтр(Текст, ИнтиресующаяЛокаль);
Если ПустаяСтрока(НужныйТекст) Тогда
 НужныйТекст = ТекстПоУмолчанию;
КонецЕсли;
Показать
Соня; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. awk 744 10.01.14 12:51 Сейчас в теме
(1) AnryMc, Штатно никак.
Можно:

1. Локализацию сохранить в табличный документ.
2. Импортировать ее в регистр сведений.
3. Там где требуется использовать регистр и функцию НСтр(Текст, КодЯзыка)

Пример регистра:
-Измерения:
--Ключ: Строка - Например полное имя метаданных
--Код_языка: Строка - ru, en и т.п.
-Ресурсы:
--Значение: Строка - Значение на разных языках

Пример текст запроса:

ВЫБРАТЬ Ключ, Код_языка + " = """ + Значение + """;"
ИЗ <ИмяРегистра>
[ГДЕ Ключ = &Ключ И Код_языка В (&Код_Языка)]

Пример кода:

Таблица = Запрос.Выполнить().Выгрузить();

Массив = ПолучитьМассивНужныхСтрок(Таблица);

Текст = СтрокавыеФункцииКлиентСервер.ПолучитьСтрокуИзМассиваПодстрок(Массив, ";");

НужныйТекст = НСтр(Текст, ИнтиресующаяЛокаль);
Если ПустаяСтрока(НужныйТекст) Тогда
 НужныйТекст = ТекстПоУмолчанию;
КонецЕсли;
Показать
Соня; +1 Ответить
2. AnryMc 849 10.01.14 12:05 Сейчас в теме
Добавил вознаграждение...
3. KapasMordorov 428 10.01.14 12:15 Сейчас в теме
Поторопился.
Сходил почитал форум большого брата - похоже что никак.
4. aleks-lit 10.01.14 12:47 Сейчас в теме
5. aleks-lit 10.01.14 12:50 Сейчас в теме
а-а! вопрос понял.

а зачем?
7. aleks-lit 10.01.14 12:54 Сейчас в теме
по-подробнее, что ты хочешь сделать.

какие реквизиты отбираешь?
что получаешь из запроса?
8. AHDP 8 10.01.14 13:01 Сейчас в теме
(7) Наверное хочет таким образом заголовки в отчётах для "начальства" выводить...
9. aleks-lit 10.01.14 13:10 Сейчас в теме
(8) AHDP,

заголовки через запрос?
ну, не знаю...
11. AHDP 8 10.01.14 13:17 Сейчас в теме
(9) Ну не в формы же подставлять!?
10. KapasMordorov 428 10.01.14 13:16 Сейчас в теме
Синонимы недоступны в языке запросов.
В метаданных выдаются на языке сеанса (зависит от конфигурации, пользователя).
Gendalf_beliy; +1 Ответить
12. aleks-lit 10.01.14 13:25 Сейчас в теме
(10) KapasMordorov,
поэтому и спрашиваю "чё ему нада".
Gendalf_beliy; +1 Ответить
13. Gendalf_beliy 10.01.14 13:30 Сейчас в теме
Согласен с (10)
На мой взгялд самый простой хоть и неудобный способ - прописать в запросе ручками через оператор КАК.
Многое зависит от того где и для чего используется Ваш запрос (выводит что-то на печать? тогда вроде все нормально, просто язык локализации указывать необходимо в модуле вывода на печать), количества таких реквизитов и того где и как они должны выводиться. Без использования запроса никак нельзя обойтись?
15. AnryMc 849 10.01.14 13:32 Сейчас в теме
(13) Gendalf_beliy,
прописать в запросе ручками через оператор КАК


Это определяет "синоним" поля выборки запроса, а мне нужны синонимы выбираемых данных...
14. AnryMc 849 10.01.14 13:30 Сейчас в теме
Это я знаю...

Просто есть отчет (консоль отчетов - СКД). Пользователь работает с русским интерфейсом. Отчет должен строиться на украинском языке.
Например у элемента справочника "Контрагенты" есть реквизит "Вид контрагента", это перечисление с такими значениями (синонимами):
ру "Физическое лицо" = ук "Фізічна особа"
ру "Юридическое лицо" = ук "юрідична особа"

Если строить отчет "из под украинского интерфейса" в отчет попадают украинские синонимы (ТАК И НАДО), а если "из под русского интерфейса", то - русский синоним (А НАДО УКРАИНСКИЙ)

Конечно можно поизголяться и в СКД прописать "ВЫБОР..." или вообще написать внешний отчет, но "хочется отделаться малой кровью", просто уж много таких реквизитов...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот