Использование справочника "Значения свойств объектов" для хранения информации на нескольких языках

01.12.17

Разработка - Локализация решений

Хранение дополнительной информации об объекте с помощью справочника "Значения свойств объектов" с последующей целью дальнейшего использования для печати на различных языках.

Скачать исходный код

Наименование Файл Версия Размер
Шаблон внешней печатной формы
.epf 19,77Kb
2
.epf 19,77Kb 2 Скачать

Однажды мне нужно было сделать несколько печатных форм на различных языках. Задача вроде нетривиальная: просто нарисовать несколько макетов на различных языках, и все.

Но не тут-то было...

Мне потребовалось перевести на разные языки элементы справочника контрагенты, номенклатуры и другие. То есть основные реквизиты документов, которые использовались у меня в печатных формах.

Встал вопрос: "Где хранить всю эту информацию?"

Мне не хотелось плодить в конфигурации ненужных регистров, и решение, которое я придумал, не требовало внесения дополнительных изменений в саму конфигурацию. Вы уже, наверное, поняли из заголовка статьи, какой справочник я использовал, чтобы хранить данную информацию. 

Вся информация в базе введена на украинском языке. Поэтому в моем случае мне нужно было два языка: английский и русский для перевода элементов справочников на различные языки.

И так начнем:

  • Для начала я создал с помощью обработки "Значения свойств объекта" несколько свойств для нужных справочников. Свойства назвал соответственно "Наименование ENG", "Наименование RU".

           

           

  •  На этом этапе нам нужно открыть справочник "Номенклатура" или другой в зависимости от того, для какого справочника мы создавали дополнительное свойство, и после в самом справочнике перейти на вкладку  "Свойства", где мы увидим созданное нами новое свойство

           

  • Дальше нужно указать значение для свойства справочника номенклатуры "Наименование ENG".

           

  • Следующим шагом для нужного документа создаю внешнюю печатную форму, в которой добавляю соответствующие макеты на разных языках, чтобы не путаться. Практика показала, что так удобнее. Где в модуле объекта пишу примерно такой код:

//?(ЯзыкПечати = "Русский", ПолучитьСвойствоСправочника(Элемент, "Наименование RU"),  Элемент);
//?(ЯзыкПечати = "Английский", ПолучитьСвойствоСправочника(Элемент, "Наименование EN"),  Элемент);

// Процедура осуществляет печать документа. 
//
// Параметры:
//  НазваниеМакета - строка, название макета.
//
Функция Печать() Экспорт
	
	Если Не СсылкаНаОбъект.Проведен Тогда
		Предупреждение("Документ можно распечатать только после его проведения!");
		Возврат Неопределено;
	КонецЕсли;
	
	//Открываем форму диалога, с настройками печати
	Форма            = ПолучитьФорму("НастройкиПечати");
	форма.Дата       = ТекущаяДата();
	Форма.Сертификат = Истина;
	
	Выбор = Форма.ОткрытьМодально();
	Если Выбор <> КодВозвратаДиалога.ОК Тогда
		Возврат Неопределено;
	КонецЕсли;
		
	// Получить экземпляр документа на печать
	ТабДокумент = ПечатьИнвойс();
	
	Возврат ТабДокумент;
			
КонецФункции // Печать

// Функция формирует табличный документ с печатной формой накладной,
// разработанной методистами
//
// Возвращаемое значение:
//  Табличный документ - печатная форма накладной
//
Функция ПечатьИнвойс() Экспорт

	Если ЯзыкПечати = "Русский"    Тогда
		
		КодЯзыкаПечать = "ru";
        
        //Заполняю макеты
		
	ИначеЕсли   ЯзыкПечати = "Английский" Тогда
		
		КодЯзыкаПечать = "en_US";
        
        //Заполняю макеты

	КонецЕсли; 
		
	ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СчетНаОплатуПокупателю_Инвойс";
	
	Возврат ТабДокумент;	
		
КонецФункции

 
  • Также создаю дополнительную форму, которая будет  вызываться перед самой печатью, где нужно указать действия, которые нужно выполнить перед печатью. Выбрать язык макета и т.д

         

  • В модуле формы пишу такой код
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)	
	ЭлементыФормы.ЯзыкПечати.СписокВыбора.Очистить();
	ЭлементыФормы.ЯзыкПечати.СписокВыбора.Добавить("Русский");
	ЭлементыФормы.ЯзыкПечати.СписокВыбора.Добавить("Английский");	
КонецПроцедуры

Процедура ПриОткрытии()
	ЭлементыФормы.ЯзыкПечати.Значение = ЭлементыФормы.ЯзыкПечати.СписокВыбора[0].значение;
КонецПроцедуры

Процедура КнопкаОКНажатие(Кнопка)	
		ПолучитьАдрес(СсылкаНаОбъект.Организация, "Адрес RU");
	ЭтаФорма.Закрыть(КодВозвратаДиалога.ОК );
КонецПроцедуры
  • Соответственно и все, сохраняю печатную форму и прикрепляю ее к нужному документу

Тестировал на конфигурации Управление торговым предприятием для Украины", редакция 1.2. (1.2.43.1)

Печать Печатная форма хранения информации на нескольких языках Управление торговым предприятием для Украины" редакция 1.2. (1.2.43.1)

См. также

Склонение слов на казахском языке

Локализация решений Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Казахстан Абонемент ($m)

Данная обработка содержит функцию получения всех 7 падежей слова.

1 стартмани

11.05.2023    1746    1    VladimirB    0    

5

Перевод исходного текста

Инструментарий разработчика Локализация решений Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Перевод исходного текста форм конфигураций 1С.

1 стартмани

11.04.2023    2278    4    v3132    0    

5

Реализация перевода текста средствами Azure

WEB-интеграция Локализация решений Платформа 1С v8.3 Россия Бесплатно (free)

На днях взялся за реализацию печатной формы, где данные должны быть представлены на иностранном языке. На удивление нашёл крайне мало информации по данному вопросу. Поэтому решил написать эту статью.

19.11.2021    1087    user1559835    2    

5

Нюансы создания конфигураций на нескольких языках

Локализация решений Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим на примере ERP WE различные нюансы при реализации решений на нескольких языках.

25.07.2020    2888    Flashill    4    

9

Перевод кода и метаданных конфигурации на английский язык: часть 2

EDT Локализация решений Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Практический пример подготовки словаря для перевода кода и модели конфигурации УНФ 1.6 на английский язык с использованием существующих словарей и плагина EDT Language Tool. В статье приводятся готовые скрипты и алгоритмы сборки и нормализации словаря.

1 стартмани

05.04.2020    5176    vanjushkin    0    

14

Перевод кода и метаданных конфигурации на английский язык с помощью плагина EDT: Language Tool

EDT Локализация решений Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Использование регулярных выражений для парсинга .mdo-файлов и составления русско-английского словаря метаданных. Перевод кода и метаданных конфигурации по словарю с помощью нового инструмента 1С - плагина EDT: Language Tool на примере УНФ 1.6

1 стартмани

03.04.2020    5743    vanjushkin    10    

14

Транслитерация украинского алфавита

Локализация решений Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для транслитерации украинских текстов на латиницу. ВАЖНО - для транслитерации русского алфавита не подходит!

1 стартмани

23.03.2020    4254    3    kaliuzhnyi    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Alex_CheST 2 10.07.18 07:38 Сейчас в теме
Спасибо за интересную публикацию. Решал такую же задачу. В принципе все то же самое делал. Только вместо нескольких макетов сделал просто перевод на английский областей нужных и все.
Оставьте свое сообщение