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

01.12.17

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Шаблон внешней печатной формы
.epf 19,77Kb
2
2 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

И так начнем:

  • Для начала я создал с помощью обработки "Значения свойств объекта" несколько свойств для нужных справочников. Свойства назвал соответственно "Наименование 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 1С:ERP Управление предприятием 2 Бухгалтерский учет Бесплатно (free)

Дано: транснациональная корпорация – производитель продуктов питания; пилотный проект на две страны: Киргизия и Казахстан, с возможностью тиражирования не несколько других стран Центральной Азии; в каждой стране необходим регламентированный учёт на локальном плане счетов и учёт по стандартам GAAP; а бета-версия ERP World Edition выйдет только через год;) "Вызов принят!" – сказали мы и взялись за работу. Расскажем об особенностях доработки подсистемы регламентированного учёта 1С:ERP для возможности вести учет в одной конфигурации для разных стран.

20.08.2024    634    Laya    0    

6

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

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

1 стартмани

11.05.2023    2029    1    VladimirB    0    

6

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

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

19.11.2021    1206    user1559835    2    

6

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

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

25.07.2020    3422    Flashill    4    

13

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

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

1 стартмани

05.04.2020    5465    vanjushkin    0    

14

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

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

1 стартмани

03.04.2020    6265    vanjushkin    10    

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