Ошибка при обмене заказами через 1С
Актуально для версии 2.9
Проблема: При синхронизации через 1С, возникает ошибка на этапе обмена заказами.
Ошибка может быть выглядеть следующим образом:
Выгружено товаров: 10
Выгружено картинок: 9
Выгрузка товаров успешно завершена
Выгружено заказов: 7
Произошла ошибка на стороне сервера. Не получен статус завершения операции.
Файл не отправлен (C:\0a0fc4c7-cf54-4b0a-9ba0-0e42fe9ff291\1cbitrix-6ff19691-637c-dd0f-aad3-32a00be942c8.xml.1).
Обмен не выполнен
Ответ сервера:
Warning: XMLReader::read(): /sys-temp/1c_import/1cbitrix-6ff19691-637c-dd0f-aad3-32a00be942c8.xml:1965:
parser error : Extra content at the end of the document in /classes/system/subsystems/import/splitters/commerceML2Splitter.php
on line 187
Обмен заказами завершен с ошибками!!!
Дело в том, что 1с не сделали возможным пересылку файла с заказами по частям, а отдают его только 1 раз причем с учетом параметра, задающего максимальный размер принимаемого файла. Если передаваемый файл превышает размер указанный в параметре, то файл обрывается.
Для таких ситуаций мы предусмотрели настройку в config.ini
exchange.commerceML.maxFileSize = "102400"
По-умолчанию настройка выставлена в 102400 байт и если файл в папке sys-temp/1c_import будет иметь размер точно такой же, каков указан в настройке, то остается только эксперементальным путем подбирать значение параметра exchange.commerceML.maxFileSize, чтобы файл с заказами мог загрузится целиком.
По материалам отдела разработки.