На форуме OpenCart прочитал сегодня интересную фразу:
Появился вопрос, как проверить или у меня обновлялся модуль Обмена с Сайтом в 1С-ке ?
Запрос из 1С-ки выглядит у меня так:
Перем ПрефиксУзлаCML;
Перем НачалоЭлементаCML;
Перем КонецЭлементаCML;
Перем ПрефиксАтрибутаCML;
Перем ПодкаталогКартинок;
Перем ПодкаталогБезопасностиКаталогаВыгрузки;
Перем ПараметрЗапросаHTTP_Инициализация;
Перем ПараметрЗапросаHTTP_ПередачаФайла;
Перем ПараметрЗапросаHTTP_ИмпортФайлаСервером;
Перем ПараметрЗапросаHTTP_ПолучитьДанные;
Перем ПараметрЗапросаHTTP_УспешноеЗавершениеИмпорта;
Перем ОтветСервера_ZIPРазрешен;
Перем ОтветСервера_ОграничениеРазмераФрагментаФайлаОбмена;
Перем ОтветСервера_УспешноеЗавершениеТекущейОперации;
Перем ОтветСервера_АварийноеЗавершениеТекущейОперации;
Перем ОтветСервера_ВыполнениеТекущейОперации;
Перем ПустаяХарактеристикаСсылка;
Перем НаименованиеНалога;
Перем НаименованиеКаталогаТоваровCML;
Перем НаименованиеПакетаПредложенийCML;
Перем БулевоЗначениеCML_Истина;
Перем БулевоЗначениеCML_Да;
Перем ТипНоменклатурыCML_Услуга;
Перем ТипНоменклатурыCML_Товар;
Перем ЗначениеCML_ТипНоменклатуры;
Перем мСоответствиеНаименованийКатегорийДокумента;
Перем мСтруктураИнформацииИсторииОбмена;
Перем мВидНоменклатурыУслуга;
Перем мВидНоменклатурыТовар;
Перем мКоэффициентПересчетаВесаТоваровВГраммыДляОбменаССайтом;
Перем мМассивЗагруженныхДокументов;
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ОБМЕНА HTTP
Функция HTTPЗагрузитьССервера(СтруктураПараметровСайта, ТипСоединения, КоличествоОбработанныхДокументов)
Успешно = Истина;
ОтветСервера = "";
Соединение = Неопределено;
КоличествоОбработанныхДокументов = 0;
АдресДляРаботы = СтруктураПараметровСайта.АдресСкрипта + "?type=" + ТипСоединения;
СтрокаСообщенияПользователю = "";
Успешно = ПроцедурыОбменаССайтом.HTTPВыполнитьАвторизациюДляСоединения(Соединение, СтруктураПараметровСайта, ОтветСервера, СтрокаСообщенияПользователю, ТипСоединения);
Если Не ПустаяСтрока(СтрокаСообщенияПользователю) Тогда
СообщитьОбОшибкеОбмена(СтрокаСообщенияПользователю, Ложь);
КонецЕсли;
Если Не Успешно Тогда
Возврат Ложь;
КонецЕсли;
КукиИмя = СтрПолучитьСтроку(ОтветСервера,2);
КукиЗначение = СтрПолучитьСтроку(ОтветСервера,3);
ЗаголовкиЗапросов = "Cookie: " + КукиИмя + "=" + КукиЗначение;
ОтобразитьСостояние("Загрузка данных с сервера...");
ИнформацияДляПользователя = "";
ОтветСервера = ПроцедурыОбменаССайтом.HTTPПолучитьДанныеССервера(Соединение, АдресДляРаботы + ПараметрЗапросаHTTP_ПолучитьДанные, ЗаголовкиЗапросов, ИнформацияДляПользователя);
Если Не ПустаяСтрока(ИнформацияДляПользователя) Тогда
СообщитьПользователю(ИнформацияДляПользователя, Ложь);
КонецЕсли;
Если ОтветСервера = Неопределено Тогда
СообщитьОбОшибкеОбмена("Не удалось загрузить данные с сервера.", Ложь);
Возврат Ложь;
КонецЕсли;
СтрокаCML = "";
Если Лев(ОтветСервера, 2) = "PK" Тогда
СтрокаCML = РаспаковатьZIPАрхив(ОтветСервера);
Иначе
Если Лев(ОтветСервера, 5) = "<?xml" Тогда
СтрокаCML = ОтветСервера;
КонецЕсли;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(СтрокаCML) Тогда
СообщитьОбОшибкеОбмена("Не удалось прочитать данные, загруженные с сервера.", Ложь);
Возврат Ложь;
КонецЕсли;
ДеревоДокументов = РазобратьCML(СтрокаCML);
Если ДеревоДокументов = Неопределено Тогда
СообщитьОбОшибкеОбмена("Не удалось разобрать данные, загруженные с сервера.", Ложь);
Возврат Ложь;
КонецЕсли;
Успешно = ОбработатьДокументы(ДеревоДокументов, КоличествоОбработанныхДокументов);
Если НЕ Успешно Тогда
СообщитьОбОшибкеОбмена("Не удалось обработать документы, загруженные с сервера.", Ложь);
Возврат Ложь;
КонецЕсли;
ИнформацияДляПользователя = "";
ПроцедурыОбменаССайтом.HTTPПолучитьДанныеССервера(Соединение, АдресДляРаботы + ПараметрЗапросаHTTP_УспешноеЗавершениеИмпорта, ЗаголовкиЗапросов, ИнформацияДляПользователя);
Если Не ПустаяСтрока(ИнформацияДляПользователя) Тогда
СообщитьПользователю(ИнформацияДляПользователя, Ложь);
КонецЕсли;
Возврат Успешно;
КонецФункции