Чудесатые чудеса с выгрузкой заказов между 1С и Bitrix

Началось всё с того, что после настройки обмена мeжду Bitrix и 1С, заказы в 1С не прилетали. Посмотрел логи, подебажил код обмена и , увидел чудную ошибку «Transferred a partial file» при попытке получить файл заказов. Что при файловом варианте, что при серверном. Причем из браузера (по этой методике), файл открывался и корректно формировался. Просмотр логов сервера apache, добавил еще одну ошибку:

Гуглинг объяснил, что это возможно ошибка в настройках ngnix. Совместно с хостером, попытались пару настроек изменить, после чего хостер сказал «ничё не знаю, у нас всё нормально». Доступа к настройкам сервера к сожалению нет — только через хостера.

Чего делать? Ну для начала решил попробовать файл формировать самостоятельно, и подпихивать его как то уже готовым в 1С. Наваял скрипт вида:

Единственной задачей которого было выплюнуть уже готовый файл.

В 1С попробовал:

И получил ровно ту-же ошибку в 1С: Transferred a partial file. Шта??? Круг подозреваемых сузился. Стал винить во всем реализацию HTTPСоединение в 1С. А что если попробовать изобрести свою замену? Родил врезку в модуль обмена с сайтом:

Работает.. Заказы в 1С появились..

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

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

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

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 и добавить туда строчку

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

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

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

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

Жизнь замечательных грибов