Ошибка Transferred a partial file при загрузке заказов с сайта bitrix

По неведомой причине, эта ошибка возникает при выполнении HTTPОтветСервера = Соединение.Получить(HTTPЗапрос);, однако! при следующем выполнении того-же самого запроса, всё чудесным образом проскакивает.

Решение: поправим чуть модуль ОбменССайтом

Функция ПолучитьДанныеССервера(Соединение, ОписаниеОшибки, ПараметрыЗапроса = "", Знач Заголовки = Неопределено)
	
	HTTPОтветСервера = Неопределено;
	ОтветСервера     = Неопределено;
	
	Если Заголовки = Неопределено Тогда
		Заголовки = Новый Соответствие;
	КонецЕсли;
	HTTPЗапрос = Новый HTTPЗапрос(СокрЛП(ПараметрыЗапроса), Заголовки);
	
	Попытка
		СчетчикПопыток = 1;
		Пока СчетчикПопыток<20 Цикл
			Попытка
			 	HTTPОтветСервера = Соединение.Получить(HTTPЗапрос);
				Прервать;
			Исключение
				СчетчикПопыток  = СчетчикПопыток+1;
			КонецПопытки;	
		конеццикла;
	Исключение

Bitrix: Как посмотреть содержимое файла заказа при обмене с 1С

Иногда в целях отладки полезно посмотреть формирует ли вообще файл выгрузки заказов битрикс. Это делается так:

  1. По ссылке сайт/bitrix/admin/1c_exchange.php?type=sale&mode=checkauth получаем sessid
  2. Далее открываем сайт/bitrix/admin/1c_exchange.php?type=sale&mode=query&sessid=точтовышеполучили

В итоге получим xml выведенный в браузер с заказом.

Как посмотреть файлы обмена битрикс и 1с

По умолчанию после обмена битрикс эти файлы подчищает. Однако если открыть файл dbconn.php и добавить туда строчку

define("BX_CATALOG_IMPORT_1C_PRESERVE", true);

То файлы будут сохраняться в папке /uploads/1c_catalogxxx

1СЖ:Ошибка импорта товара на сайт

Ошибка: Ошибка импорта метаданных.В редакции Малый Бизнес нет возможности иметь более одного типа цены. Настройте выгрузку из 1С или перейдите на другую редакцию БУС

Решение: необходимо переименовать наименование торгового соглашения на имя указанное в типах цен на сайте Битрикс.

PHP: получить публичный ключ удаленного сервера

Задача: получить публичный ключ https ресурса

Решение:

<?php
$opt = [
  "capture_peer_cert" => true,
    "capture_peer_cert_chain" => true
    ];
    $a = stream_context_create(["ssl"=>$opt]);
    $b = stream_socket_client("tls://xn--90acbu5aj5f.xn--p1ai:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $a);
    $cont = stream_context_get_params($b);
    $key = openssl_pkey_get_public($cont["options"]["ssl"]["peer_certificate"]);
    $c = openssl_pkey_get_details($key);
    var_dump($c["key"]);
1 85 86 87 88 89 310