Пожалуйста, еще раз проверьте ваши настройки обмена по этому чек-листу. В нём перечислены наиболее часто встречающиеся проблемы, которые составляют 70% обращений в Техподдержку. Кейсы, не вошедшие в чек-лист, перечислены ниже.
Проблема. При попытке обмена заказов в 1С выходит сообщение:
Выгружено товаров: 1
Выгружено картинок: 1
Выгрузка товаров успешно завершена
Не установлен реквизит «ГруппаДоступаККонтрагенту». Элемент не записан!
Не установлен реквизит «РегионДоставки». Элемент не записан!
Не установлен реквизит «Основная форма оплаты». Элемент не записан!
{Обработка.ОбменССайтом(3468)}: Ошибка при вызове метода контекста (Записать): Операция не выполнена!
Произошла ошибка: . По причине:
Не удалось найти/создать контрагента.
Не удалось обработать документы, загруженные с сервера.
Обмен не выполнен.
Не выгружен ни один заказ.
Обмен заказами завершен с ошибками!!!
Решение. Скорее всего, в используемой конфигурации предусмотрена обязательность заполнения указанных выше реквизитов для элемента справочника Контрагенты.
Проблема. Не меняется статус заказа при выгрузке из 1С
В соответствие с логикой синхронизации 1С и «1С-Битрикс: Управление сайтом», статус заказа меняется, если из 1С передались дата оплаты либо дата отгрузки товара. Чтобы эти даты попали в XML-файл, который формируется 1С и передаётся на сайт, нужно сформировать и провести нужные документы.
- В 1С:УТ зарегистрировать оплату заказа можно путем ввода на основании заказа документов оплаты, таких как Платежное поручение входящее и Приходный кассовый ордер.
- Отгрузка, как правило, регистрируется вводом на основании заказа документа Реализация товаров и услуг.
- Если в регистре Расчеты с контрагентами остаток по заказу <= 0, заказ считается оплаченным.
- Если в регистре Заказы покупателей остаток по заказу <= 0, заказ считается отгруженным. У конфигурации УПП принцип тот же.
Статусы
Статусы заказа — этапы, через которые проходит заказ во время обработки.
Подробнее…
, в которые будут переводиться заказы при получении дат оплаты и отгрузки, устанавливаются в настройках модуля интернет-магазина: параметры При получении оплаты переводить заказ в статус и При получении разрешения доставки переводить заказ в статус соответственно.
Проблема. 1С заполнена и настроена на обмен с «1С-Битрикс: Управление сайтом», который тоже настроен на интеграцию с 1С.
При нажатии на кнопку Выполнить обмен сразу появляется сообщение в 1С: Изменения товаров не зарегистрированы. Выгрузка товаров не произведена.
Решение. Возможные ошибки:
- Обычно появляется из-за некорректной настройки выгрузки товаров на вкладке Выгрузка товаров.
Стоит обратить внимание на то, что настраивается именно фильтр(!), а не выбираются поля для выгрузки. Если отмечается поле для фильтра, то значение этого поля в фильтре должно быть задано. - В 1С: Управление торговлей обратите внимание в справочнике Номенклатура на реквизит вид номенклатуры. Должен быть обязательно признак товар (наименование товар и тип номенклатуры товар).
- Если обмен осуществляется в режиме выгрузки изменений, а этих изменений с момента последнего обмена не зафиксировано, то возникает указанная ошибка. Стоит обратить внимание на следующие моменты:
- Если осуществляется полная выгрузка каталога на сайт, то настройка фильтра необязательна (нужно снять выделение со всех отмеченных полей на вкладке Выгрузка товаров).
- Изменения товара никаким образом не относятся к сайту, т.е. удаление товаров на сайте или их редактирование не фиксируется в 1С. При обмене выгружаются изменения товаров, произведённые именно в 1С с момента последней выгрузки.
Проблема. 1С заполнена и настроена на обмен по расписанию с «1С-Битрикс: Управление сайтом». Развернута копия базы 1С.
Изменения в «1С-Битрикс: Управление сайтом» не приходят в 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 — указываем в параметрах разные типы инфоблоков и устанавливаем флажок у опции Импортировать с учетом типа инфоблока.
Затем при настройке импорта в 1С, для выгрузки в нужный тип инфоблока указываем разные файлы: 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");?>
Проблема. Не удалось найти вид номенклатуры
В процессе обмена 1С с сайтов возникает ошибка: Не удалось найти вид номенклатуры: Услуга Не удалось найти вид номенклатуры: Товар Не удалось найти/создать номенклатуру. Не удалось обработать документы, загруженные с сервера.
Решение. Ошибка возникает, если в 1С нет типов номенклатуры Услуга и Товар. Эти типы номенклатуры критичны для процесса обмена данными с сайтом. Следует создать в 1С эти типы номенклатуры и только поле этого осуществлять обмен.
Проблема. В процессе обмена возникает ошибка Поле объекта не обнаружено.
В процессе обмена заказами возникает ошибка: {Обработка.ОбменССайтом(3271)}: Поле объекта не обнаружено (Наименование) >> ОтобразитьСостояние(«Идентификация контрагента: » + СтрокаДД.СтруктураДанныхКонтрагента.Наименование);
Решение. Проверьте настройки интеграции с 1С, закладка
Профили обмена
Подробнее…
: установлены ли соответствия для полей заказа.
Обратите внимание на поля Полное Наименование и Наименование. Эти поля критичны для 1С.
Проблема. Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
- Возникает ошибка следующего вида:
Выгружено товаров: 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 Выгрузка товаров завершена с ошибками!
Решение. Ошибка скорее всего связана с нехваткой ресурсов на масштабирование передаваемых на сервер изображений. Выходом из данной ситуации может служить отключение опции Выгружать картинки (вкладка Выгрузка товаров в настройке обмена в 1С).
Также можно увеличить размер выделяемой памяти в настройках PHP (параметр memory_limit), для этого следует обратиться к хостинг-провайдеру.
- Возникает ошибка следующего вида:
Выгружено товаров: 46 Выгружено картинок: 0 Произошла ошибка на стороне сервера. Получен неизвестный статус импорта. Обмен не выполнен Ответ сервера: DB query error. Please try later. Выгрузка товаров завершена с ошибками!
Решение. Ошибка может возникать в случае некорректной передачи файла на сервер. В процессе отправки файл может «обрезаться» и терять свою целостность, в итоге файл на сервер передаётся некорректным по содержанию.
Причиной может служить прокси-сервер, через который осуществляется обмен. Попробуйте осуществить выгрузку не через прокси-сервер. Также попробуйте отключить опцию Использовать сжатие zip, если доступно в настройках интеграции с 1С — возможно, на сервере не поддерживается ZIP-сжатие. Проверьте настройки интеграции с 1С.
Проблема. Ошибка Произошла ошибка на стороне сервера. Файл не отправлен
В процессе обмена возникает такого вида ошибка:
Выгружено товаров: 3 Выгружено картинок: 0 Выгрузка товаров успешно завершена Выгружено заказов: 1 Произошла ошибка на стороне сервера. Файл не отправлен (C:Documents and SettingsUserLocal SettingsTempv8_5075_63.zip). Обмен не выполнен Ответ сервера: Файл для импорта пуст. Обмен заказами завершён с ошибками!
Решение. Причины возникновения ошибки могут быть следующие:
- На компьютере, где установлена 1С, имеется файрволл или антивирус, препятствующий корректной передаче файла или блокирующий отправку файла на сервер.
- Некорректно работает функции расширения ZIP, вследствие чего из архива не распаковываются файлы. Для решения возникшей проблемы рекомендуется:
- Установить последние стабильные версии обновлений модуля интернет-магазина.
- На время обмена отключить на локальной машине все блокирующее ПО (антивирус, файрволлы и т.д.)
- Отключить ZIP-сжатие в настройках интеграции с 1С.
- В корне сайта в файл .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);
Проблема. Не работает авторизация при обмене данными с 1С
Решение. Часто проблема возникает в результате работы PHP в режиме CGI. В этом режиме есть проблемы с передачей данных авторизации HTTP в PHP. Можно это проверить, посмотрев phpinfo() в разделе: Server API: CGI. Можно обойти проблему, но необходимо чтобы на сервере была включена обработка .htaccess и поддержка mod_rewrite. Выполните следующие действия:
Для проверки работоспособности 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С и картинки не выгрузились в первый раз на сайт, то в настройках модуля обмена выполните обмен через кнопку принудительной полной выгрузке картинок.
А началось все довольно безобидно. Позвонил старый клиент у которого уже года 2-3 работает магазин в связке с 1С и пожаловался что обмен перестал работать. Полез я к нему в 1С и вижу, что обмен действительно падает причем с разными ошибками и на разных файлах.
Первое что сделали — перешли на более мощный тариф хостинга. Половина зоопарка ошибок исчезла. Однако ошибка
Выгрузка на сайт завершилась с ошибками.
import.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Неверный тип файла, либо превышен максимальный размер файла
осталась и уходить не собиралась.
Пробовали выгружать и на тиражный магазин и на VDS на который другая 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С-Битрикс» работал быстро и эффективно, ему нужна комплексная автоматизация всех бизнес-процессов. Взаимодействие с клиентами, продажа товаров и услуг, корректная работа технической поддержки – все это требует особого внимания. Наладить эти процессы поможет интеграция вашего сайта и «1С».
Какие возможности дает интеграция сайта и «1С»:
- Быстрый сбор и обработка заказов
- Всегда актуальные сведения по наличию, ценам и статусу заказа
- Все заказы клиента собраны на сайте (и онлайн, и оффлайн)
- Синхронизация справочников «1С» и интернет-магазина
- Добавление одному товару разных цен в зависимости от характеристик
- Выгрузка каталога товаров в «1С»
Синхронизация сайта и учетной системы со стороны «1С-Битрикс»
Сперва рассмотрим, как выглядит процесс обмена данными между сайтом и «1С». Программа формирует и отправляет документ на сервер, где хранится ваш сайт. Затем сайт распознает документ в качестве «инструкции», меняет данные в каталогах, после чего отчитывается об изменениях программе «1С». Инициатором процесса всегда выступает «1С». Это сделано на случай взлома сайта злоумышленниками. Все базы данных хранятся в «1С», но доступ к ней через сайт получить невозможно. Запрос с изменениями данных может поступить только от самой программы к сайту, но обратный процесс невозможен. Такой подход обеспечивает надёжную защиту вашим базам данных.
Далее необходимые действия, связанные с выгрузкой товаров, созданием раздельных информационных блоков, формированием URL-ссылок на товары и разделы магазина, совершает ваш web-мастер. Дело в том, что конференция обмена данными требует индивидуального подхода, исходя из ваших мощностей, настроек сервера и хостинга.
Когда конфигурация обмена данными выполнена, сделаны все необходимые настройки сайта, необходимо провести аналогичные настройки на стороне «1С».
Хотите настроить обмен данными между сайтом и «1С»?
Обратитесь к нашим специалистам. Ответим в течение 10 минут и проведем бесплатную консультацию.
Получить консультацию
Мы разберем пример настроек программы на базе «1С:Управление нашей фирмой». Чтобы произвести настройки, установите модуль интеграции с «1С-Битрикс» подходящий для вашей конфигурации. Сделать это можно на сайте: https://1c.1c-bitrix.ru/ecommerce/download.php
Когда все данные подготовлены, информация о товарах и сделках, прочая необходимая номенклатура заведена в базу, можно приступать к настройкам. Чтобы это сделать, на рабочем столе программы перейдите во вкладку Администратор – Синхронизация данных – Узлы обмена с сайтами.
В данной вкладке необходимо создать новый узел обмена. Рекомендуем создавать разные узлы обмена по товарам и заказам. Заказы обновляются чаще, чем товары, поэтому лучше, чтобы эти данные находились в отдельной базе.
Чтобы выгрузить данные на сайт, используйте следующий путь: https:[ваш домен]/bitrix/1c/1c_exchange.php. Введите данные пользователя, чтобы осуществить обмен данными. Далее нужно проверить соединение с сайтом, сделайте это, как показано на картинке:
Далее вы можете выбрать несколько вариантов передачи данных: выгрузка номенклатуры (все сразу или только измененные объекты), выставить периоды обновлений, настроить автоматическую выгрузку данных с периодичностью.
Продолжаем работу на новой вкладке – «Выгрузка товаров». Тут можно отметить соответствующие опции: выгрузка изображений по товарам, дополнительные файлы, информация об остатках товаров. Если вы сами управляете своим сайтом из «1С», лучше хранить изображения и описания товаров прямо в программе. Однако если контентом занимается сторонний специалист, у которого нет доступа к учетной программе, он будет редактировать контент с помощью инструментов самого сайта, и тогда хранить такие материалы в «1С» вам не нужно.
Далее настройте автоматическую выгрузку товаров на сайт. Это делается с помощью настройки каталога. В ходе обмена данными «1С-Битрикс» сможет автоматически создавать нужные блоки и карточки товаров на сайте. В начале таблице добавьте название каталога, далее выберите необходимые разделы номенклатуры для выгрузки.
Таким образом, можно формировать уникальную структуру товарных позиций для сайта, коренным образом отличающуюся от исходной в системе учета «1С: Предприятие». Используйте для этого инструмент «Настройка дерева групп»:
Можно формировать целые структуры товарных позиций для вашего сайта. Чтобы это сделать перейдите во вкладку «Настройка дерева групп», как показано на картинке:
«Форма настройки отбора» позволит задать специфические условия выгрузки для некоторых данных:
Когда все настройки проведены, можно выгрузить данные на сайт. Нажмите кнопку «Выполнить обмен данными», кнопка расположена в блоке «Синхронизация данных». Если все настройки проведены верно, на сайте появятся измененные товарные позиции.
Нет собственного специалиста по «1С-Битрикс» или «1С»?
«ГЭНАДЛЬФ» работает в области «1С-Битрикс» и «Битрикс24» с 2008 года. Обратитесь к нам, и мы поможем решить трудности с настройкой системы.
Обратиться к специалисту
Обмен дынными о заказанных товарах между сайтом и «1С»
Эти настройки будем выполнять на стороне сайта в его панели администрирования в том же блоке настроек «Интеграция с «1С», но во вкладке «Заказы»:
Перейдите в раздел администрирования сайта в «1С-Битрикс», далее вам необходимо перейти в «Интеграция с «1С» во вкладке «Заказы», как показано на картинке.
Три возможных варианта интеграции данных по заказам
Вариант 1. Все полученные с сайта заказы попадают напрямую в «1С». Затем менеджер обрабатывает заказ и проводит дальнейшие операции в программе.
Вариант 2. При заказе в программу попадают данные о статусе заказа. Такой вариант подходит, если на вашем сайте работает системы онлайн-оплаты. В этом случае информация о заказе поступит менеджеру непосредственно после оплаты.
Вариант 3. Можно создать собственную, более расширенную, систему статусов. Например, «Заказ подтвержден». И настроить передачу данных по такому заказу, исходя из совершенного действия. Например, после подтверждения заказа по звонку или сообщению в чате.
При срабатывании одного из этих сценариев «1С» передает данные сайту, что заказ оформлен и заведен в базу.
На картинке показана вкладка, на которой можно настроить соответствие заполнение полей в «1С» с теми полями, которые покупатель видит на сайте при оформлении заказа.
Важно помнить: когда вы производите настройки обмена данными со стороны «1С-Битрикс», нужно задать аналогичные настройки и в «1С».
Перейдите к узнал настройки обмена данными и установите настройки по заготовленному шаблону синхронизации по заказам через «Обмен заказами»:
Все настройки по интеграции лучше доверить специалисту по «1С». Однако стоит привлечь в качестве консультанта вашего менеджера, который имеет широкое представление о товарах. Так интеграция пройдет с учетов всей специфики.
Так выглядит заказ на сайте:
Так выглядит этот же заказ в «1С»:
Мы получаем полное соответствие созданных документов на сайте и загруженных в «1С».
После завершения настроек вы сможете работать со статусами заказов, проводками, контролировать отгрузки и получать всю необходимую информацию о статусе сделке. Все процессы на сайте будут синхронизированы с «1С».
Частые проблемы при интеграции сайта и «1С»
Если во время интеграции что-то пошло не так, вы могли совершить одну из частых ошибок. Приводим такие ошибки и решения к ним.
Проблема: обмен не выполнен. Ответ сервера: Ошибка импорта метаданных.
Решение: наименования свойств начинаются с числового значения. Первый знак – символ. Переименуйте их.
Проблема: импорт данных из «1С» происходит ну очень медленно.
Решение: необходимо отключить индексацию элементов и разделов вместе с их сайтами в настройках информационного блока. Также рекомендуем отключить хранение сессий в базе MySQL. Данные настройки относятся к системе управления и смене идентификаторов сессий.
Проблема: при обмене данными с «1С» не работает авторизация.
Решение: такие ошибки возникают в ходе работы PHP в режиме CGI. Передача данных авторизации HTTP в PHP в этом режиме не гарантируется. Вам необходимо включить на сервере обработки .htaccess и поддержки mod_rewrite.
Проблема: произошла ошибка на стороне сервера. Файл не отправлен.
Решение: Нужно проверить настройки файрволла или вашего антивируса. Рекомендуем также отключить ZIP-сжатия. Это делается в настройках интеграции с «1С».
Проблема: произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Решение: ошибка может быть связана с нехваткой ресурсов на масштабирование передаваемых на сервер изображений. Выходом из данной ситуации может служить отключение опции «Выгружать картинки» (вкладка «Выгрузка товаров» в настройке обмена в «1С»). Также можно увеличить размер выделяемой памяти в настройках PHP (рекомендуемый параметр memory_limit для php указан на вкладке «Диагностика» «CMS-Битрикс».
Проблема: поле объекта не обнаружено.
Решение: сперва проверьте настройки обмена данными с «1С». Важно, чтобы было установлено соответствия для полей заказа, это делается на вкладке «Профили обмена». Обратите внимание: поле «Наименование» и поля после него должны быть заполнены обязательно, это крайне важно для «1С».
Не нашли решения свой проблемы?
Получите бесплатную консультацию от нашего специалиста, поможем решить проблему и провести настройки правильно.
Получить консультацию
Увидели такую ошибку и думаете «в коде кто-то накосячил»? А вот совсем не факт.
Об удивительной причине по которой обмен 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С появилась отладочная информация вида
Отсюда можно видеть, что одна из картинок имеет 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
Эффективная работа с клиентами онлайн невозможна без интеграции сайта с системами «1С:Предприятие»
Что дает интеграция сайта и 1С?
- Быстрый сбор и обработка заказов
- Всегда актуальные сведения по наличию, ценам и статусу заказа
- Все заказы клиента собраны на сайте (и онлайн, и оффлайн)
- Синхронизация справочников 1С и интернет-магазина
- Добавление одному товару разных цен в зависимости от характеристик
- Выгрузка каталога товаров в «1С»
Вопросы к рассмотрению:
- Настройки интеграции на стороне 1С-Битрикс.
- Настройки интеграции на стороне 1С: Предприятие.
- Возможные варианты синхронизации данных.
- Наиболее частые ошибки обмена данными.
Вступление
Итак, дорогой читатель, если ты здесь, то тебя непременно интересуют вопросы, связанные с темой синхронизации «1С: Предприятие» и интернет-магазина, реализованном на базе «1С-Битрикс».
Разберемся кратко с терминологией, которая то и дело будет встречаться далее по тексту статьи.
Синхронизация – обмен данными закрытого цикла.
Узел обмена – одна из подсистем, участвующих в синхронизации. Так как в нашей программной инфраструктуре два узла обмена (сайт и система учёта), то называться наш процесс будет двусторонний (двунаправленный) обмен данными.
Вот и всё. Терминологии почти не будет.
С какой целью организуют синхронизацию 1С и сайта? Для ускорения процессов, актуализации данных по различным каналам продаж, аналитики работы компании, увеличения конкурентоспособности, улучшения сервиса и качества обслуживания и много чего ещё можно подтянуть к списку преимуществ использования такой возможности. Организация процесса обмена между сайтом и 1С крайне необходима в наше время интеграционных процессов в digital-сфере предоставления товаров и услуг.
Каким образом настроить синхронизацию между 1С и сайтом?
Настройки синхронизации данных CMS «1C-Битрикс: Управление сайтом» со сторонними системами учёта следует проводить в административной части сайта. После входа в систему управления по ссылке https://domain.ru/bitrix (пишите ваше доменное имя), необходимо перейти в панель администрирования сайта и перейти по пунктам, указанным на скриншоте слева <- |
Процесс импорта данных из товароучётной системы на сайт, вкратце, сводится к такой схеме взаимодействия: 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С. Вариант чаще всего используется в небольших интернет-магазинах.
Б. Вторым, менее очевидным, но достаточно полезным является вариант выгрузки заказов по определенным статусам состояния заказа. Этот вариант может быть использован, если, например, на сайте имеется возможность оплаты заказа и нам необходимо запустить немедленный процесс передачи заказа менеджеру, только если он оплачен, т.е. имеет соответствующий статус «оплачено».
В. Очередной вариант – это создание собственного статуса заказа. Такая возможность имеется на стороне CMS Bitrix, и, например, предварительно создав статус «Утверждён», можно начать оформления только тех заказов, которые лично (например, по телефону) подтвердились заказчиком. Соответственно, только такого типа заказы попадут в систему учёта «1С: Предприятие» (до недавнего времени такую схему использовал, например, Ситилинк).
После того, как платформа 1С «дала ответ» системе управления сайтом, что заказ загружен, можно переводить его в конечный статус (например, из имеющихся – это «Выполнен»).
Следующая вкладка «Профили обмена» используется из-за особенностей регистрации контрагентов различных типов на стороне «1С: Предприятие». Это связано с тем, что для создания различного типа пользователей нашего сайта (физических и юридических лиц) используется различный набор полей для их регистрации в системе «1С: Управление торговлей»:
На этой вкладке производится настройка соответствия заполнения полей в 1С с полями, показанными покупателю на сайте во время оформления и заполнения им контактной информации.
Конечно же, не забываем, что после того, как мы всё настроили для обмена заказами со стороны системы управления «1С-Битрикс», нам необходимо выполнить аналогичные настройки на стороне платформы 1С.
Также переходим к узлам настройки обмена и выбираем заготовленный шаблон синхронизации по заказам «Обмен заказами»:
Настройки интеграции по заказам должен выполнять специалист 1С. Неочевидный момент, но к процессу настроек рекомендуется подключить и менеджера по работе с клиентами, чтобы учесть специфику ваших бизнес-процессов при работе с покупателями.
Также пробуйте выполнить обмен заказами из 1С по аналогии с синхронизацией товаров. И если всё настроено правильно, вы увидите заказы с сайта в системе «1С: Управление торговлей»:
Заказ на сайте:
А вот этот заказ в 1С:
Соответствие созданных документов на сайте и загруженных в 1С:
Работайте в 1С со статусами заказов, проводками, отгрузками и другой информацией, все изменения будут доступны на сайте после обмена данными.
Проблемы настройки обмена с 1С-Битрикс и решения 1С. (картинка 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С мы возьмём на себя.