Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Локализация реквизита
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
jafru
Если кто сталкивался с локализацией 1С 8.2 8.1 просьба помочь smile.gif Проблема следующая:
как можно локализовать реквизит "НаименованиеПолное" справочника "Организации", тоесть мне надо выводить название организации на русском иногда на украинском языке, как это можно реализовать?
logist
Цитата(jafru @ 20.09.11, 18:05) необходимо зарегистрироваться для просмотра ссылки
как это можно реализовать?

Выводить только на украинском. Реально трезвое решение.
Иначе, в Вашем случае это не локализация, а использование разных реквизитов, т.е. в справочнике организации надо добавить еще один реквизит НаименованиеПолноеУкр, и дальше в необходимых местах вывода исправлять код на вывод нужного реквизита. Но как по мне это утопичный подход.
jafru
Я уже подумываю о новом справочнике, например "Локализация", с реквизитами "Параметр", "Значение", "Язык" так как в будущем наверное еще понадобится и китайский тулить в отчеты, но тут один знакомый не точно но сказал что в 1С8 возможно задавать несколько значения реквизита для каждого языка, вот только вопрос как?
logist
Несколько значений можно давать для отображения в форме названия самого реквизита, а не его содержимого.
Vofka
Наверное имеется ввиду следующее:
НазваниеФирмы = НСтр("ru = 'Название фирмы по русски'; uk = 'Назва компанії по українські'");
kivals
Тема мне интересна, т.к. у меня тоже есть приложение, локализированное рус/укр/англ и вопрос актуальный.

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

Сейчас накидаю сравнительную таблицу этих решений с собственными оценками. Удобно ли будет (и нужно ли?) сообществу разместить ее в google docs для совместного доступа?
kivals
Вот необходимо зарегистрироваться для просмотра ссылки в Google Docs. К оценкам написаны примечания.
Все оценки сугубо личные, кроме того итог собран обычным средним арифметическим, что не есть верным (для каждого человека конкретная оценка будет иметь свой вес в итоге) - так что копируйте себе и эсперментируйте smile.gif
jafru
Спасибо за помощь! Решение оказалось проще простого, в общих модулях есть Функция ОписаниеОрганизации, которая как раз и предназначена для локализации названия организации, туда забиваются названия организации на разных языках и многое другое smile.gif
mister-x
Цитата
Решение оказалось проще простого, в общих модулях есть Функция ОписаниеОрганизации...
вкажіть назву конфігурації
kivals
Цитата(jafru @ 26.09.11, 10:30) необходимо зарегистрироваться для просмотра ссылки
Спасибо за помощь! Решение оказалось проще простого, в общих модулях есть Функция ОписаниеОрганизации,...

Не - мне такой вариант не подходит sad.gif У меня не типовая и далеко не один справочник нужно локализировать...
jafru
Цитата(mister-x @ 26.09.11, 10:35) необходимо зарегистрироваться для просмотра ссылки
вкажіть назву конфігурації


"Управление производственным предприятием" ф-ция находится в модуле "ФормированиеПечатныхФорм"
Vofka
Цитата
Не - мне такой вариант не подходит smile.gif У меня не типовая и далеко не один справочник нужно локализировать...

Я не смотрел что к чему здесь, но разве выдрать функцию из типовой нельзя?
logist
Чето я не понял каким боком эта функция подходит к данному вопросу
// Возвращает структуру данных со сводным описанием контрагента
//
// Параметры:
//  СписокСведений - список значений со значенийми параметров организации
//   СписокСведений формируется функцией СведенияОЮрФизЛице
//  Список         - список запрашиваемых параметров организаиии
//  СПрефиксом     - Признак выводить или нет префикс параметра организации
//    КодЯзыка        - на каком языке выводить описание
//
// Возвращаемое значение:
//  Строка - описатель организации / контрагента / физ.лица.
MATEVI
Цитата(kivals @ 26.09.11, 10:48) необходимо зарегистрироваться для просмотра ссылки
Не - мне такой вариант не подходит sad.gif У меня не типовая и далеко не один справочник нужно локализировать...

В смысле наименования элементов и групп справочников? Т.е. например Номенклатура - Бензин А-95 - Gas A-95 ?
ЗЫ Простите мой английский smile.gif))

