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