Имя: Пароль:
1C
1С v8
Печатные формы на нескольких языках
0 zavyzka
 
22.01.14
11:16
Есть необходимость выводить в собственной конфигурации некоторые печатные формы на двух языках (руский и английский). Т. е. теоретически свойства макетов "Текст" нужно хранить на разных языках, а так же некторотые реквизиты объектов (номенклатура и т. д.). Может быть кто-нибудь подскажет правильную реализацию?
1 Широкий
 
22.01.14
11:17
сделай уже два макета и не ломай мозг
2 zavyzka
 
22.01.14
11:20
(1) А если наименование номенклатуры нужно хранить на русском, английском и китайском, то заводить 3 реквизита?
3 jsmith82
 
22.01.14
11:23
ru%камень%en%stone%
4 jsmith82
 
22.01.14
11:25
хотя.. придётся всю конфу парсить
5 zavyzka
 
22.01.14
11:25
(3) поподробней можно? Это пользователь в поле наименование должен так писать? Или может есть какая-то красивая реализация?
6 jsmith82
 
22.01.14
11:27
(5) это так при записи сохранится
а как вводить - это уже другой вопрос
можно сделать реквизит формы, и при чтении вытаскивать из ru%камень%en%stone%, а при записи писать в ru%камень%en%stone%
7 jsmith82
 
22.01.14
11:27
но вообще если конфа своя, проще сделать три реквизита и в коде будет проще парсить
8 Широкий
 
22.01.14
11:28
(1) Наименования для печати можно писать в одном поле но в спец.формате, чтобы можно было распарсить.
Либо да - два/три поля
9 Aleksey T
 
22.01.14
11:30
Была такая необходимость - для реализации за бугор сертификаты лабораторий делать на английском, делал такую мульку - подключал ком-объект и через API Google Translate преводил. Вроде ничего переводил все нормально, заказчик доволен был) а если иначе - в свойства номенклатуры запихать название на другом языке, а потом тянуть из "значения свойства объектов"
10 zavyzka
 
22.01.14
11:32
(9) Я вот тоже думаю со свойствами заморочится.
11 viktor_vv
 
22.01.14
11:37
Для этого "свойства макетов "Текст" нужно хранить на разных языках" кури локализацию. Добавляешь еще один язык в конфу, у свойства Текст макета появится лупа. Для вывода

    Макет = ПолучитьМакет("Накладная");

    // печать производится на языке, указанном в настройках пользователя
    КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "РежимФормированияПечатныхФорм"));
    Макет.КодЯзыкаМакета = КодЯзыкаПечать;
12 viktor_vv
 
22.01.14
11:39
Качни какую-нибудь украинскую конфу, посмотри пример реализация.
Для динамических значение текста что-то типа

ОбластьМакета.Параметры.Цена  = НСтр("ru='Цена';uk='Ціна'",КодЯзыкаПечать) + Суффикс;

С реквизитами сложнее.
13 zavyzka
 
22.01.14
11:47
(11) свойство КодЯзыкаМакета - интересное. Буду пробовать.
14 viktor_vv
 
22.01.14
12:00
(13) Только язык не забудь добавить в конфу.
15 Hawk_1c
 
22.01.14
12:20
Еще пример в Консолидации есть (0). И это.. 8.3 глянь....
16 zavyzka
 
22.01.14
12:27
(15) у меня конфа и есть на 8.3-Такси. А что там в этом плане изменилось?
17 EugeniaK
 
22.01.14
12:35
(0) Делали просто для 3х языков (рус,укр,англ) 3мя макетами и в зависмости от языка брали нужный.
ИМХО, это более наглядно. Проще макет корректировать, чем один на 3х языках.
По англ. и укр. наименованиям - добавили свойства номенклатуры. Можно было реквизиты, но не хотелось форму номенклатуры трогать.