Если речь об этом. Может стоит создать регистр сведений, а не справочник, в нем указывать тип справочника, и переводимые реквизиты.
jafru
Цитата(logist @ 26.09.11, 11:48) необходимо зарегистрироваться для просмотра ссылки
Чето я не понял каким боком эта функция подходит к данному вопросу
// Возвращает структуру данных со сводным описанием контрагента
//
// Параметры:
//  СписокСведений - список значений со значенийми параметров организации
//   СписокСведений формируется функцией СведенияОЮрФизЛице
//  Список         - список запрашиваемых параметров организаиии
//  СПрефиксом     - Признак выводить или нет префикс параметра организации
//    КодЯзыка        - на каком языке выводить описание
//
// Возвращаемое значение:
//  Строка - описатель организации / контрагента / физ.лица.

функция используется во всех стандартных отчетах 1с для вывода назвния организации и других данных, пример из кода ее:
    СоответствиеПараметров = Новый Соответствие();
    СоответствиеПараметров.Вставить("ПолноеНаименование",        НСтр("ru=' ';uk=' '",КодЯзыка));
    СоответствиеПараметров.Вставить("КодПоЕДРПОУ",                 НСтр("ru='код по ЕГРПОУ ';uk='код за ЄДРПОУ '",КодЯзыка));
    СоответствиеПараметров.Вставить("КодПоДРФО",                 НСтр("ru='код по ГРФЛ ';uk='код за ДРФО '",КодЯзыка));
    СоответствиеПараметров.Вставить("ИНН",                        НСтр("ru='ИНН ';uk='ІПН '",КодЯзыка));
    СоответствиеПараметров.Вставить("НомерСвидетельства",         НСтр("ru='№ свид. ';uk='№ свід.  '",КодЯзыка));
    СоответствиеПараметров.Вставить("ЮридическийАдрес",            НСтр("ru='юр. адрес: ';uk='юр. адреса: '",КодЯзыка));
    СоответствиеПараметров.Вставить("ФактическийАдрес",            НСтр("ru='адрес: ';uk='адреса: '",КодЯзыка));
    СоответствиеПараметров.Вставить("Телефоны",                    НСтр("ru='тел.: ';uk='тел.: '",КодЯзыка));
    СоответствиеПараметров.Вставить("НомерСчета",                НСтр("ru='р/с ';uk='р/р '",КодЯзыка));
    СоответствиеПараметров.Вставить("Банк",                       НСтр("ru='в банке ';uk='у банку '",КодЯзыка));
    СоответствиеПараметров.Вставить("МФО",                        НСтр("ru= 'МФО ';uk='МФО '",КодЯзыка));
    СоответствиеПараметров.Вставить("ПлательщикНалогаНаПрибыль",НСтр("ru=' ';uk=' '",КодЯзыка));
logist
Цитата(jafru @ 26.09.11, 14:17) необходимо зарегистрироваться для просмотра ссылки
функция используется во всех стандартных отчетах 1с для вывода назвния организации и других данных, пример из кода ее:

Это понятно, но я не пойму как и из чего она выбирает вывод названия на организации на русском или украинском...
kivals
Цитата(MATEVI @ 26.09.11, 14:09) необходимо зарегистрироваться для просмотра ссылки
В смысле наименования элементов и групп справочников? Т.е. например Номенклатура - Бензин А-95 - Gas A-95 ?
ЗЫ Простите мой английский smile.gif ))

Если речь об этом. Может стоит создать регистр сведений, а не справочник, в нем указывать тип справочника, и переводимые реквизиты.

Да, речь именно об этом. Но я бы не ограничивался наименованиями - в моей задаче нужен еще и перевод адресов:
"01220, Украина, г. Киев, вул. Банковая, 11" -> "01220, 11 Bankova St., Kyiv, Ukraine"
Использовать регистр сведений тоже можно, плюсы и минусы можно обсудить. Мне справочник нравится тем, что в нем можно организовать иерархию:
ru
  Справочник.Номенклатура
    {guid элемента}
      Наименование = Бензин А-95
en
   Справочник.Номенклатура
     {guid элемента}
       Наименование = Gas A-95

Для иерархии больше 2х уровней это даст ИМХО выигрыш в объеме хранимых данных.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.