Импортируемые товары торговых площадок / Форма записи / Модуль формы

файл

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.УправлениеДоступом

КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 
	
	ВидМаркетплейса = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Запись.УчетнаяЗапись, "ВидМаркетплейса");
	ИдентификаторТоварногоПредложения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Запись.НоменклатураПартнера, "Идентификатор");
	ЗаполнитьИдентификатор();	
	ЗаполнитьДеревоСвойствТовара();  
	УстановитьУсловноеОформление();
	УстановитьВидимостьЭлементов();
	
КонецПроцедуры 

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

	// СтандартныеПодсистемы.УправлениеДоступом
	Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
		МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
		МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
	КонецЕсли;
	// Конец СтандартныеПодсистемы.УправлениеДоступом

КонецПроцедуры

#КонецОбласти    

#Область ОбработчикиКомандФормы 

&НаКлиенте
Процедура ЗаписатьИзменения(Команда)
	
	ЗаписатьИзмененияНаСервере();
	Оповестить("ЯндексМаркет_ИмпортТоварногоКаталога_Запись", Запись.УчетнаяЗапись);  
	Закрыть();
	
КонецПроцедуры

&НаКлиенте
Процедура ПоказатьПодсказку(Команда)

	Элементы.ГруппаПодсказка.Видимость = Истина;
		
КонецПроцедуры

&НаКлиенте
Процедура СкрытьПодсказку(Команда)
	
	Элементы.ГруппаПодсказка.Видимость = Ложь;	
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьНоменклатуруПартнера(Команда)
	
	ПараметрыФормы = Новый Структура("Ключ", Запись.НоменклатураПартнера);
	ОткрытьФорму("Справочник.НоменклатураКонтрагентов.Форма.ФормаЭлемента", ПараметрыФормы);

КонецПроцедуры
#КонецОбласти    

#Область СлужебныеПроцедурыИФункции 

&НаСервере
Процедура ЗаполнитьИдентификатор()  

	Элементы.ДекорацияИдентификаторТовара.Заголовок = СтрЗаменить(Элементы.ДекорацияИдентификаторТовара.Заголовок,"ИдентификаторТовара", ИдентификаторТоварногоПредложения);

КонецПроцедуры 

&НаСервере
Процедура УстановитьУсловноеОформление()
	
	УсловноеОформление.Элементы.Очистить();
	
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
	
	ПолеЭлемента      = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СравнениеСвойствДанныеУчетнойСистемы.Имя);
	ПолеЭлемента      = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СравнениеСвойствДанныеТорговойПлощадки.Имя);
	
	ОтборЭлемента                = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("ДеревоСравнениеСвойств.ДанныеУчетнойСистемы");
	ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ДеревоСравнениеСвойств.ДанныеТорговойПлощадки");
	ОтборЭлемента.ВидСравнения   = ВидСравненияКомпоновкиДанных.НеРавно;   
	
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ИзмененноеЗначениеРеквизитаЦвет);
	
КонецПроцедуры

&НаСервере
Процедура УстановитьВидимостьЭлементов()
	
	Номенклатура = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Запись.НоменклатураПартнера, "Номенклатура");
	Элементы.ЗаписатьИзменения.Видимость = ЗначениеЗаполнено(Номенклатура);	
	
КонецПроцедуры

&НаСервере
Функция ПолучитьСвойстваТовара()   
	
	СоответствиеСвойствТовара = Новый Соответствие;     
	
	Если ВидМаркетплейса = Перечисления.ВидыМаркетплейсов.МаркетплейсЯндексМаркет Тогда  
		СоответствиеСвойствТовара = ИнтеграцияСЯндексМаркетСервер.ПолучитьСвойстваТовараДляСравнения();
	КонецЕсли;    
	
	Возврат СоответствиеСвойствТовара;
	
КонецФункции

&НаСервере
Функция ПолучитьДанныеУчетнойСистемы()  
	
	СоответствиеДанныхУчетнойСистемы = Новый Соответствие;     
	
	Если ВидМаркетплейса = Перечисления.ВидыМаркетплейсов.МаркетплейсЯндексМаркет Тогда  
		СоответствиеДанныхУчетнойСистемы = ИнтеграцияСЯндексМаркетСервер.ПолучитьДанныеУчетнойСистемыДляСравнения(Запись.УчетнаяЗапись, Запись.НоменклатураПартнера);
	КонецЕсли;    
	
	Возврат СоответствиеДанныхУчетнойСистемы;

КонецФункции

&НаСервере
Функция ПолучитьДанныеТорговойПлощадки()  
	
	СоответствиеСвойствТовара = Новый Соответствие;     
	
	Если ВидМаркетплейса = Перечисления.ВидыМаркетплейсов.МаркетплейсЯндексМаркет Тогда  
		СоответствиеСвойствТовара = ИнтеграцияСЯндексМаркетСервер.ПолучитьДанныеТорговойПлощадкиДляСравнения(Запись.УчетнаяЗапись, ИдентификаторТоварногоПредложения);
	КонецЕсли;    
	
	Возврат СоответствиеСвойствТовара;

КонецФункции

&НаСервере
Процедура ЗаполнитьДеревоСвойствТовара() 
	
	СоответствиеСвойствТовара = ПолучитьСвойстваТовара();
	СоответствиеДанныхУчетнойСистемы = ПолучитьДанныеУчетнойСистемы();
	СоответствиеДанныхТорговойПлощадки = ПолучитьДанныеТорговойПлощадки();	
	
	ДеревоСвойств = РеквизитФормыВЗначение("ДеревоСравнениеСвойств");
	Для Каждого КлючИЗначение Из СоответствиеСвойствТовара Цикл 
		СтрокаДерева = ДеревоСвойств.Строки.Добавить();
		СтрокаДерева.СвойствоТовара = КлючИЗначение.Значение;
		СтрокаДерева.ДанныеУчетнойСистемы = СоответствиеДанныхУчетнойСистемы[КлючИЗначение.Ключ];
		СтрокаДерева.ДанныеТорговойПлощадки = СоответствиеДанныхТорговойПлощадки[КлючИЗначение.Ключ]; 
	КонецЦикла;
	ЗначениеВРеквизитФормы(ДеревоСвойств, "ДеревоСравнениеСвойств"); 
	
КонецПроцедуры 

&НаСервере
Процедура ЗаписатьИзмененияНаСервере()
	
	ИмпортируемыеТовары = Новый ТаблицаЗначений;
	ИмпортируемыеТовары.Колонки.Добавить("УчетнаяЗапись",        Новый ОписаниеТипов("СправочникСсылка.УчетныеЗаписиМаркетплейсов"));
	ИмпортируемыеТовары.Колонки.Добавить("НоменклатураПартнера", Новый ОписаниеТипов("СправочникСсылка.НоменклатураКонтрагентов"));
	
	Если ЗначениеЗаполнено(Запись.НоменклатураПартнера) Тогда
		ЗаполнитьЗначенияСвойств(ИмпортируемыеТовары.Добавить(), Запись);
	КонецЕсли;

	РегистрыСведений.ИмпортируемыеТоварыТорговыхПлощадок.ЗаписатьЗагруженныеДанныеСТорговойПлощадки(
		ВидМаркетплейса, 
		ИмпортируемыеТовары);
	
	ЗаполнитьДеревоСвойствТовара(); 
	
КонецПроцедуры

#КонецОбласти

Связанные материалы