Типичные ошибки и проблемы

Урок 168 из 170
Автор: Ольга Пичужкина
Сложность урока:
4 уровень - сложно, требуется сосредоточиться, внимание деталям и точному следованию инструкции.
4 из 5
Дата изменения: 13.10.2021
Просмотров: 57006
Недоступно в лицензиях:
Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы (Marketplace > Обновление платформы).
Старт, Стандарт, Энтерпрайз

Пожалуйста, еще раз проверьте ваши настройки обмена по этому чек-листу. В нём перечислены наиболее часто встречающиеся проблемы, которые составляют 70% обращений в Техподдержку. Кейсы, не вошедшие в чек-лист, перечислены ниже.

  • Обмен заказами завершен с ошибками
  • Не меняется статус заказа при выгрузке из 1С
  • Изменения товаров не зарегистрированы. Выгрузка товаров не произведена.
  • Изменения на сайте не приходят в 1С.
  • Как выгрузить каталоги из 1С в разные типы инфоблоков?
  • Не удалось найти вид номенклатуры
  • Поле объекта не обнаружено
  • Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
  • Произошла ошибка на стороне сервера. Файл не отправлен
  • Не работает авторизация при обмене данными с 1С
  • При выгрузке каталога из 1С не ставит галочку "уменьшать количество при заказе"
  • Возможные причины медленного импорта из 1С
  • Если структура каталога в 1С отличается от каталога на сайте?
  • Ошибка импорта метаданных
  • Выгрузка картинок


  • Проблема. При попытке обмена заказов в выходит сообщение:

    Выгружено товаров: 1
    Выгружено картинок: 1
    Выгрузка товаров успешно завершена
    Не установлен реквизит "ГруппаДоступаККонтрагенту". Элемент не записан!
    Не установлен реквизит "РегионДоставки". Элемент не записан!
    Не установлен реквизит "Основная форма оплаты". Элемент не записан!
    {Обработка.ОбменССайтом(3468)}: Ошибка при вызове метода контекста (Записать): Операция не выполнена!
    Произошла ошибка: . По причине:

    Не удалось найти/создать контрагента.
    Не удалось обработать документы, загруженные с сервера.
    Обмен не выполнен.
    Не выгружен ни один заказ.
    Обмен заказами завершен с ошибками!!!

    Решение. Скорее всего, в используемой конфигурации предусмотрена обязательность заполнения указанных выше реквизитов для элемента справочника Контрагенты.



    Проблема. Не меняется статус заказа при выгрузке из

    В соответствие с логикой синхронизации и «1С-Битрикс: Управление сайтом», статус заказа меняется, если из передались дата оплаты либо дата отгрузки товара. Чтобы эти даты попали в XML-файл, который формируется и передаётся на сайт, нужно сформировать и провести нужные документы.

    • В 1С:УТ зарегистрировать оплату заказа можно путем ввода на основании заказа документов оплаты, таких как Платежное поручение входящее и Приходный кассовый ордер.
    • Отгрузка, как правило, регистрируется вводом на основании заказа документа Реализация товаров и услуг.
    • Если в регистре Расчеты с контрагентами остаток по заказу <= 0, заказ считается оплаченным.
    • Если в регистре Заказы покупателей остаток по заказу <= 0, заказ считается отгруженным. У конфигурации УПП принцип тот же.

    Статусы Статусы заказа - этапы, через которые проходит заказ во время обработки.
    Подробнее...
    , в которые будут переводиться заказы при получении дат оплаты и отгрузки, устанавливаются в настройках модуля интернет-магазина: параметры При получении оплаты переводить заказ в статус и При получении разрешения доставки переводить заказ в статус соответственно.



    Проблема. заполнена и настроена на обмен с «1С-Битрикс: Управление сайтом», который тоже настроен на интеграцию с .
    При нажатии на кнопку Выполнить обмен сразу появляется сообщение в : Изменения товаров не зарегистрированы. Выгрузка товаров не произведена.

    Решение. Возможные ошибки:

    • Обычно появляется из-за некорректной настройки выгрузки товаров на вкладке Выгрузка товаров. Стоит обратить внимание на то, что настраивается именно фильтр(!), а не выбираются поля для выгрузки. Если отмечается поле для фильтра, то значение этого поля в фильтре должно быть задано.
    • В 1С: Управление торговлей обратите внимание в справочнике Номенклатура на реквизит вид номенклатуры. Должен быть обязательно признак товар (наименование товар и тип номенклатуры товар).
    • Если обмен осуществляется в режиме выгрузки изменений, а этих изменений с момента последнего обмена не зафиксировано, то возникает указанная ошибка. Стоит обратить внимание на следующие моменты:
      • Если осуществляется полная выгрузка каталога на сайт, то настройка фильтра необязательна (нужно снять выделение со всех отмеченных полей на вкладке Выгрузка товаров).
      • Изменения товара никаким образом не относятся к сайту, т.е. удаление товаров на сайте или их редактирование не фиксируется в . При обмене выгружаются изменения товаров, произведённые именно в с момента последней выгрузки.


    Проблема. заполнена и настроена на обмен по расписанию с «1С-Битрикс: Управление сайтом». Развернута копия базы .

    Изменения в «1С-Битрикс: Управление сайтом» не приходят в , т.е. якобы на сайте нет изменений.

    Решение. На самом деле, изменения есть и они приходят в копию базы .

    Чтобы изменения отслеживались в оригинале базы , просто поменяйте пароль у пользователя «1С-Битрикс: Управление сайтом».



    Проблема. Как выгрузить каталоги из в разные типы инфоблоков?

    Решение. Чтобы осуществить выгрузку в разные типы инфоблока, следует поместить несколько компонентов catalog.import.1c на разные страницы.

    Например, имеем две страницы: http://mysite.ru/1c_import_1.php и http://mysite.ru/1c_import_2.php. На обеих страницах настраиваем компонент catalog.import.1c - указываем в параметрах разные типы инфоблоков и устанавливаем флажок у опции Импортировать с учетом типа инфоблока.

    Затем при настройке импорта в , для выгрузки в нужный тип инфоблока указываем разные файлы: http://mysite.ru/1c_import_1.php либо http://mysite.ru/1c_import_2.php.

    Пример файла:

    <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
    $APPLICATION->SetTitle("import1");
    ?> 
    <?$APPLICATION->IncludeComponent("bitrix:catalog.import.1c", "", Array(
    		"IBLOCK_TYPE" => "books",
    		"SITE_LIST" => array(),
    		"INTERVAL" => "30",
    		"GROUP_PERMISSIONS" => array(0 => "1"),
    		"USE_OFFERS" => "N",
    		"USE_IBLOCK_TYPE_ID" => "Y",
    		"SKIP_ROOT_SECTION" => "N",
    		"ELEMENT_ACTION" => "D",
    		"SECTION_ACTION" => "D",
    		"FILE_SIZE_LIMIT" => "204800",
    		"USE_CRC" => "Y",
    		"USE_ZIP" => "Y",
    		"USE_IBLOCK_PICTURE_SETTINGS" => "N",
    		"GENERATE_PREVIEW" => "Y",
    		"PREVIEW_WIDTH" => "100",
    		"PREVIEW_HEIGHT" => "100",
    		"DETAIL_RESIZE" => "Y",
    		"DETAIL_WIDTH" => "300",
    		"DETAIL_HEIGHT" => "300",
    		"TRANSLIT_ON_ADD" => "Y",
    		"TRANSLIT_ON_UPDATE" => "Y",
    		"TRANSLIT_MAX_LEN" => "100",
    		"TRANSLIT_CHANGE_CASE" => "L",
    		"TRANSLIT_REPLACE_SPACE" => "_",
    		"TRANSLIT_REPLACE_OTHER" => "_",
    		"TRANSLIT_DELETE_REPEAT_REPLACE" => "Y"
    	),
    false
    );?> 
    <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
    


    Проблема. Не удалось найти вид номенклатуры

    В процессе обмена с сайтов возникает ошибка: Не удалось найти вид номенклатуры: Услуга Не удалось найти вид номенклатуры: Товар Не удалось найти/создать номенклатуру. Не удалось обработать документы, загруженные с сервера.

    Решение. Ошибка возникает, если в нет типов номенклатуры Услуга и Товар. Эти типы номенклатуры критичны для процесса обмена данными с сайтом. Следует создать в эти типы номенклатуры и только поле этого осуществлять обмен.



    Проблема. В процессе обмена возникает ошибка Поле объекта не обнаружено.

    В процессе обмена заказами возникает ошибка: {Обработка.ОбменССайтом(3271)}: Поле объекта не обнаружено (Наименование) >> ОтобразитьСостояние("Идентификация контрагента: " + СтрокаДД.СтруктураДанныхКонтрагента.Наименование);

    Решение. Проверьте настройки интеграции с , закладка Профили обмена Нажмите на рисунок, чтобы увеличить
    Подробнее...
    : установлены ли соответствия для полей заказа. Обратите внимание на поля Полное Наименование и Наименование. Эти поля критичны для .



    Проблема. Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.

    • Возникает ошибка следующего вида:

      Выгружено товаров: 679 Выгружено картинок: 469 Произошла ошибка на стороне сервера. Получен неизвестный статус импорта. Обмен не выполнен. Ответ сервера. Fatal error : Allowed memory size of 67108864 bytes exhausted (tried to allocate 102401 bytes) in /var/www/bitrix/modules/iblock/classes/general/cml2.php on line 483 Выгрузка товаров завершена с ошибками!

      Решение. Ошибка скорее всего связана с нехваткой ресурсов на масштабирование передаваемых на сервер изображений. Выходом из данной ситуации может служить отключение опции Выгружать картинки (вкладка Выгрузка товаров в настройке обмена в ).

      Также можно увеличить размер выделяемой памяти в настройках PHP (параметр memory_limit), для этого следует обратиться к хостинг-провайдеру.

    • Возникает ошибка следующего вида:

      Выгружено товаров: 46 Выгружено картинок: 0 Произошла ошибка на стороне сервера. Получен неизвестный статус импорта. Обмен не выполнен Ответ сервера: DB query error. Please try later. Выгрузка товаров завершена с ошибками!

      Решение. Ошибка может возникать в случае некорректной передачи файла на сервер. В процессе отправки файл может "обрезаться" и терять свою целостность, в итоге файл на сервер передаётся некорректным по содержанию.

      Причиной может служить прокси-сервер, через который осуществляется обмен. Попробуйте осуществить выгрузку не через прокси-сервер. Также попробуйте отключить опцию Использовать сжатие zip, если доступно в настройках интеграции с - возможно, на сервере не поддерживается ZIP-сжатие. Проверьте настройки интеграции с .



    Проблема. Ошибка Произошла ошибка на стороне сервера. Файл не отправлен

    В процессе обмена возникает такого вида ошибка:
    Выгружено товаров: 3 Выгружено картинок: 0 Выгрузка товаров успешно завершена Выгружено заказов: 1 Произошла ошибка на стороне сервера. Файл не отправлен (C:\Documents and Settings\User\Local Settings\Temp\v8_5075_63.zip). Обмен не выполнен Ответ сервера: Файл для импорта пуст. Обмен заказами завершён с ошибками!

    Решение. Причины возникновения ошибки могут быть следующие:

    • На компьютере, где установлена , имеется файрволл или антивирус, препятствующий корректной передаче файла или блокирующий отправку файла на сервер.
    • Некорректно работает функции расширения ZIP, вследствие чего из архива не распаковываются файлы. Для решения возникшей проблемы рекомендуется:
      • Установить последние стабильные версии обновлений модуля интернет-магазина.
      • На время обмена отключить на локальной машине все блокирующее ПО (антивирус, файрволлы и т.д.)
      • Отключить ZIP-сжатие в настройках интеграции с .


    • Проблема. Не работает авторизация при обмене данными с

      Решение. Часто проблема возникает в результате работы PHP в режиме CGI. В этом режиме есть проблемы с передачей данных авторизации HTTP в PHP. Можно это проверить, посмотрев phpinfo() в разделе: Server API: CGI. Можно обойти проблему, но необходимо чтобы на сервере была включена обработка .htaccess и поддержка mod_rewrite. Выполните следующие действия:

      • В корне сайта в файл .htaccess добавьте строки:
            RewriteEngine on
            RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
      • Закоментируйте следующие строки в файле bitrix/admin/.htaccess, которые отключают mod_rewrite:
            #<ifmodule mod_rewrite.c="">
            # RewriteEngine Off
            #</ifmodule>
        Примечание: данный файл может отсутствовать, поскольку он создается вручную.
      • В файл bitrix/php_interface/dbconn.php добавьте строки:
            $remote_user = $_SERVER["REMOTE_USER"] 
            ? $_SERVER["REMOTE_USER"] : $_SERVER["REDIRECT_REMOTE_USER"];
            $strTmp = base64_decode(substr($remote_user,6));
            if ($strTmp)
                list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', $strTmp);

      Для проверки работоспособности HTTP-авторизации воспользуйтесь скриптом

      Внимание! Данный вариант обхода не всегда может решить проблему. Если при выполнении всех рекомендаций HTTP-авторизация не заработала, то следует обратиться к хостинг-провайдеру с этой проблемой.


      Проблема. При выгрузке каталога из 1C не ставит галочку уменьшать количество при заказе

      Решение. Чтобы исправить это, необходимо в файле init.php добавить код, который будет срабатывать при добавление продукта (через событие OnProductAdd):

      <?
      AddEventHandler("sale", "OnProductAdd", "OnProductAdd"); 
       
          function OnProductAdd($ID,$Fields) 
          {   
        $res=Array("QUANTITY_TRACE"=>'Y); 
         CCatalogProduct::Update($ID,$res); 
       
      } 
      ?>



      Проблема: медленный импорт из 1C

      Возможные причины:

      Включённая индексация. Для ускорения можете в настройках инфоблока выключить индексацию элементов и разделов, а также свойств.

      Проактивная защита, которая меняет идентификатор сессии каждую минуту. В случае интеграции с 1C приложение 1C не подхватывает новый идентификатор и пытается получить переменные сессии со старым ID сессии. В сессии хранится шаг импорта, если не удаётся в сессии найти этот шаг, то считается, что шаг равен 1, т.е. импорт начинается сначала. Попробуйте отключить хранение сессий в базе и смену идентификатора сессии.



      Задача: Структура каталога на сайте должна отличаться от структуры в 1C.

      Варианты решения:

      Вариант 1. Делается отдельный классификатор - инфоблок и разделы. У разделов создаётся свойство привязка к разделам, и нужные "человеческие" разделы привязываются к разделам инфоблока с классификатором, который пришел из 1C. Можно сделать множественную привязку - будет проще свести в один раздел из кучи непонятных в 1C.

      Вариант 2. В 1C можно создать такой объект как прайс-лист и попробовать настроить обмен с сайтом, уже используя его как прокси. Т.е. если в справочнике Номенклатура бардак и вообще куча всякого, что на сайте не должно показываться, то создаётся прайс-лист, и уже в нём создаются нужные секции. И специально обученный сотрудник добавляет в узлы прайс-листа ссылки на позиции из справочника номенклатура.

      Тогда на сайт будет уходить CML, структура которого берётся из прайс-листа, а не из номенклатурного справочника.


      Проблема. На этапе выгрузки свойств после построения таблиц выводится сообщение об ошибке:

        Выгружено товаров: 1 832
        Выгружено картинок: 0
        Выгружено предложений: 0
        Произошла ошибка на стороне сервера.
        Обмен не выполнен
        Ответ сервера:
        Ошибка импорта метаданных.

        Выгрузка товаров завершена с ошибками!!!

      Причина. Ошибка может возникать, если названия свойств начинаются с цифр. Первый знак в названии должен быть буквой.


      Проблема. На этапе выгрузки свойств после построения таблиц выводится сообщение об ошибке:

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

      Причина: Такая ошибка возникает, когда клиент забывает указать в настройках обмена конкретное соглашение (в настройках 1С), по которому должны выгружаться цены. Соглашение указывается в отборах выгружаемых инфоблоков.


      Проблема. Неполная выгрузка картинок.

      Картинки выгружаются из 1С, только при первой полной выгрузке каталога товаров, не важно выгрузка была на в папку на локальном компьютере или на сайт. В последствии картинки выгружаются только новые и измененные.

      Если изменены настройки в 1С и картинки не выгрузились в первый раз на сайт, то в настройках модуля обмена выполните обмен через кнопку принудительной полной выгрузке картинок.


Курсы разработаны в компании «1С-Битрикс»
Спасибо, мы рады что смогли помочь Вам. Ниже Вы можете оставить свой отзыв или пожелание :)
Нам жаль это слышать… Но мы постараемся быть лучше!

Мы благодарны Вам за помощь в улучшении документации.

Мы стараемся сделать документацию понятнее и доступнее,
и Ваше мнение важно для нас