Обмен с сайтом / Выполнить полный обмен данными / Модуль команды

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

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

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

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

&НаКлиенте
Процедура ВыполнитьОбменОтмена(Ответ, ДопПараметры) Экспорт
	
	Если Ответ = КодВозвратаДиалога.Нет Тогда
		Возврат;
	КонецЕсли;
	
	УзелОбмена = ДопПараметры.УзелОбмена;
	
	СостояниеНачалоОбмена = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = '%1 начат обмен данными с сайтом'"),
			Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДЛФ=DT"));
			
	СостояниеУзелОбмена = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = 'по узлу обмена ""%1""...'"),
			УзелОбмена);
			
	Состояние(СостояниеНачалоОбмена,, СостояниеУзелОбмена);
	
	ПараметрыОбновленияСписков = Новый Структура;
	ПараметрыОбновленияСписков.Вставить("Обновить", Ложь);
	ПараметрыОбновленияСписков.Вставить("ИмяДокументаЗаказ", "");
	
	ОбменВыполненСервер(УзелОбмена, ПараметрыОбновленияСписков);
	
	Если ПараметрыОбновленияСписков.Обновить Тогда
		
		ОповеститьОбИзменении(Тип("ДокументСсылка." + ПараметрыОбновленияСписков.ИмяДокументаЗаказ));
		
	КонецЕсли;
	
	СостояниеОкончаниеОбмена = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = '%1 ""%2""'"),
			Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДЛФ=DT"),
			УзелОбмена);
			
	ПоказатьОповещениеПользователя(СостояниеОкончаниеОбмена,,
		НСтр("ru = 'Обмен с сайтом завершен'"),
		БиблиотекаКартинок.Информация32);
		
	Оповестить("ЗавершенСеансОбменаССайтом");
	
КонецПроцедуры

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

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

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