eComm+

Модулі для BAS / 1С* - розроблено в Україні!

Инструменты пользователя

Инструменты сайта


designer_unf_multilanguage_patch

Исправление ошибки мультиязычности для BASSmallBusiness 1.6.13

Если у Вас релиз 1.6.13 конфигурации BASSmallBusiness и Вы хотите использовать мультиязычность при выгрузке прайса на сайт, то рекомендуется

  • Установить основной язык конфигурации «ru»
  • Для контент-менеджера, работающего с мультиязычными реквизитами установить язык интерфейса «русский»
  • Метод «ПередЗаписьюНаСервере» общего модуля «МультиязычностьСервер» привести к виду:

ПередЗаписьюНаСервере

//++ eComm+
	//Отбор.КодЯзыка =  Метаданные.ОсновнойЯзык.КодЯзыка;
	Отбор.КодЯзыка =  КодЯзыкаИнформационнойБазы();
	//--
	
	НайденныеСтроки = ТекущийОбъект.Представления.НайтиСтроки(Отбор);
	Если НайденныеСтроки.Количество() > 0 Тогда
		Для каждого ИмяРеквизита Из Реквизиты Цикл
			ТекущийОбъект[ИмяРеквизита] = НайденныеСтроки[0][ИмяРеквизита];
		КонецЦикла;
		ТекущийОбъект.Представления.Удалить(НайденныеСтроки[0]);
	КонецЕсли;
	
	ТекущийОбъект.Представления.Свернуть("КодЯзыка", СтрСоединить(Реквизиты, ","));
	
КонецПроцедуры

ПриЧтенииПредставленийНаСервере

Для каждого Реквизит Из ОбъектМетаданных.ТабличныеЧасти.Представления.Реквизиты Цикл
		
		Если СтрСравнить(Реквизит.Имя, "КодЯзыка") = 0 Тогда
			Продолжить;
		КонецЕсли;
		
		ИмяРеквизита = Реквизит.Имя;
		
		Отбор = Новый Структура();
		//++ eComm+
		//Отбор.Вставить("КодЯзыка", Метаданные.ОсновнойЯзык.КодЯзыка);
		Отбор.Вставить("КодЯзыка", КодЯзыкаИнформационнойБазы());
		//--
		НайденныеСтроки = Объект.Представления.НайтиСтроки(Отбор);
	
		Если НайденныеСтроки.Количество() > 0 Тогда
			Представление = НайденныеСтроки[0];
		Иначе
			Представление = Объект.Представления.Добавить();
			//++ eComm+
			//Представление.КодЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка;
			Представление.КодЯзыка = КодЯзыкаИнформационнойБазы();
			//--
		КонецЕсли;
		Представление[ИмяРеквизита] = Объект[ИмяРеквизита];
		
		Отбор = Новый Структура();
		Отбор.Вставить("КодЯзыка", ТекущийЯзык().КодЯзыка);
		НайденныеСтроки = Объект.Представления.НайтиСтроки(Отбор);
		
		Если НайденныеСтроки.Количество() > 0 И ЗначениеЗаполнено(НайденныеСтроки[0][ИмяРеквизита]) Тогда
			Объект[ИмяРеквизита] = НайденныеСтроки[0][ИмяРеквизита];
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры

https://prnt.sc/10p7mtw https://prnt.sc/10p7lsd

designer_unf_multilanguage_patch.txt · Последнее изменение: 2021/03/29 16:59 — webmaster