Версия для печати темы (https://pro1c.org.ua/index.php?s=0082072b4b4ae2ce0c2fd316a31bf76b&showtopic=64859)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Обмен с WEB-сайтом > OpenCart по протоколу https://
Автор: Vofka 24.02.21, 11:26
Espresso.Doktor, надо посмотреть где в коде 1С выполняется HttpСоединение. Когда конструируется этот объект, одним из его параметров можно задать использовать ли SSL подключение. Могу предположить, что он сейчас не задан и надо задать.
Автор: andr_andrey 24.02.21, 11:55
Espresso.Doktor @ Вчера, 22:30
,
Поставьте Fiddler и посмотрите ответ Битрикс-сервера.
Автор: logist 24.02.21, 15:50
Двухэтапная аутентификация в битриксе включена? Если да, то вы создали пароль приложения и вводите его?
Автор: Espresso.Doktor 25.02.21, 0:00
logist @ Вчера, 16:50
,
Цитата(logist @ 24.02.21, 16:50)
Двухэтапная аутентификация в битриксе включена? Если да, то вы создали пароль приложения и вводите его?
Обмен с сайтом на CMS OpenCart
Цитата(andr_andrey @ 24.02.21, 12:55)
Поставьте Fiddler и посмотрите ответ Битрикс-сервера.
Благодарю, попробую.
Автор: logist 25.02.21, 0:15
Цитата(Espresso.Doktor @ 25.02.21, 0:00)
Обмен с сайтом на CMS OpenCart
сори, не заметил, увидел битрикс и по привычке...
Автор: Espresso.Doktor 25.02.21, 16:12
На форуме 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_УспешноеЗавершениеИмпорта, ЗаголовкиЗапросов, ИнформацияДляПользователя);
Если Не ПустаяСтрока(ИнформацияДляПользователя) Тогда
СообщитьПользователю(ИнформацияДляПользователя, Ложь);
КонецЕсли;
Возврат Успешно;
КонецФункции
Автор: logist 25.02.21, 20:05
Цитата(Espresso.Doktor @ 25.02.21, 16:12)
как проверить или у меня обновлялся модуль Обмена с Сайтом в 1С-ке ?
Если обновляете его - то обновляется, или он входит в состав конфигурации которая обновляется.
Если вы про версию платформы, о которой в том ответе, то к обработке это не имеет отношения, эту информацию можно проверить в "О программе" в 1С.
Цитата(Espresso.Doktor @ 25.02.21, 16:12)
Запрос из 1С-ки выглядит у меня так:
Из него не понятно, есть ли поддержка https. Надо смотреть ПроцедурыОбменаССайтом.HTTPВыполнитьАвторизациюДляСоединения
Автор: Espresso.Doktor 25.02.21, 20:46
logist @ Сегодня, 21:05
,
Цитата(logist @ 25.02.21, 21:05)
Если обновляете его - то обновляется, или он входит в состав конфигурации которая обновляется.
Если вы про версию платформы, о которой в том ответе, то к обработке это не имеет отношения, эту информацию можно проверить в "О программе" в 1С.
В далеком 2014 году или 2015 году, уже и не помню точно. Был сделан допил для выгрузки на сайт в родном модуле Обмена с сайтом.
Потом были обновления, которые делали "специалисты" из местной фирмы, они затерли этот допил в модуле обмена с сайтом и не только.
После этого пришлось откатиться из бекапа и начинать самостоятельно учиться обновлять 1С-ку, были танцы с бубном но научился обновляться без вреда для допилок!
По этому могу допустить мысли, что модуль обмена не обновлялся или обновлялся не полностью.
Цитата(logist @ 25.02.21, 21:05)
Из него не понятно, есть ли поддержка https. Надо смотреть ПроцедурыОбменаССайтом.HTTPВыполнитьАвторизациюДляСоединения
Вот код из моей конфигурации:
Функция HTTPВыполнитьАвторизациюДляСоединения(Соединение, СтруктураПараметровСайта Функция HTTPВыполнитьАвторизациюДляСоединения(Соединение, СтруктураПараметровСайта
ОтветСервера, СтрокаСообщенияПользователю, ТипСоединения = "catalog") Экспорт
Успешно = Истина;
#Если Клиент Тогда
Состояние(НСтр("ru='Установка соединения с сервером...';uk=""Встановлення з'єднання з сервером..."""));
#КонецЕсли
Соединение = ПроцедурыОбменаССайтом.HTTPУстановитьСоединение(СтруктураПараметровСайта);
Если Соединение = Неопределено Тогда
СтрокаСообщенияПользователю = НСтр("ru='Не удалось установить соединение с сервером.';uk=""Не вдалося встановити з'єднання з сервером.""");
Возврат Ложь;
КонецЕсли;
#Если Клиент Тогда
Состояние(НСтр("ru='Проверка имени пользователя и пароля...';uk='Перевірка імені користувача і пароля...'"));
#КонецЕсли
ОтветСервера = HTTPПолучитьДанныеССервера(Соединение, СтруктураПараметровСайта.АдресСкрипта + "?type=" + ТипСоединения + "&mode=checkauth");
Если ОтветСервера = Неопределено Тогда
СтрокаСообщенияПользователю = НСтр("ru='Не удалось установить соединение с сервером. Авторизация пользователя не выполнена.';uk=""Не вдалося встановити з'єднання з сервером. Авторизація користувача не виконана.""") + Символы.ПС + ОписаниеОшибки();
Возврат Ложь;
КонецЕсли;
Если НРег(СтрПолучитьСтроку(ОтветСервера,1)) <> "success" Тогда
СтрокаСообщенияПользователю = НСтр("ru='Не удалось установить соединение с сервером. Проверьте имя пользователя и пароль.';uk=""Не вдалося встановити з'єднання з сервером. Перевірте ім'я користувача і пароль.""") + Символы.ПС + ОписаниеОшибки();
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
Функция HTTPУстановитьСоединение(СтруктураПараметровСайта) Экспорт
Соединение = НеОпределено;
ИнтернетПрокси = НеОпределено;
Если СтруктураПараметровСайта.ПроксиИспользование Тогда
ИнтернетПрокси = Новый ИнтернетПрокси;
Если СтруктураПараметровСайта.ПроксиПорт = 0 Тогда
ИнтернетПрокси.Установить("HTTP", СтруктураПараметровСайта.ПроксиСервер);
Иначе
ИнтернетПрокси.Установить("HTTP", СтруктураПараметровСайта.ПроксиСервер, СтруктураПараметровСайта.ПроксиПорт);
КонецЕсли;
ИнтернетПрокси.Пользователь = СтруктураПараметровСайта.ПроксиИмяПользователя;
ИнтернетПрокси.Пароль = СтруктураПараметровСайта.ПроксиПароль;
КонецЕсли;
Порт = ?(ЗначениеЗаполнено(СтруктураПараметровСайта.Порт), СтруктураПараметровСайта.Порт, 80);
Попытка
Соединение = Новый HTTPСоединение(СтруктураПараметровСайта.Сервер, Порт, СтруктураПараметровСайта.ИмяПользователя, СтруктураПараметровСайта.Пароль, ИнтернетПрокси);
Исключение
ОбщегоНазначения.СообщитьОбОшибке(НСтр("ru='Не удалось установить соединение с сервером ';uk=""Не вдалося встановити з'єднання з сервером """) + СтруктураПараметровСайта.Сервер + ":" + Строка(СтруктураПараметровСайта.Порт) + НСтр("ru='."
"Проверьте правильность адреса сервера, порт, имя пользователя и пароль.';uk=""."
"Перевірте правильність адреси сервера, порт, ім'я користувача та пароль."""));
Соединение = Неопределено;
Конецпопытки;
Возврат Соединение;
КонецФункции
Автор: logist 25.02.21, 22:21
Цитата(Espresso.Doktor @ 25.02.21, 20:46)
Вот код из моей конфигурации:
Там нет использования https, надо чуть допиливать.
Автор: Vofka 26.02.21, 7:48
Цитата(Espresso.Doktor @ 25.02.21, 16:12)
На форуме OpenCart прочитал сегодня интересную фразу:
Я вам про это в самом начале написал
Vofka @ 24.02.21, 11:26
Автор: Espresso.Doktor 28.02.21, 4:31
logist @ 25.02.21, 23:21
,
Много надобно пилить?
Ибо я пробовал допиливать, то что на форумах пишут, что не сильно помогло, видимо напильник плохой был
Цитата(Vofka @ 26.02.21, 8:48)
Я вам про это в самом начале написал Vofka @ 24.02.21, 11:26
Мы же не ищем легкий путей
Пробовал на 1С-ке УТП для Украины, которая автоматический обновляется и регулярно, модуль визуально один в один такой как у меня.
Но чуда с обновленной 1С-кой тоже не случилось, видимо так сказать родной модуль обмена Битрикс уже давно не обновляют
Автор: DartRomanius 28.02.21, 6:44
https://pro1c.org.ua/redirect.php?https://1c.bitrix.ua/ecommerce/download.php?section=62067
Совместимость УТП поднять до 8,3,6
Штатный модуль в УТП не обновлялся давно уже.
Автор: logist 28.02.21, 16:35
Цитата(Espresso.Doktor @ 28.02.21, 4:31)
Много надобно пилить?
По идее не много, может пару строк.
Автор: Espresso.Doktor 28.02.21, 22:17
Цитата(DartRomanius @ 28.02.21, 6:44)
ТЫЦ
Совместимость УТП поднять до 8,3,6
Штатный модуль в УТП не обновлялся давно уже.
Благодарю, я уже пробовал установить свежую версию модуля, но он так и не взлетел у меня
Почитал чуток про обновление, и понял что нужно обновлять с первой версии, до самой свежей.
Сейчас стоит задача наладить обмен между 1С & OpenCart по протоколу https://
Автор: Espresso.Doktor 01.03.21, 2:17
Цитата(logist @ 28.02.21, 16:35)
По идее не много, может пару строк.
Функция HTTPУстановитьСоединение(СтруктураПараметровСайта) ЭкспортСоединение = Неопределено;
ssl = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(), Новый СертификатыУдостоверяющихЦентровWindows()); //as_не типовое для работы по https
Попытка
Соединение = Новый HTTPСоединение(
ПараметрыПодключения.Сервер,
ПараметрыПодключения.Порт,
ПараметрыПодключения.Пользователь,
ПараметрыПодключения.Пароль,
ПараметрыПодключения.Прокси,
,
?(ПараметрыПодключения.ЗащищенноеСоединение, ssl, Неопределено)
);
А у меня чуток другой код, так сказать переписанный в Украине:
Функция HTTPУстановитьСоединение(СтруктураПараметровСайта) ЭкспортФункция HTTPУстановитьСоединение(СтруктураПараметровСайта) Экспорт
Соединение = НеОпределено;
ИнтернетПрокси = НеОпределено;
Если СтруктураПараметровСайта.ПроксиИспользование Тогда
ИнтернетПрокси = Новый ИнтернетПрокси;
Если СтруктураПараметровСайта.ПроксиПорт = 0 Тогда
ИнтернетПрокси.Установить("HTTP", СтруктураПараметровСайта.ПроксиСервер);
Иначе
ИнтернетПрокси.Установить("HTTP", СтруктураПараметровСайта.ПроксиСервер, СтруктураПараметровСайта.ПроксиПорт);
КонецЕсли;
ИнтернетПрокси.Пользователь = СтруктураПараметровСайта.ПроксиИмяПользователя;
ИнтернетПрокси.Пароль = СтруктураПараметровСайта.ПроксиПароль;
КонецЕсли;
Порт = ?(ЗначениеЗаполнено(СтруктураПараметровСайта.Порт), СтруктураПараметровСайта.Порт, 80);
Попытка
Соединение = Новый HTTPСоединение(СтруктураПараметровСайта.Сервер, Порт, СтруктураПараметровСайта.ИмяПользователя, СтруктураПараметровСайта.Пароль, ИнтернетПрокси);
Исключение
ОбщегоНазначения.СообщитьОбОшибке(НСтр("ru='Не удалось установить соединение с сервером ';uk=""Не вдалося встановити з'єднання з сервером """) + СтруктураПараметровСайта.Сервер + ":" + Строка(СтруктураПараметровСайта.Порт) + НСтр("ru='."
"Проверьте правильность адреса сервера, порт, имя пользователя и пароль.';uk=""."
"Перевірте правильність адреси сервера, порт, ім'я користувача та пароль."""));
Соединение = Неопределено;
Конецпопытки;
Возврат Соединение;
КонецФункции
Автор: logist 01.03.21, 2:46
Цитата(Espresso.Doktor @ 01.03.21, 2:17)
А у меня чуток другой код
хотел было подсказать, что поправить, но по тому что вы показываете невозможно подсказать как правильно сделать, не понятно как и где формируется СтруктураПараметровСайта, вероятно всё это расположено по нескольким процедурам, и скорее всего в старых механизмах одной функции может не хватать. Покажите всю конфигурацию специалисту, если там дело проблема только в ssl - за бочонок пива думаю поправит кто угодно)
Автор: Espresso.Doktor 01.03.21, 4:33
Цитата(logist @ 01.03.21, 2:46)
хотел было подсказать, что поправить, но по тому что вы показываете невозможно подсказать как правильно сделать, не понятно как и где формируется СтруктураПараметровСайта, вероятно всё это расположено по нескольким процедурам, и скорее всего в старых механизмах одной функции может не хватать. Покажите всю конфигурацию специалисту, если там дело проблема только в ssl - за бочонок пива думаю поправит кто угодно)
Уже допился, буду восстанавливать из бекапа, ибо конфигурация не сохраняется
Автор: renton82 02.08.23, 8:22
Есть у кого-то готовое решение этой проблемы?
p.s. Через http из УТП соединяется, но через HTTPS нет...
Автор: Vofka 02.08.23, 10:04
renton82, та это не проблема, просто что-то не так делаете. Создайте новую тему, дайте какой-то пример кода (что вы делаете) и ошибку (или что не получается). Потому что сложно угадывать что не так у вас.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua