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

А началось все довольно безобидно. Позвонил старый клиент у которого уже года 2-3 работает магазин в связке с 1С и пожаловался что обмен перестал работать. Полез я к нему в 1С и вижу, что обмен действительно падает причем с разными ошибками и на разных файлах.

Первое что сделали — перешли на более мощный тариф хостинга. Половина зоопарка ошибок исчезла. Однако ошибка

Выгрузка на сайт завершилась с ошибками.
import.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Неверный тип файла, либо превышен максимальный размер файла

осталась и уходить не собиралась.

Пробовали выгружать и на тиражный магазин и на VDS на который другая 1С прекрасно все грузит — везде одна и та же ошибка.

В итоге обратились в поддержку Битрикса. Судя по оперативности и точности ответов поддержка знает о проблеме. А суть ответов была в следующем: поддержка вставила отладочную печать и попросила сделать выгрузку.
По результатам выгрузки в консоли 1С появилась отладочная информация вида

отладочная информация в консоли 1С

Отсюда можно видеть, что одна из картинок имеет mimetype: application/octet-stream (т.е. двоичные данные вместо структурированных).
Далее по названию картинки вычисляем (например, можно в import.xml поискать по названию картинки) нехороший товар, пересохраняем его картинку в любом графическом редакторе и все работает.

Кому интересно — вся отладка заключается в изменении файла /bitrix/modules/main/classes/general/file.php:
после каждого вызова

return GetMessage("FILE_BAD_TYPE");

нужно вставить

print_r($arFile);

Попросил поддержку исправить этот баг в импорте, но мы то с вами знаем сколько такие неважные исправления могут делаться. Поэтому я просто оставлю это сообщение здесь. Возможно кому-то поможет сэкономить время.

Выгрузка на сайт завершилась с ошибками. import.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.

Увидели такую ошибку и думаете «в коде кто-то накосячил»? А вот совсем не факт.
Об удивительной причине по которой обмен 1С с сайтом может неожиданно перестать работать я и хочу рассказать.

А началось все довольно безобидно. Позвонил старый клиент у которого уже года 2-3 работает магазин в связке с 1С и пожаловался что обмен перестал работать. Полез я к нему в 1С и вижу, что обмен действительно падает причем с разными ошибками и на разных файлах.

Первое что сделали — перешли на более мощный тариф хостинга. Половина зоопарка ошибок исчезла. Однако ошибка

Выгрузка на сайт завершилась с ошибками.
import.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Неверный тип файла, либо превышен максимальный размер файлаНеверный тип файла, либо превышен максимальный размер файла

осталась и уходить не собиралась.

Пробовали выгружать и на тиражный магазин и на VDS на который другая 1С прекрасно все грузит — везде одна и та же ошибка.

В итоге обратились в поддержку Битрикса. Судя по оперативности и точности ответов поддержка знает о проблеме. А суть ответов была в следующем: поддержка вставила отладочную печать и попросила сделать выгрузку.
По результатам выгрузки в консоли 1С появилась отладочная информация вида

Array
(
    [name] => 04f5da44f3fe11e297cb002215a2039c_04f5da47f3fe11e297cb002215a2039c.jpg
    [size] => 3789
    [tmp_name] => /home/i/mysite/public_html/upload/tmp/1ec/04f5da44f3fe11e297cb002215a2039c_04f5da47f3fe11e297cb002215a2039c.jpg
    [type] => application/octet-stream
    [COPY_FILE] => Y
    [description] => 
    [copy] => 1
    [MODULE_ID] => iblock
)
 

Отсюда можно видеть, что одна из картинок имеет mimetype: application/octet-stream.
Далее по названию картинки вычисляем (например, можно в import.xml поискать по названию картинки) нехороший товар, пересохраняем его картинку в любом графическом редакторе и все работает.

Кому интересно — вся отладка заключается в изменении файла /bitrix/modules/main/classes/general/file.php:
после каждого вызова

return GetMessage("FILE_BAD_TYPE");

нужно вставить

Попросил поддержку исправить этот баг в импорте, но мы то с вами знаем сколько такие неважные исправления могут делаться. Поэтому я просто оставлю это сообщение здесь. Возможно кому-то поможет сэкономить время.

Назад в раздел

Увидели такую ошибку и думаете «в коде кто-то накосячил»? А вот совсем не факт.
Об удивительной причине по которой обмен 1С с сайтом может неожиданно перестать работать я и хочу рассказать.

Показать скрытое содержание

А началось все довольно безобидно. Позвонил старый клиент у которого уже года 2-3 работает магазин в связке с 1С и пожаловался что обмен перестал работать. Полез я к нему в 1С и вижу, что обмен действительно падает причем с разными ошибками и на разных файлах.

Первое что сделали — перешли на более мощный тариф хостинга. Половина зоопарка ошибок исчезла. Однако ошибка

Выгрузка на сайт завершилась с ошибками.
import.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Неверный тип файла, либо превышен максимальный размер файлаНеверный тип файла, либо превышен максимальный размер файла

осталась и уходить не собиралась.

Пробовали выгружать и на тиражный магазин и на VDS на который другая 1С прекрасно все грузит — везде одна и та же ошибка.

В итоге обратились в поддержку Битрикса. Судя по оперативности и точности ответов поддержка знает о проблеме. А суть ответов была в следующем: поддержка вставила отладочную печать и попросила сделать выгрузку.
По результатам выгрузки в консоли 1С появилась отладочная информация вида

Array
(
    [name] => 04f5da44f3fe11e297cb002215a2039c_04f5da47f3fe11e297cb002215a2039c.jpg
    [size] => 3789
    [tmp_name] => /home/i/mysite/public_html/upload/tmp/1ec/04f5da44f3fe11e297cb002215a2039c_04f5da47f3fe11e297cb002215a2039c.jpg
    [type] => application/octet-stream
    [COPY_FILE] => Y
    [description] => 
    [copy] => 1
    [MODULE_ID] => iblock
)
 

Отсюда можно видеть, что одна из картинок имеет mimetype: application/octet-stream.
Далее по названию картинки вычисляем (например, можно в import.xml поискать по названию картинки) нехороший товар, пересохраняем его картинку в любом графическом редакторе и все работает.

Кому интересно — вся отладка заключается в изменении файла /bitrix/modules/main/classes/general/file.php:
после каждого вызова

return GetMessage("FILE_BAD_TYPE");

нужно вставить

Попросил поддержку исправить этот баг в импорте, но мы то с вами знаем сколько такие неважные исправления могут делаться. Поэтому я просто оставлю это сообщение здесь. Возможно кому-то поможет сэкономить время.

А началось все довольно безобидно. Позвонил старый клиент у которого уже года 2-3 работает магазин в связке с 1С и пожаловался что обмен перестал работать. Полез я к нему в 1С и вижу, что обмен действительно падает причем с разными ошибками и на разных файлах.

Первое что сделали — перешли на более мощный тариф хостинга. Половина зоопарка ошибок исчезла. Однако ошибка

Выгрузка на сайт завершилась с ошибками.
import.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Неверный тип файла, либо превышен максимальный размер файла

осталась и уходить не собиралась.

Пробовали выгружать и на тиражный магазин и на VDS на который другая 1С прекрасно все грузит — везде одна и та же ошибка.

В итоге обратились в поддержку Битрикса. Судя по оперативности и точности ответов поддержка знает о проблеме. А суть ответов была в следующем: поддержка вставила отладочную печать и попросила сделать выгрузку.
По результатам выгрузки в консоли 1С появилась отладочная информация вида

отладочная информация в консоли 1С

Отсюда можно видеть, что одна из картинок имеет mimetype: application/octet-stream (т.е. двоичные данные вместо структурированных).
Далее по названию картинки вычисляем (например, можно в import.xml поискать по названию картинки) нехороший товар, пересохраняем его картинку в любом графическом редакторе и все работает.

Кому интересно — вся отладка заключается в изменении файла /bitrix/modules/main/classes/general/file.php:
после каждого вызова

return GetMessage("FILE_BAD_TYPE");

нужно вставить

print_r($arFile);

Попросил поддержку исправить этот баг в импорте, но мы то с вами знаем сколько такие неважные исправления могут делаться. Поэтому я просто оставлю это сообщение здесь. Возможно кому-то поможет сэкономить время.

Выгрузка на сайт завершилась с ошибками. import.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.

Увидели такую ошибку и думаете «в коде кто-то накосячил»? А вот совсем не факт.
Об удивительной причине по которой обмен 1С с сайтом может неожиданно перестать работать я и хочу рассказать.

А началось все довольно безобидно. Позвонил старый клиент у которого уже года 2-3 работает магазин в связке с 1С и пожаловался что обмен перестал работать. Полез я к нему в 1С и вижу, что обмен действительно падает причем с разными ошибками и на разных файлах.

Первое что сделали — перешли на более мощный тариф хостинга. Половина зоопарка ошибок исчезла. Однако ошибка

Выгрузка на сайт завершилась с ошибками.
import.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Неверный тип файла, либо превышен максимальный размер файлаНеверный тип файла, либо превышен максимальный размер файла

осталась и уходить не собиралась.

Пробовали выгружать и на тиражный магазин и на VDS на который другая 1С прекрасно все грузит — везде одна и та же ошибка.

В итоге обратились в поддержку Битрикса. Судя по оперативности и точности ответов поддержка знает о проблеме. А суть ответов была в следующем: поддержка вставила отладочную печать и попросила сделать выгрузку.
По результатам выгрузки в консоли 1С появилась отладочная информация вида

Array
(
    [name] => 04f5da44f3fe11e297cb002215a2039c_04f5da47f3fe11e297cb002215a2039c.jpg
    [size] => 3789
    [tmp_name] => /home/i/mysite/public_html/upload/tmp/1ec/04f5da44f3fe11e297cb002215a2039c_04f5da47f3fe11e297cb002215a2039c.jpg
    [type] => application/octet-stream
    [COPY_FILE] => Y
    [description] => 
    [copy] => 1
    [MODULE_ID] => iblock
)
 

Отсюда можно видеть, что одна из картинок имеет mimetype: application/octet-stream.
Далее по названию картинки вычисляем (например, можно в import.xml поискать по названию картинки) нехороший товар, пересохраняем его картинку в любом графическом редакторе и все работает.

Кому интересно — вся отладка заключается в изменении файла /bitrix/modules/main/classes/general/file.php:
после каждого вызова

return GetMessage("FILE_BAD_TYPE");

нужно вставить

Попросил поддержку исправить этот баг в импорте, но мы то с вами знаем сколько такие неважные исправления могут делаться. Поэтому я просто оставлю это сообщение здесь. Возможно кому-то поможет сэкономить время.

Назад в раздел

Обмен с битрикс «сайтом»

Я

  

progaoff

17.08.20 — 14:30

import___19e25806-af84-4466-886c-09afbc566612.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.

Ответ сервера:

<br><font color=#ff0000>MySQL Query Error: create table b_xml_tree_import_1c

                (

                    ID int(11) not null auto_increment,

                    

                    PARENT_ID int(11),

                    LEFT_MARGIN int(11),

                    RIGHT_MARGIN int(11),

                    DEPTH_LEVEL int(11),

                    NAME varchar(255),

                    VALUE longtext,

                    ATTRIBUTES text,

                    PRIMARY KEY (ID)

                )

            </font>[[1813] Tablespace for table ‘`lavka`.`b_xml_tree_import_1c`’ exists. Please DISCARD the tablespace before IMPORT]<br><br>

<table cellpadding=»1″ cellspacing=»0″ width=»35%» bgcolor=»#9C9A9C»>

    <tr>

        <td><table cellpadding=»5″ cellspacing=»0″ width=»100%»>

            <tr>

                <td bgcolor=»#FFFFFF» align=»center»>

                    <FONT face=»Verdana, Arial, Helvetica, sans-serif» size=»-1″>

                    <font color=»#FF0000″><b>DB query error.</b></font><br>

                    Please try later.

                    </font><br>

                                            </form>

                        <form method=»post» action=»https://www.1c-bitrix.ru/support/»>;

                                                        <input type=»hidden» name=»last_error_query» value=»File: /var/www/hozmag/data/www/hozmag-econom.ru/bitrix/modules/main/include/dbquery_error.php

Query: create table b_xml_tree_import_1c

Добрый день, кто нибудь сталкивался с такой проблемой?

  

progaoff

1 — 17.08.20 — 14:53

Не ужели никто?

  

Fram

2 — 18.08.20 — 00:41

Попробуй удалить соответствующий .idb файл в папке бд

  

Fram

3 — 18.08.20 — 00:41

* .ibd

  

Fram

4 — 18.08.20 — 00:42

  

progaoff

5 — 18.08.20 — 10:14

(2) да вот в том то и проблема что там пусто, нет этих файлов

  

lenkavovka

6 — 18.08.20 — 11:00

Без предыстории ничего, кроме как проблемы на стороне MySQL сервера сайта, обозначить нельзя.

Раньше работало?

Сервер с MySQL твой?

Ребут сервера помогает?

Если «да, да, нет» — гуглить «Проверка, восстановление и оптимизация баз MySQL». База иногда устаёт, нужно её в себя привести. Делается из любого менеджера MySQL по правому клику на названии базы. Например, DBForge Studio For MySQL.

  

progaoff

7 — 18.08.20 — 11:19

(6) Да работало до обновления «сайта»

  

yzimin

8 — 18.08.20 — 11:21

У вас обслуживанием сайта кто занимается? Вот им и адресуйте данный вопрос.

  

progaoff

9 — 18.08.20 — 11:21

(8) «да, да, нет»

  

progaoff

10 — 18.08.20 — 11:28

(8) они отправляют на сторону 1с

  

progaoff

11 — 18.08.20 — 11:28

Типа того что идет два одновременных обмена. И бла бла бла

  

yzimin

12 — 18.08.20 — 11:29

(11) Так это важные вводные данные. Да, битрикс не умеет работать паралельно, надо пилить, на стороне 1С дешевле

  

progaoff

13 — 18.08.20 — 11:30

(12) нет двух обменов одновременно.

  

yzimin

14 — 18.08.20 — 11:32

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

  

progaoff

15 — 18.08.20 — 11:39

(14) да уже высылал — толку 0

  

yzimin

16 — 18.08.20 — 11:46

(15) ты же сам говоришь, что тебе указали на зацикливание. Сам-то смотрел логи? чтобы начало обмена шло строго после окончания? Если всё ок, то подключайте административный инструмент)

  

progaoff

17 — 18.08.20 — 11:47

(16) Ну конечно смотрел. Какой из инструментов то?

  

lenkavovka

18 — 18.08.20 — 14:24

(17) вероятно, имеется в виду волшебный пендель через руководство в сторону поддержки сайта. Пусть дадут лог, по которому они увидели двойной обмен.

Нужно изучать данные, которые приходят на сайт. Обмен с Битриксом — штука невероятно рукожопно написанная, и всегда доставляет много проблем. Мы в похожем случае достаём из бэкапа копию 1С на тот момент, когда всё точно работало, и запускаем обмен. Сравниваем логи. Чтобы локализовать проблему.

Если из старой копии обмен идёт — то проблема у нас. Чего, кстати, ни разу не бывало.

  

progaoff

19 — 18.08.20 — 14:55

(18) Уже пробовал, с копией та же хрень

  

progaoff

20 — 18.08.20 — 14:56

Сейчас пробую залить на сайт через xml

  

progaoff

21 — 18.08.20 — 15:28

Жесть. Уже все перепробовал — результат 0

  

lenkavovka

22 — 19.08.20 — 07:40

(21) Осталось попробовать достать из бэкапа копию сайта и базы MySQL до обновления и проверить обмен. Снова обновить Битрикс потом — не проблема.

А вообще здесь нужно обоюдное участие всех заинтересованных лиц, дебажить как со стороны 1С, так и со стороны Битрикса.

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

  

Мисс

23 — 19.08.20 — 07:43

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

  

dmitryds

24 — 19.08.20 — 09:42

(21) а если почистить таблицу b_xml_tree_import_1c?

Если не поможет вообще удалить…

само собой сначала бэкап

Заказать сайт

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

Настройки подключения к 1С должны быть произведены согласно официальной документации

Очистка кеша после импорта

В файле init.php добавляем

//При начале импорта из 1С устанавливаем сессионную переменную
AddEventHandler(
    'catalog',
    'OnBeforeCatalogImport1C',
    function ()
    {
        $_SESSION["1C_UPDATE"] = true;
    }
);

//При окончании импорта из 1С устанавливаем сессионную переменную
AddEventHandler(
    'catalog',
    'OnSuccessCatalogImport1C',
    function ()
    {
        $_SESSION["1C_UPDATE"] = false;

        define('BX_BUFFER_USED', true);
        define('NO_KEEP_STATISTIC', true);
        define('NOT_CHECK_PERMISSIONS', true);
        define('NO_AGENT_STATISTIC', true);
        define('STOP_STATISTICS', true);
        define('SITE_ID', 's1');

        BXClearCache(true);

        if (class_exists('BitrixMainDataManagedCache')) {
            (new BitrixMainDataManagedCache())->cleanAll();
        }

        if (class_exists('CStackCacheManager')) {
            (new CStackCacheManager())->CleanAll();
        }

        if (class_exists('BitrixMainDataStaticHtmlCache')) {
            BitrixMainDataStaticHtmlCache::getInstance()->deleteAll();
        }
    }
);

Запуск импорта вручную

Для этого нужно перейти по адресу: https://site.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml

Так же импорт можно запустить из отладочного файла /bx_1c_import.php, что намного удобнее, но небезопасно! Переименуйте его и удалить сразу после использования

Включение отладки

В файле /bitrix/php_interface/dbconn.php добавляем константу

define("BX_CATALOG_IMPORT_1C_PRESERVE", true);

Для каждого обновляемого файла получим массив вида

Host: site.ru:443
Date: 2020-06-29 09:23:48
Module: ------------UPDATE-----------
Array
(
    [ACTIVE] => Y
    [PROPERTY_VALUES] => Array
        (
                )

            [339] => Array
                (
                    [n0] => Array
                        (
                            [VALUE] => 5055185210794
                            [DESCRIPTION] => 
                        )

                )

            [340] => Array
                (
                    [n0] => Array
                        (
                            [VALUE] => 5678000-01109
                            [DESCRIPTION] => 
                        )

                )

            [342] => Array
                (
                    [n0] => Array
                        (
                            [VALUE] => Товар 
                            [DESCRIPTION] => ВидНоменклатуры
                        )

                    [n1] => Array
                        (
                            [VALUE] => Товар
                            [DESCRIPTION] => ТипНоменклатуры
                        )

                    [n2] => Array
                        (
                            [VALUE] => Набор для вышивания "Поле маков". По картине Стива Томса ("Poppy Field", Steve Thoms). 25х25 см
                            [DESCRIPTION] => Полное наименование
                        )

                    [n3] => Array
                        (
                            [VALUE] => 1933.83
                            [DESCRIPTION] => Цена
                        )

                    [n4] => Array
                        (
                            [VALUE] => 0
                            [DESCRIPTION] => Вес
                        )

                )

        )

    [TMP_ID] => 1765642395
    [XML_ID] => 583b6b8d-d8f1-11e0-9980-1c6f65bc8a97
    [NAME] => Набор для вышивания MAIA Поле маков
    [DETAIL_TEXT] => Размер:25*25см (состав: канва Aida 16, цветная схема, нитки Anchor, игла, инструкция), счетный крест
    [DETAIL_TEXT_TYPE] => text
    [PREVIEW_TEXT] => Набор для вышивания "Поле маков". По картине Стива Томса ("Poppy Field", Steve Thoms). 25х25 см
    [PREVIEW_TEXT_TYPE] => text
    [DETAIL_PICTURE] => Array
        (
            [name] => 583b6b8d-d8f1-11e0-9980-1c6f65bc8a97_2b668b28-d6b7-11e5-afc8-001e676a37f6.jpg
            [size] => 84906
            [tmp_name] => /home/bitrix/www/upload/1c_catalog/import_files/58/583b6b8d-d8f1-11e0-9980-1c6f65bc8a97_2b668b28-d6b7-11e5-afc8-001e676a37f6.jpg
            [type] => image/jpeg
            [external_id] => 825a18b4d6a465891654f1227d1968e4
            [description] => 09
            [MODULE_ID] => iblock
            [old_file] => 122987
        )

    [PREVIEW_PICTURE] => Array
        (
            [name] => 583b6b8d-d8f1-11e0-9980-1c6f65bc8a97_2b668b28-d6b7-11e5-afc8-001e676a37f6.resize1.jpg
            [size] => 40462
            [tmp_name] => /home/bitrix/www/upload/1c_catalog/import_files/58/583b6b8d-d8f1-11e0-9980-1c6f65bc8a97_2b668b28-d6b7-11e5-afc8-001e676a37f6.resize1.jpg
            [type] => image/jpeg
            [external_id] => 825a18b4d6a465891654f1227d1968e4
            [description] => 09
            [MODULE_ID] => iblock
            [old_file] => 122986
        )

    [IBLOCK_SECTION] => Array
        (
            [0] => 1217
        )

    [BASE_WEIGHT] => 0
    [MODIFIED_BY] => 1
    [WF] => N
    [SEARCHABLE_CONTENT] => НАБОР ДЛЯ ВЫШИВАНИЯ MAIA ПОЛЕ МАКОВ
НАБОР ДЛЯ ВЫШИВАНИЯ "ПОЛЕ МАКОВ". ПО КАРТИНЕ СТИВА ТОМСА ("POPPY FIELD", STEVE THOMS). 25Х25 СМ
РАЗМЕР:25*25СМ (СОСТАВ: КАНВА AIDA 16, ЦВЕТНАЯ СХЕМА, НИТКИ ANCHOR, ИГЛА, ИНСТРУКЦИЯ), СЧЕТНЫЙ КРЕСТ
    [PREVIEW_PICTURE_ID] => 136021
    [DETAIL_PICTURE_ID] => 136022
    [ID] => 116896
    [IBLOCK_ID] => 22
    [RESULT] => 1
)

Поиск проблемного файла при получении во время импорта из 1С ответа Файл не является графическим

В файле /bitrix/modules/main/classes/general/file.php перед каждым

return GetMessage("FILE_BAD_FILE_TYPE");

вставляем:

print_r($arFile)

Получим массив вида

[
	[name] => 493d6d81-6ebb-11e3-8f8e-001e676a37f6_493d6d83-6ebb-11e3-8f8e-001e676a37f6.jpg
	[size] => 1051
	[tmp_name] => /home/bitrix/www/upload/1c_catalog/import_files/49/493d6d81-6ebb-11e3-8f8e-001e676a37f6_493d6d83-6ebb-11e3-8f8e-001e676a37f6.jpg
	[type] => image/jpeg
	[external_id] => b6c6e1bf0372a666323fd0a000999734
	[description] => PN-0146947
	[MODULE_ID] => iblock
	[old_file] => 
]

Теперь в файле import.xml мы можем найти id проблемного товара по имени изображения

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

Вместо print_r добавьте в файл /bitrix/modules/main/classes/general/file.php такой код

$log = '///////////////////////////////////////////////////////////////n';
$log .= date('Y-m-d H:i:s') . ' ' . print_r($arFile, true);
//$log .= str_replace(array('	', PHP_EOL), '', print_r($arFile, true)); //Для вывода в одну строку
file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/log.txt', $log . PHP_EOL, FILE_APPEND);

Выгрузка на сайт завершилась с ошибками. import.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.

1С вернул код ответа Ошибка открытия файла

Если вы убедились, что на жестком диске место есть, у вашего скрипта есть права доступа к папке /upload/ и сама папка существует, то попробуйте отключить сжатие при обмене с 1С.

Перейдите по ссылке /bitrix/admin/1c_admin.php?lang=ru&tabControl_active_tab=edit_catalog или используя навигацию Магазин > Настройки > Интеграция с 1С и снимите галочку с опции Использовать сжатие zip, если доступно

Теги:

1С Битриксphp

bg-girl

Эффективная работа с клиентами онлайн невозможна без интеграции сайта с системами «1С:Предприятие»

Что дает интеграция сайта и 1С?

  • Быстрый сбор и обработка заказов
  • Всегда актуальные сведения по наличию, ценам и статусу заказа
  • Все заказы клиента собраны на сайте (и онлайн, и оффлайн)
  • Синхронизация справочников 1С и интернет-магазина
  • Добавление одному товару разных цен в зависимости от характеристик
  • Выгрузка каталога товаров в «1С»

Вопросы к рассмотрению:

  1. Настройки интеграции на стороне 1С-Битрикс.
  2. Настройки интеграции на стороне 1С: Предприятие.
  3. Возможные варианты синхронизации данных.
  4. Наиболее частые ошибки обмена данными.

Вступление

Итак, дорогой читатель, если ты здесь, то тебя непременно интересуют вопросы, связанные с темой синхронизации «1С: Предприятие» и интернет-магазина, реализованном на базе «1С-Битрикс».
Разберемся кратко с терминологией, которая то и дело будет встречаться далее по тексту статьи.
Синхронизация – обмен данными закрытого цикла.
Узел обмена – одна из подсистем, участвующих в синхронизации. Так как в нашей программной инфраструктуре два узла обмена (сайт и система учёта), то называться наш процесс будет двусторонний (двунаправленный) обмен данными.
Вот и всё. Терминологии почти не будет.

С какой целью организуют синхронизацию 1С и сайта? Для ускорения процессов, актуализации данных по различным каналам продаж, аналитики работы компании, увеличения конкурентоспособности, улучшения сервиса и качества обслуживания и много чего ещё можно подтянуть к списку преимуществ использования такой возможности. Организация процесса обмена между сайтом и 1С крайне необходима в наше время интеграционных процессов в digital-сфере предоставления товаров и услуг.

Каким образом настроить синхронизацию между 1С и сайтом?

Где находятся Настройки обмена с сайтами в 1С-Битрикс    

Настройки синхронизации данных CMS «1C-Битрикс: Управление сайтом» со сторонними системами учёта следует проводить в административной части сайта. После входа в систему управления по ссылке https://domain.ru/bitrix (пишите ваше доменное имя), необходимо перейти в панель администрирования сайта и перейти по пунктам, указанным на скриншоте слева <-
Откроется первая вкладка «Каталог» раздела настроек интеграции с 1С, в котором будут отображены параметры импорта данных (из 1С в 1С-Битрикс).

Настройка параметров импорта

Процесс импорта данных из товароучётной системы на сайт, вкратце, сводится к такой схеме взаимодействия: 1С отправляет файл с данными на удалённый сервер, где находится сайт. После чего Битрикс выполняет необходимые действия на стороне веб-сайта (читает данные и совершает изменения в своих каталогах) и «отчитывается» перед инициатором обмена (т.е. 1С) о результатах проделанной работы. Обратите внимание, что инициатором обмена всегда выступает 1С — это связано с тем, что если ваш интернет-магазин подвергнется хакерской атаке и будет взломан (а рано или поздно любой более-менее интересный магазин подвергается как минимум попыткам взлома) то атаковать вашу 1С через сайт не получится, просто потому что Битрикс «не умеет» инициировать обмен с 1С и даже не знает про неё.

Чтобы не позволять злоумышленнику запускать соответствующий скрипт сайта на файловом уровне, необходимо создать соответствующую группу пользователей и наделить их необходимыми правами. Для этого администратор web-сайта должен создать отдельную группу пользователей для управления обменом данными и пользователя для системы управления содержимым.

Настройка импорта (на указанной выше вкладке) находится в зоне ответственности web-специалиста, который занимается вашем интернет-ресурсом. Именно он должен принять решение по таким нюансам, как: стоит ли выгружать товары и характеристики товаров в различные информационные блоки или в один, формировать ли ЧПУ URL (человеко-понятные адреса страниц) при загрузке товаров, генерировать ли preview-картинки при добавлении элементов каталога. Именно web-специалист подберёт наиболее удачную конфигурацию настроек обмена данными, исходя из особенностей вашего сайта и аппаратной инфраструктуры ваших информационных систем (хостинга).

После решения этих вопросов вашим web-специалистом, необходимо выполнить аналогичные настройки на стороне платформы «1С: Предприятие».

Рассмотрим пример настроек обмена данными со стороны платформы 1С, используя конфигурацию «1С: Управление торговлей (УТ)». Предварительно установите модуль интеграции с 1С-Битрикс, версии которого расположены на этой странице: https://1c.1c-bitrix.ru/ecommerce/download.php:

Модуль обмена с Битрикс скачать

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

Создадим новый узел обмена. Введите его осознанное наименование (настоятельно рекомендуется создавать различные узлы обмена данными по товарам и заказам, это связано, например, с тем, что товары обновляются в системе гораздо реже по сравнению с заказами, поэтому и конфигурации должны быть разными).

Настраиваем Узлы обмена с сайтами

Данные будем выгружать на сайт по следующему пути: https:[ваш домен]/bitrix/1c/1c_exchange.php. Введите данные пользователя, созданного на предыдущем шаге специально для осуществления обмена. Проверьте соединение с сайтом с помощью специальной кнопки в этом окне:

Настраиваем Путь для выгрузки товаров на сайт

Сделайте правильный выбор относительно того, выгружать ли номенклатуру полностью или только её изменённые объекты.  Определитесь с периодами обновлений данных и, желательно, настройте автоматическую выгрузку по расписанию.

Как настроить выгрузка информации о номенклатуре

Расписание обмена с сайтом настройки

Теперь перейдём со вкладки основных настроек узла обмена данными с сайтом на вкладку «Выгрузка товаров». Отметьте соответствующие опции, необходимо ли вам выгружать изображения товаров, прочие файлы, информацию по товарным остаткам. Например, в некоторых случаях удобно хранить изображения и описания в 1С и выгружать их на сайт (если у вас свой небольшой бизнес и вы сами управляете и сайтом и 1С), во многих других случаях, когда сайтом управляет внештатный контент-менеджер или сторонняя организация-подрядчик, изображения и описания хранятся и редактируются ими на сайте, а в «1С: Управление торговлей»  доступ ему не предоставляется из соображений безопасности.

Теперь необходимо определиться с каталогом товаров, который будет выгружаться на сайт и, в соответствии с этим каталогом, при обмене данными, 1С-Битрикс создаст соответствующие информационные блоки и карточки товаров на сайте. В представленной табличке первично необходимо добавить строку с наименованием блока каталога (его именование на сайте), выбрать из структуры необходимые разделы номенклатуры для выгрузки. Таких строк по разделам каталога может быть множество. 

выгрузка информации о номенклатуре

Таким образом, можно формировать уникальную структуру товарных позиций для сайта, коренным образом отличающуюся от исходной в системе учёта «1С: Предприятие». Используйте для этого инструмент «Настройка дерева групп»:

Настроить пользовательские группы товаров

Также откройте Форму настройки отбора, где можно задать специфические условия выгрузки данных:

Форма настройки отбора номенклатуры

Теперь можно попробовать выполнить выгрузку данных, нажав соответствующую кнопку «Выполнить обмен данными» из блока «Синхронизация данных». И если всё настроено правильно, вы увидите на сайте необходимую вам структуру товарных позиций. 

А как же заказы?

Теперь разберёмся с не менее важной составляющей интеграции данных – это обмен заказами товаров между сайтом и «1С: Предприятие».

Эти настройки будем выполнять на стороне сайта в его панели администрирования в том же блоке настроек «Интеграция с 1С», но во вкладке «Заказы»:

Настройка параметров обмена заказами с 1С

Предварительно, рассмотрим возможные сценарии интеграции данных по заказам:
А. Первый и наиболее очевидный вариант –все заказы отправляются в «1С: Предприятие» для последующей их обработки менеджером по продажам из конфигурации 1С. Вариант чаще всего используется в небольших интернет-магазинах.
Б. Вторым, менее очевидным, но достаточно полезным является вариант выгрузки заказов по определенным статусам состояния заказа. Этот вариант может быть использован, если, например, на сайте имеется возможность оплаты заказа и нам необходимо запустить немедленный процесс передачи заказа менеджеру, только если он оплачен, т.е. имеет соответствующий статус «оплачено».
В. Очередной вариант – это создание собственного статуса заказа. Такая возможность имеется на стороне CMS Bitrix, и, например, предварительно создав статус «Утверждён», можно начать оформления только тех заказов, которые лично (например, по телефону) подтвердились заказчиком. Соответственно, только такого типа заказы попадут в систему учёта «1С: Предприятие» (до недавнего времени такую схему использовал, например, Ситилинк).
После того, как платформа 1С «дала ответ» системе управления сайтом, что заказ загружен, можно переводить его в конечный статус (например, из имеющихся – это «Выполнен»).

Следующая вкладка «Профили обмена» используется из-за особенностей регистрации контрагентов различных типов на стороне «1С: Предприятие». Это связано с тем, что для создания различного типа пользователей нашего сайта (физических и юридических лиц) используется различный набор полей для их регистрации в системе «1С: Управление торговлей»:

Настройка полей экспорта на сайт

На этой вкладке производится настройка соответствия заполнения полей в 1С с полями, показанными покупателю на сайте во время оформления и заполнения им контактной информации.
Конечно же, не забываем, что после того, как мы всё настроили для обмена заказами со стороны системы управления «1С-Битрикс», нам необходимо выполнить аналогичные настройки на стороне платформы 1С.
Также переходим к узлам настройки обмена и выбираем заготовленный шаблон синхронизации по заказам «Обмен заказами»:

Настройка обмена документами между сайтом и 1С

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

Настройка соответствий загружаемых документов между сайтом и 1С

Также пробуйте выполнить обмен заказами из 1С по аналогии с синхронизацией товаров. И если всё настроено правильно, вы увидите заказы с сайта в системе «1С: Управление торговлей»:

Заказ на сайте:

Просмотр заказа на сайте

А вот этот заказ в 1С:

Просмотр заказа клиента в 1С

Просмотр заказа клиента в 1С

Соответствие созданных документов на сайте и загруженных в 1С:

Просмотр соответствия созданных документов на сайте и загруженных в 1С

Просмотр связанных документов

Работайте в 1С со статусами заказов, проводками, отгрузками и другой информацией, все изменения будут доступны на сайте после обмена данными.

Дополнительные возможности по обмену 1С с сайтом на Битрикс

Проблемы настройки обмена с 1С-Битрикс и решения 1С. (картинка https://vk.com/asinastra) Автор картинки: https://vk.com/asinastra

Рассмотрим наиболее часто встречающиеся проблемы интеграции продуктов 1С с системой управления 1С-Битрикс.

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

Решение: наименования свойств начинаются с числового значения. Первый знак – символ. Переименуйте их.


Проблема: импорт данных из 1С происходит ну очень медленно.

Решение: выключите на сайте в настройках инфоблока индексацию элементов и разделов, а также их свойств. Также попробуйте отключить хранение сессий в базе MySQL системы управления и смену идентификаторов сессий.


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

Решение: часто проблема возникает в результате работы PHP в режиме CGI. Передача данных авторизации HTTP в PHP в этом режиме не гарантируется. Обратитесь к вашему системному администратору для включения на сервере обработки .htaccess и поддержки mod_rewrite.


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

Решение: проверьте настройки файрволла или антивируса, они могут препятствовать корректной передаче файла или блокировать отправку файла на сервер. Может помочь отключение ZIP-сжатия в настройках интеграции с 1С, если настройка firewall или антивируса не помогло.


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

Решение: ошибка может быть связана с нехваткой ресурсов на масштабирование передаваемых на сервер изображений. Выходом из данной ситуации может служить отключение опции «Выгружать картинки» (вкладка «Выгрузка товаров» в настройке обмена в 1С). Также можно увеличить размер выделяемой памяти в настройках PHP (рекомендуемый параметр memory_limit для php указан на вкладке «Диагностика» CMS Битрикс. 


Проблема: поле объекта не обнаружено.

Решение: проверьте настройки интеграции с платформой 1С, установлены ли соответствия для полей заказа на вкладке «Профили обмена». Запомните, что поля Полное Наименование и Наименование обязательны для заполнения и это критично для 1С.


Если ничего не получается? Свяжитесь с нами, и работу по настройке интеграции 1С-Битрикс и 1С мы возьмём на себя.

Заказать сайт

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

Настройки подключения к 1С должны быть произведены согласно официальной документации

Очистка кеша после импорта

В файле init.php добавляем

//При начале импорта из 1С устанавливаем сессионную переменную
AddEventHandler(
    'catalog',
    'OnBeforeCatalogImport1C',
    function ()
    {
        $_SESSION["1C_UPDATE"] = true;
    }
);

//При окончании импорта из 1С устанавливаем сессионную переменную
AddEventHandler(
    'catalog',
    'OnSuccessCatalogImport1C',
    function ()
    {
        $_SESSION["1C_UPDATE"] = false;

        define('BX_BUFFER_USED', true);
        define('NO_KEEP_STATISTIC', true);
        define('NOT_CHECK_PERMISSIONS', true);
        define('NO_AGENT_STATISTIC', true);
        define('STOP_STATISTICS', true);
        define('SITE_ID', 's1');

        BXClearCache(true);

        if (class_exists('BitrixMainDataManagedCache')) {
            (new BitrixMainDataManagedCache())->cleanAll();
        }

        if (class_exists('CStackCacheManager')) {
            (new CStackCacheManager())->CleanAll();
        }

        if (class_exists('BitrixMainDataStaticHtmlCache')) {
            BitrixMainDataStaticHtmlCache::getInstance()->deleteAll();
        }
    }
);

Запуск импорта вручную

Для этого нужно перейти по адресу: https://site.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml

Так же импорт можно запустить из отладочного файла /bx_1c_import.php, что намного удобнее, но небезопасно! Переименуйте его и удалить сразу после использования

Включение отладки

В файле /bitrix/php_interface/dbconn.php добавляем константу

define("BX_CATALOG_IMPORT_1C_PRESERVE", true);

Для каждого обновляемого файла получим массив вида

Host: site.ru:443
Date: 2020-06-29 09:23:48
Module: ------------UPDATE-----------
Array
(
    [ACTIVE] => Y
    [PROPERTY_VALUES] => Array
        (
                )

            [339] => Array
                (
                    [n0] => Array
                        (
                            [VALUE] => 5055185210794
                            [DESCRIPTION] => 
                        )

                )

            [340] => Array
                (
                    [n0] => Array
                        (
                            [VALUE] => 5678000-01109
                            [DESCRIPTION] => 
                        )

                )

            [342] => Array
                (
                    [n0] => Array
                        (
                            [VALUE] => Товар 
                            [DESCRIPTION] => ВидНоменклатуры
                        )

                    [n1] => Array
                        (
                            [VALUE] => Товар
                            [DESCRIPTION] => ТипНоменклатуры
                        )

                    [n2] => Array
                        (
                            [VALUE] => Набор для вышивания "Поле маков". По картине Стива Томса ("Poppy Field", Steve Thoms). 25х25 см
                            [DESCRIPTION] => Полное наименование
                        )

                    [n3] => Array
                        (
                            [VALUE] => 1933.83
                            [DESCRIPTION] => Цена
                        )

                    [n4] => Array
                        (
                            [VALUE] => 0
                            [DESCRIPTION] => Вес
                        )

                )

        )

    [TMP_ID] => 1765642395
    [XML_ID] => 583b6b8d-d8f1-11e0-9980-1c6f65bc8a97
    [NAME] => Набор для вышивания MAIA Поле маков
    [DETAIL_TEXT] => Размер:25*25см (состав: канва Aida 16, цветная схема, нитки Anchor, игла, инструкция), счетный крест
    [DETAIL_TEXT_TYPE] => text
    [PREVIEW_TEXT] => Набор для вышивания "Поле маков". По картине Стива Томса ("Poppy Field", Steve Thoms). 25х25 см
    [PREVIEW_TEXT_TYPE] => text
    [DETAIL_PICTURE] => Array
        (
            [name] => 583b6b8d-d8f1-11e0-9980-1c6f65bc8a97_2b668b28-d6b7-11e5-afc8-001e676a37f6.jpg
            [size] => 84906
            [tmp_name] => /home/bitrix/www/upload/1c_catalog/import_files/58/583b6b8d-d8f1-11e0-9980-1c6f65bc8a97_2b668b28-d6b7-11e5-afc8-001e676a37f6.jpg
            [type] => image/jpeg
            [external_id] => 825a18b4d6a465891654f1227d1968e4
            [description] => 09
            [MODULE_ID] => iblock
            [old_file] => 122987
        )

    [PREVIEW_PICTURE] => Array
        (
            [name] => 583b6b8d-d8f1-11e0-9980-1c6f65bc8a97_2b668b28-d6b7-11e5-afc8-001e676a37f6.resize1.jpg
            [size] => 40462
            [tmp_name] => /home/bitrix/www/upload/1c_catalog/import_files/58/583b6b8d-d8f1-11e0-9980-1c6f65bc8a97_2b668b28-d6b7-11e5-afc8-001e676a37f6.resize1.jpg
            [type] => image/jpeg
            [external_id] => 825a18b4d6a465891654f1227d1968e4
            [description] => 09
            [MODULE_ID] => iblock
            [old_file] => 122986
        )

    [IBLOCK_SECTION] => Array
        (
            [0] => 1217
        )

    [BASE_WEIGHT] => 0
    [MODIFIED_BY] => 1
    [WF] => N
    [SEARCHABLE_CONTENT] => НАБОР ДЛЯ ВЫШИВАНИЯ MAIA ПОЛЕ МАКОВ
НАБОР ДЛЯ ВЫШИВАНИЯ "ПОЛЕ МАКОВ". ПО КАРТИНЕ СТИВА ТОМСА ("POPPY FIELD", STEVE THOMS). 25Х25 СМ
РАЗМЕР:25*25СМ (СОСТАВ: КАНВА AIDA 16, ЦВЕТНАЯ СХЕМА, НИТКИ ANCHOR, ИГЛА, ИНСТРУКЦИЯ), СЧЕТНЫЙ КРЕСТ
    [PREVIEW_PICTURE_ID] => 136021
    [DETAIL_PICTURE_ID] => 136022
    [ID] => 116896
    [IBLOCK_ID] => 22
    [RESULT] => 1
)

Поиск проблемного файла при получении во время импорта из 1С ответа Файл не является графическим

В файле /bitrix/modules/main/classes/general/file.php перед каждым

return GetMessage("FILE_BAD_FILE_TYPE");

вставляем:

print_r($arFile)

Получим массив вида

[
	[name] => 493d6d81-6ebb-11e3-8f8e-001e676a37f6_493d6d83-6ebb-11e3-8f8e-001e676a37f6.jpg
	[size] => 1051
	[tmp_name] => /home/bitrix/www/upload/1c_catalog/import_files/49/493d6d81-6ebb-11e3-8f8e-001e676a37f6_493d6d83-6ebb-11e3-8f8e-001e676a37f6.jpg
	[type] => image/jpeg
	[external_id] => b6c6e1bf0372a666323fd0a000999734
	[description] => PN-0146947
	[MODULE_ID] => iblock
	[old_file] => 
]

Теперь в файле import.xml мы можем найти id проблемного товара по имени изображения

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

Вместо print_r добавьте в файл /bitrix/modules/main/classes/general/file.php такой код

$log = '///////////////////////////////////////////////////////////////n';
$log .= date('Y-m-d H:i:s') . ' ' . print_r($arFile, true);
//$log .= str_replace(array('	', PHP_EOL), '', print_r($arFile, true)); //Для вывода в одну строку
file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/log.txt', $log . PHP_EOL, FILE_APPEND);

Выгрузка на сайт завершилась с ошибками. import.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.

1С вернул код ответа Ошибка открытия файла

Если вы убедились, что на жестком диске место есть, у вашего скрипта есть права доступа к папке /upload/ и сама папка существует, то попробуйте отключить сжатие при обмене с 1С.

Перейдите по ссылке /bitrix/admin/1c_admin.php?lang=ru&tabControl_active_tab=edit_catalog или используя навигацию Магазин > Настройки > Интеграция с 1С и снимите галочку с опции Использовать сжатие zip, если доступно

Теги:

1С Битриксphp

bg-girl

Эффективная работа с клиентами онлайн невозможна без интеграции сайта с системами «1С:Предприятие»

Что дает интеграция сайта и 1С?

  • Быстрый сбор и обработка заказов
  • Всегда актуальные сведения по наличию, ценам и статусу заказа
  • Все заказы клиента собраны на сайте (и онлайн, и оффлайн)
  • Синхронизация справочников 1С и интернет-магазина
  • Добавление одному товару разных цен в зависимости от характеристик
  • Выгрузка каталога товаров в «1С»

Вопросы к рассмотрению:

  1. Настройки интеграции на стороне 1С-Битрикс.
  2. Настройки интеграции на стороне 1С: Предприятие.
  3. Возможные варианты синхронизации данных.
  4. Наиболее частые ошибки обмена данными.

Вступление

Итак, дорогой читатель, если ты здесь, то тебя непременно интересуют вопросы, связанные с темой синхронизации «1С: Предприятие» и интернет-магазина, реализованном на базе «1С-Битрикс».
Разберемся кратко с терминологией, которая то и дело будет встречаться далее по тексту статьи.
Синхронизация – обмен данными закрытого цикла.
Узел обмена – одна из подсистем, участвующих в синхронизации. Так как в нашей программной инфраструктуре два узла обмена (сайт и система учёта), то называться наш процесс будет двусторонний (двунаправленный) обмен данными.
Вот и всё. Терминологии почти не будет.

С какой целью организуют синхронизацию 1С и сайта? Для ускорения процессов, актуализации данных по различным каналам продаж, аналитики работы компании, увеличения конкурентоспособности, улучшения сервиса и качества обслуживания и много чего ещё можно подтянуть к списку преимуществ использования такой возможности. Организация процесса обмена между сайтом и 1С крайне необходима в наше время интеграционных процессов в digital-сфере предоставления товаров и услуг.

Каким образом настроить синхронизацию между 1С и сайтом?

Где находятся Настройки обмена с сайтами в 1С-Битрикс    

Настройки синхронизации данных CMS «1C-Битрикс: Управление сайтом» со сторонними системами учёта следует проводить в административной части сайта. После входа в систему управления по ссылке https://domain.ru/bitrix (пишите ваше доменное имя), необходимо перейти в панель администрирования сайта и перейти по пунктам, указанным на скриншоте слева <-
Откроется первая вкладка «Каталог» раздела настроек интеграции с 1С, в котором будут отображены параметры импорта данных (из 1С в 1С-Битрикс).

Настройка параметров импорта

Процесс импорта данных из товароучётной системы на сайт, вкратце, сводится к такой схеме взаимодействия: 1С отправляет файл с данными на удалённый сервер, где находится сайт. После чего Битрикс выполняет необходимые действия на стороне веб-сайта (читает данные и совершает изменения в своих каталогах) и «отчитывается» перед инициатором обмена (т.е. 1С) о результатах проделанной работы. Обратите внимание, что инициатором обмена всегда выступает 1С — это связано с тем, что если ваш интернет-магазин подвергнется хакерской атаке и будет взломан (а рано или поздно любой более-менее интересный магазин подвергается как минимум попыткам взлома) то атаковать вашу 1С через сайт не получится, просто потому что Битрикс «не умеет» инициировать обмен с 1С и даже не знает про неё.

Чтобы не позволять злоумышленнику запускать соответствующий скрипт сайта на файловом уровне, необходимо создать соответствующую группу пользователей и наделить их необходимыми правами. Для этого администратор web-сайта должен создать отдельную группу пользователей для управления обменом данными и пользователя для системы управления содержимым.

Настройка импорта (на указанной выше вкладке) находится в зоне ответственности web-специалиста, который занимается вашем интернет-ресурсом. Именно он должен принять решение по таким нюансам, как: стоит ли выгружать товары и характеристики товаров в различные информационные блоки или в один, формировать ли ЧПУ URL (человеко-понятные адреса страниц) при загрузке товаров, генерировать ли preview-картинки при добавлении элементов каталога. Именно web-специалист подберёт наиболее удачную конфигурацию настроек обмена данными, исходя из особенностей вашего сайта и аппаратной инфраструктуры ваших информационных систем (хостинга).

После решения этих вопросов вашим web-специалистом, необходимо выполнить аналогичные настройки на стороне платформы «1С: Предприятие».

Рассмотрим пример настроек обмена данными со стороны платформы 1С, используя конфигурацию «1С: Управление торговлей (УТ)». Предварительно установите модуль интеграции с 1С-Битрикс, версии которого расположены на этой странице: https://1c.1c-bitrix.ru/ecommerce/download.php:

Модуль обмена с Битрикс скачать

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

Создадим новый узел обмена. Введите его осознанное наименование (настоятельно рекомендуется создавать различные узлы обмена данными по товарам и заказам, это связано, например, с тем, что товары обновляются в системе гораздо реже по сравнению с заказами, поэтому и конфигурации должны быть разными).

Настраиваем Узлы обмена с сайтами

Данные будем выгружать на сайт по следующему пути: https:[ваш домен]/bitrix/1c/1c_exchange.php. Введите данные пользователя, созданного на предыдущем шаге специально для осуществления обмена. Проверьте соединение с сайтом с помощью специальной кнопки в этом окне:

Настраиваем Путь для выгрузки товаров на сайт

Сделайте правильный выбор относительно того, выгружать ли номенклатуру полностью или только её изменённые объекты.  Определитесь с периодами обновлений данных и, желательно, настройте автоматическую выгрузку по расписанию.

Как настроить выгрузка информации о номенклатуре

Расписание обмена с сайтом настройки

Теперь перейдём со вкладки основных настроек узла обмена данными с сайтом на вкладку «Выгрузка товаров». Отметьте соответствующие опции, необходимо ли вам выгружать изображения товаров, прочие файлы, информацию по товарным остаткам. Например, в некоторых случаях удобно хранить изображения и описания в 1С и выгружать их на сайт (если у вас свой небольшой бизнес и вы сами управляете и сайтом и 1С), во многих других случаях, когда сайтом управляет внештатный контент-менеджер или сторонняя организация-подрядчик, изображения и описания хранятся и редактируются ими на сайте, а в «1С: Управление торговлей»  доступ ему не предоставляется из соображений безопасности.

Теперь необходимо определиться с каталогом товаров, который будет выгружаться на сайт и, в соответствии с этим каталогом, при обмене данными, 1С-Битрикс создаст соответствующие информационные блоки и карточки товаров на сайте. В представленной табличке первично необходимо добавить строку с наименованием блока каталога (его именование на сайте), выбрать из структуры необходимые разделы номенклатуры для выгрузки. Таких строк по разделам каталога может быть множество. 

выгрузка информации о номенклатуре

Таким образом, можно формировать уникальную структуру товарных позиций для сайта, коренным образом отличающуюся от исходной в системе учёта «1С: Предприятие». Используйте для этого инструмент «Настройка дерева групп»:

Настроить пользовательские группы товаров

Также откройте Форму настройки отбора, где можно задать специфические условия выгрузки данных:

Форма настройки отбора номенклатуры

Теперь можно попробовать выполнить выгрузку данных, нажав соответствующую кнопку «Выполнить обмен данными» из блока «Синхронизация данных». И если всё настроено правильно, вы увидите на сайте необходимую вам структуру товарных позиций. 

А как же заказы?

Теперь разберёмся с не менее важной составляющей интеграции данных – это обмен заказами товаров между сайтом и «1С: Предприятие».

Эти настройки будем выполнять на стороне сайта в его панели администрирования в том же блоке настроек «Интеграция с 1С», но во вкладке «Заказы»:

Настройка параметров обмена заказами с 1С

Предварительно, рассмотрим возможные сценарии интеграции данных по заказам:
А. Первый и наиболее очевидный вариант –все заказы отправляются в «1С: Предприятие» для последующей их обработки менеджером по продажам из конфигурации 1С. Вариант чаще всего используется в небольших интернет-магазинах.
Б. Вторым, менее очевидным, но достаточно полезным является вариант выгрузки заказов по определенным статусам состояния заказа. Этот вариант может быть использован, если, например, на сайте имеется возможность оплаты заказа и нам необходимо запустить немедленный процесс передачи заказа менеджеру, только если он оплачен, т.е. имеет соответствующий статус «оплачено».
В. Очередной вариант – это создание собственного статуса заказа. Такая возможность имеется на стороне CMS Bitrix, и, например, предварительно создав статус «Утверждён», можно начать оформления только тех заказов, которые лично (например, по телефону) подтвердились заказчиком. Соответственно, только такого типа заказы попадут в систему учёта «1С: Предприятие» (до недавнего времени такую схему использовал, например, Ситилинк).
После того, как платформа 1С «дала ответ» системе управления сайтом, что заказ загружен, можно переводить его в конечный статус (например, из имеющихся – это «Выполнен»).

Следующая вкладка «Профили обмена» используется из-за особенностей регистрации контрагентов различных типов на стороне «1С: Предприятие». Это связано с тем, что для создания различного типа пользователей нашего сайта (физических и юридических лиц) используется различный набор полей для их регистрации в системе «1С: Управление торговлей»:

Настройка полей экспорта на сайт

На этой вкладке производится настройка соответствия заполнения полей в 1С с полями, показанными покупателю на сайте во время оформления и заполнения им контактной информации.
Конечно же, не забываем, что после того, как мы всё настроили для обмена заказами со стороны системы управления «1С-Битрикс», нам необходимо выполнить аналогичные настройки на стороне платформы 1С.
Также переходим к узлам настройки обмена и выбираем заготовленный шаблон синхронизации по заказам «Обмен заказами»:

Настройка обмена документами между сайтом и 1С

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

Настройка соответствий загружаемых документов между сайтом и 1С

Также пробуйте выполнить обмен заказами из 1С по аналогии с синхронизацией товаров. И если всё настроено правильно, вы увидите заказы с сайта в системе «1С: Управление торговлей»:

Заказ на сайте:

Просмотр заказа на сайте

А вот этот заказ в 1С:

Просмотр заказа клиента в 1С

Просмотр заказа клиента в 1С

Соответствие созданных документов на сайте и загруженных в 1С:

Просмотр соответствия созданных документов на сайте и загруженных в 1С

Просмотр связанных документов

Работайте в 1С со статусами заказов, проводками, отгрузками и другой информацией, все изменения будут доступны на сайте после обмена данными.

Дополнительные возможности по обмену 1С с сайтом на Битрикс

Проблемы настройки обмена с 1С-Битрикс и решения 1С. (картинка https://vk.com/asinastra) Автор картинки: https://vk.com/asinastra

Рассмотрим наиболее часто встречающиеся проблемы интеграции продуктов 1С с системой управления 1С-Битрикс.

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

Решение: наименования свойств начинаются с числового значения. Первый знак – символ. Переименуйте их.


Проблема: импорт данных из 1С происходит ну очень медленно.

Решение: выключите на сайте в настройках инфоблока индексацию элементов и разделов, а также их свойств. Также попробуйте отключить хранение сессий в базе MySQL системы управления и смену идентификаторов сессий.


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

Решение: часто проблема возникает в результате работы PHP в режиме CGI. Передача данных авторизации HTTP в PHP в этом режиме не гарантируется. Обратитесь к вашему системному администратору для включения на сервере обработки .htaccess и поддержки mod_rewrite.


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

Решение: проверьте настройки файрволла или антивируса, они могут препятствовать корректной передаче файла или блокировать отправку файла на сервер. Может помочь отключение ZIP-сжатия в настройках интеграции с 1С, если настройка firewall или антивируса не помогло.


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

Решение: ошибка может быть связана с нехваткой ресурсов на масштабирование передаваемых на сервер изображений. Выходом из данной ситуации может служить отключение опции «Выгружать картинки» (вкладка «Выгрузка товаров» в настройке обмена в 1С). Также можно увеличить размер выделяемой памяти в настройках PHP (рекомендуемый параметр memory_limit для php указан на вкладке «Диагностика» CMS Битрикс. 


Проблема: поле объекта не обнаружено.

Решение: проверьте настройки интеграции с платформой 1С, установлены ли соответствия для полей заказа на вкладке «Профили обмена». Запомните, что поля Полное Наименование и Наименование обязательны для заполнения и это критично для 1С.


Если ничего не получается? Свяжитесь с нами, и работу по настройке интеграции 1С-Битрикс и 1С мы возьмём на себя.

  • Произошла ошибка на стороне сервера получен неизвестный статус импорта 504 gateway timeout
  • Произошла ошибка на стороне сервера ответ сервера failure файл не является графическим
  • Произошла ошибка на стороне сервера ответ сервера failure ошибка открытия файла импорта
  • Произошла ошибка на стороне сервера ответ сервера failure неверный тип файла
  • Произошла ошибка на сервере что это значит