Svinkovod.ru

Бытовая техника
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Битрикс и интеграция; с; 1С краткий; ликбез для; начинающих

Битрикс и интеграция с 1С
[краткий ликбез для начинающих]

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

Осталось только загрузить реальный каталог из 1С — это означает, что впереди еще много работы. Придется добиться, чтобы все нужные данные выгружались вообще и выгружались в нужное место. Иначе придется подгонять проект под структуру данных из 1С.

Вопрос интеграции поднимается на каждом более-менее крупном интернет-магазине. Часто разработчикам, не только начинающим, трудно понять, как работает механизм обмена. Полезная информация разбросана по интернету, будет удобно собрать её в одном месте.

Цели статьи

  • Коротко изложить основные возможности обмена и его алгоритм работы;
  • Дать ссылки на официальные и прочие полезные источники;
  • Ответить на частые вопросы;
  • Прояснить, с чего начать интеграцию и как ее успешно завершить.

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

В битриксе есть встроенный функционал для обмена с 1С, благодаря чему любой обмен должен настраиваться в пару кликов.
Однако, для этого 1С должна быть “чистой” типовой конфигурации. На деле каждая первая 1С “нетиповая”, то есть модифицирована так или иначе.

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

Что умеет штатный механизм обмена

  • Импорт каталога товаров из 1С на сайт;
  • Экспорт каталога товаров с сайта в 1С;
  • Экспорт заказов с сайта в 1С;
  • Импорт заказов из 1С на сайт;
  • Импорт справочников (highload-инфоблоков) из 1С на сайт.

Полезные ссылки

Алгоритм выгрузки данных на сайт

Инициатором обмена всегда выступает 1С, по соображениям безопасности — даже если сайт взломают, атаковать 1C будет невозможно, так как сайт не умеет обращаться к 1С и вообще ничего не знает про нее.

Обмен работает посредством последовательных http GET/POST запросов от 1С к сайту, к скрипту /bitrix/admin/1c_exchange.php.

Обмен состоит из нескольких ключевых этапов

  • Авторизация 1с на сайте;
  • Загрузка файлов из 1с на сайт;
  • Чтение xml файлов во временную таблицу;
  • Обработка данных.

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

Процесс выгрузки данных из 1С на сайт можно представить в виде следующей схемы

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

Полезные ссылки

Формат данных для обмена с 1С

1C загружает на сайт xml файлы, и картинки при импорте товаров.

Если включено zip-сжатие в настройках обмена на стороне сайта (по-умолчанию включено), то 1C загружает один архив, иначе все файлы по отдельности.

Формат xml файлов

Информация в файлах структурирована в соответствии со стандартом обмена коммерческой информацией CommerceML2.

Информация о товарах передается на сайт в следующих файлах

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

Файлы import.xml и offers.xml содержат описания свойств, типов цен, и прочую информацию, которая относится в равной степени ко всем товарам/ТП.

Если каталог большой, в целях оптимизации, описания выгружаются в отдельных “заголовочных” файлах. Это такие же файлы import.xml и offers.xml, только не содержат ничего кроме описаний. В таком случае заголовочные файлы обрабатываются только в самом начале обмена.

Информация о заказах передается на сайт в следующих файлах

    — документы (заказы); — контрагенты (пользователи-покупатели).

Полезные ссылки

Куда на сайт загружаются файлы выгрузки

В папку /upload/1c_catalog/. Перед каждым обменом эта папка очищается. То есть в этой папке всегда находятся файлы последнего обмена.

Можно включить "режим отладки” обмена — отключить перезапись файлов в папке 1c_catalog. Таким образом можно отключить удаление файлов выгрузки после завершения обмена.

Для этого нужно объявить константу в файле dbconn.php:

Теперь вместо удаления папка будет переименовываться, к ней будет добавляться числовой идентификатор.

Включенный режим отладки обмена

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

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

Что нужно для обмена на стороне сайта

  • редакция битрикса “Малый бизнес” или “Бизнес”
  • создать пользователя и группу “Обмен с 1С” для обмена, настроить права
    • разрешить группе выполнять выгрузку товаров/заказов (в настройках параметров)
    • разрешить группе доступ на чтение папки /bitrix/admin/

    Что нужно для обмена на стороне 1С

    Полезные ссылки

    Структура каталога в 1С и на сайте

    Что делать если структура каталога в 1С не совпадает со структурой на сайте?

    В 1С можно задать какие товары и разделы выгружать.

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

    Так же можно задать условия отбора товара (не все товары нужны на сайте) для выгрузки на сайт и свойства (в 1С много св-в, не все нужны на сайте).

    Виды выгрузок из 1С

    Полная выгрузка

    Происходит при выгрузке данных на сайт в первый раз, или при ручном запуске.

    • Выгружаются все товары.
    • Картинки выгружаются только у новых или измененных товаров.

    Краткая выгрузка

    Происходит часто, между полными, содержит только изменения по ценам и остаткам.

    Полная принудительная выгрузка

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

    Обычно используется только при отладке обмена.

    С чего начать интеграцию c 1C

    Если вы делаете новый сайт и планируете интеграцию с 1С в дальнейшем, то первым следует установить битрикс и сделать тестовый обмен. Вот, что это даст:

    • Будет создан тип иблока;
    • Будет создан иблок;
    • Будут созданы св-ва и справочники;
    • Будут созданы разделы каталога;
    • Будут созданы элементы каталога;
    • Будут созданы торговые предложения.

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

    Как завершить интеграцию

    Сопоставить структуры данных на сайте со структурой в 1С — вот главная цель интеграции.

    Чтобы успешно завершить интеграцию, когда у вас уже есть полностью работающий проект, с актуальными данными, то нужно добиться, чтобы выгрузка из 1С проиcходила:

    • В существующий инфоблок;
    • В существующие св-ва;
    • В существующие разделы инфоблока;
    • В существующие товары и торговые предложения;
    • В существующие типы цен.

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

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

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

    Подведем итоги

    Начинать разработку сайта с настройки обмена с 1С по разным причинам не имеет смысла.

    Однако, если вы заранее знаете, что вам предстоит делать интеграцию — начните с изучения файлов выгрузки и тестовой выгрузки на сайт «как есть».

    Чем раньше вы поймете, что предстоит дорабатывать в обмене, чтобы все работало как надо, тем лучше.

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

    Процесс обмена Битрикса и 1С

    Неопытным разработчикам кажется, что это процесс обмена Битрикса и 1С это очень сложный процесс, но с опытом понимаешь, что это не просто сложно: это вообще полная жесть. Попробую описать словами этот процесс. Добро пожаловать в ад описание обмена с 1с.

    Инициатором любого обмена является 1С, сайт не загружает ничего в 1С, сайт только принимает запросы и отдаёт результат. По умолчанию, 1С обращается к скрипту /bitrix/admin/1c_exchange.php. Этот путь указывается в настройках обмена в самой 1С. Из коробки в этом файле включается файл /bitrix/modules/sale/admin/1c_exchange.php. Если открыть файл, то видим там подключение нескольких компонентов в зависимости от $_GET["type"]. В общем случае интересуют два из них:

    bitrix:catalog.import.1c – импорт каталога.

    bitrix:sale.export.1c – экспорт заказов.

    Импорт товаров из 1С

    Импорт начинается с авторизации, посылается запрос на /bitrix/admin/1c_exchange.php?type=catalog&mode=checkauth с передачей логина и пароля пользователя сайта, которые указали в настройках обмена. После авторизации сайт выдает ID сессии.

    Далее идёт инициализация обмена, URL /bitrix/admin/1c_exchange.php?type=catalog&mode=init&sessid=ID_Сессии . На этом этапе в сессии инициализируется массив данных обмена $_SESSION["BX_CML2_IMPORT"] и сайт отдаёт параметры обмена: возможность использования zip, лимит размера файла и т.д. Также на этом этапе очищается папка для файлов выгрузки. Скорее всего, это будет папка /upload/1c_catalog/. Для отладки можно включить сохранение старых файлов обмена, тогда при новом обмене старые данные будут перемещаться в отдельные папки: 1c_catalog0, 1c_catalog1 и т.д.. Для сохранения данных нужно объявить константу в dbconn.php:

    После этого 1С начинает подготовку данных и далее посылает их POST-запросом на сайт частями, URL: /bitrix/admin/1c_exchange.php?type=catalog&mode=file&filename=ИМЯ_ФАЙЛА.zip&sessid=ID_Сессии . Запрос продолжается, пока файлы не будут переданы полностью.

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

    В выгрузке могут участвовать xml-файлы:

    • import.xml — товары, разделы, типы цен, склады, свойства товаров и единицы измерения;
    • offers.xml — торговые предложения товаров и их свойства;
    • prices.xml — цены торговых предложений(в новых версиях);
    • rests.xml — остатки торговых предложений(в новых версиях);
    • references.xml — пользовательские справочники (highload-инфоблоки, в новых версиях).

    Картинки загружаются в папку /upload/1c_catalog/import_files/.

    Далее начинаются обработка файла и сам импорт данных, 1С раз за разом обращается к URL /bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=ИМЯ_ФАЙЛА_ВЫГРУЗКИ.xml , где ИМЯ_ФАЙЛА_ВЫГРУЗКИ — import.xml, offers.xml и т.д. Импорт завершается, когда сайт отдаёт слово "success". За обработку файла выгрузки отвечают классы CIBlockXMLFile (/bitrix/modules/iblock/classes/mysql/cml2.php) и CIBlockCMLImport (/bitrix/modules/iblock/classes/general/cml2.php).

    Импорт состоит из нескольких шагов:

    Очистка временной таблицы (таблица b_xml_tree)

    Метод CIBlockXMLFile::DropTemporaryTables(). Обычный drop таблицы b_xml_tree.

    Создание временной таблицы

    Метод CIBlockXMLFile::CreateTemporaryTables(). Здесь создается таблица b_xml_tree. Можно, кстати, задать storage engine этой таблицы, равно как и всех создаваемые битриксом, с помощью определения константы MYSQL_TABLE_TYPE.

    Чтение файла во временную таблицу

    Индексация временной таблицы

    Импорт метаданных

    Импорт разделов

    Деактивация разделов и пересчёт левой и правой границ для разделов

    Методы CIBlockCMLImport::DeactivateSections и CIBlockCMLImport::SectionsResort.

    Импорт элементов

    Самый длительный процесс, на этом этапе добавляются и обновляются новые товары (если загружается import.xml) или обновляются цены и остатки (если загружаетс offers.xml). Здесь задействован метод CIBlockCMLImport::ImportElements, который вызывает CIBlockCMLImport::ImportElement для товаров или CIBlockCMLImport::ImportElementPrices для остатков/цен.

    Деактивация элементов

    Методы CIBlockCMLImport::DeactivateSections и CIBlockCMLImport::SectionsResort.

    success

    Импорт файла завершен, сайт отвечат словом "success", 1С считает обмен успешным. При необходимости начинается импорт следующего файла.

    Некоторые шаги могут выполняться за несколько запросов, порциями по несколько секунд (это время настраивается параметров "Интервал одного шага в секундах" в настройках интеграции с 1С в админке Битрикса).

    Модификация

    На шаге 9, т.е. по окончании обработки файла выгрузки (NB: одного файла, например, товаров или предложений) вызывается событие OnSuccessCatalogImport1C модуля catalog. Аргументы обработчика — параметры компонента обмена и путь к файлу выгрузки.

    Также для изменения процесса обмена можно использовать обычные события, например, OnBeforeIBlockElementUpdate или OnBeforeProductAdd. В обработчике, чтобы определить, что событие вызвано именно во время обмена с 1С, я использую такое костыльное условие:

    Ну и, если ничего нельзя решить событиями, всегда можно полностью изменить процесс обмена, скопировав и изменив файл /bitrix/admin/1c_exchange.php , компонент bitrix:catalog.import.1c и класс CIBlockCMLImport .

    Отключение проверки источника запроса

    Как и в случае с выгрузкой товаров, при импорте товаров есть проверка источника запроса. Можно отключить её следующим кодом:

    Экспорт заказов в 1С

    Обмен заказами начинается с авторизации с помощью логина и пароля, который указали в настройках обмена. После авторизации сайт выдает ID сессии, URL: /bitrix/admin/1c_exchange.php?type=sale&mode=checkauth .

    После получения ID сессии идёт инициализация обмена, URL: /bitrix/admin/1c_exchange.php?type=sale&mode=init&sessid=ID_Сессии . На этом этапе сайт отдаёт настройки обмена со стороны сайта.

    Для получения списка заказов запрашивается URL /bitrix/admin/1c_exchange.php?type=sale&mode=query&sessid=ID_Сессии . Выгружаются заказы с полями EXTERNAL_ORDER = "N", UPDATED_1C = "N" и обновившиеся после последней успешной выгрузки в 1С (это проверяется по времени из свойства "last_export_time_committed_/bitrix/admin/1c_excha" модуля sale).

    Флаг EXTERNAL_ORDER указывает, что заказ создан в 1С и его выгрузка в 1С не требуется.

    Флаг UPDATED_1C после успешного импорта из 1С на сайте устанавливается в "Y" и такие заказы не участвуют в дальнейших экспортах до их обновления на сайте. Во время обновлений заказов на сайте UPDATED_1C устанавливается в "N".

    После обработки заказов 1С для завершения обмена запрашивает URL /bitrix/admin/1c_exchange.php?type=sale&mode=success&sessid=ID_Сессии . При этом в свойство "last_export_time_committed_/bitrix/admin/1c_excha" модуля sale записывается время запроса списка заказов (НЕ текущее время, т.к. с момента запроса заказов до их обработки могли добавиться заказы и они попадут в следующую выгрузку с сайта).

    Модификация

    В экспорте заказов участвуют файл /bitrix/admin/1c_exchange.php , компонент bitrix:sale.export.1c и класс CSaleExport . Какие-либо события здесь отсутствуют, поэтому для модификации этого процесса нужно заменить компонент на свой, создать класс-наследник CSaleExport и заменить вызовы в компоненте на него. В последних версиях Битрикс этот класс стал относительно читабельным, в старых там была просто простыня из php и "xml".

    Отключение проверки источника запроса

    С версии 15.5 добавлена дополнительная проверка и если вызвать просто /bitrix/admin/1c_exchange.php?type=sale&mode=query , то получим ошибку "failure Ошибка проверки источника запроса. Обновите модуль обмена". Если нет желания возиться с sessid, то можно отключить проверку источника запроса, для этого нужно выполнить:

    Статья будет дополняться по мере появления новой информации и вдохновения.

    Протокол обмена с сайтом

    Данный открытый протокол разработан компаниями «1С» и «1С-Битрикс».

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

    • выгрузка на сайт торговых предложений (каталогов продукции), данных об остатках на складах (с разбивкой и сводно), данных только о ценах и остатках (без описания номенклатуры);
    • обмен информацией о заказах.

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

    В обоих случаях инициатором обмена выступает система «1С: Предприятие». Обмен электронными документами осуществляется в соответствии с правилами и форматами, описанными в стандарте CommerceML 2.

    При инициализации взаимодействия устанавливается HTTP соединение. Система «1С: Предприятие» запрашивает у сайта необходимые параметры, такие, как максимальный объем пакета, поддержка сжатия и др. На основании этих данных система 1С: Предприятие формирует XML сообщения и передает их на сайт.

    Выгрузка на сайт

    Данные для публикации на сайте выгружаются одним пакетом.

    A. Начало сеанса

    Выгрузка данных начинается с того, что система «1С: Предприятие» отправляет http-запрос следующего вида:
    http:// / /1c_exchange.php? type=catalog& mode=checkauth.

    • слово «success»;
    • имя Cookie;
    • значение Cookie.

    Примечание. Все последующие запросы к системе управления сайтом со стороны «1С: Предприятия» содержат в заголовке запроса имя и значение Cookie.

    B. Запрос параметров от сайта

    Далее следует запрос следующего вида:
    http:// / /1c_exchange.php? type=catalog& mode=init

    1. zip=yes, если сервер поддерживает обмен в zip-формате — в этом случае на следующем шаге файлы должны быть упакованы в zip-формате
      или
      zip=no — в этом случае на следующем шаге файлы не упаковываются и передаются каждый по отдельности.
    2. file_limit= , где — максимально допустимый размер файла в байтах для передачи за один запрос. Если системе «1С: Предприятие» понадобится передать файл большего размера, его следует разделить на фрагменты.

    C. Выгрузка на сайт файлов обмена

    Затем «1С: Предприятие» запросами с параметрами вида
    http:// / /1c_exchange.php? type=catalog& mode=file& filename=
    выгружает на сайт файлы обмена в формате CommerceML 2, посылая содержимое файла или его части в виде POST.

    В случае успешной записи файла система управления сайтом выдает строку «success».

    D. Пошаговая загрузка данных

    На последнем шаге по запросу из «1С: Предприятия» производится пошаговая загрузка данных по запросу с параметрами вида http:// / /1c_exchange.php? type=catalog& mode=import& filename=

    1. Если в первой строке содержится слово «progress» — это означает необходимость послать тот же запрос еще раз. В этом случае во второй строке будет возвращен текущий статус обработки, объем загруженных данных, статус импорта и т. д.
    2. Если в ответ передается строка со словом «success», то это будет означать сообщение об успешном окончании обработки файла.

    Примечание. Если в ходе какого-либо запроса произошла ошибка, то в первой строке ответа системы управления сайтом будет содержаться слово «failure», а в следующих строках — описание ошибки, произошедшей в процессе обработки запроса. Если произошла необрабатываемая ошибка уровня ядра продукта или sql-запроса, то будет возвращен html-код.

    Примеры файлов выгрузки

    Обмен информацией о заказах

    Заказы, оформленные на сайте, загружаются в систему «1С: Предприятие».

    1. Заказ оформляется на сайте
    2. При передаче в систему «1С: Предприятие» в заказе устанавливается категория «Заказ с сайта».
      При формировании заказа в системе «1С: Предприятие» записываются номер и дата заказа, с которыми он оформлен на сайте. Поиск контрагента осуществляется по ИНН или наименованию, в зависимости от указанных настроек.
    3. При загрузке заказа производится поиск договора с контрагентом. Договор ищется среди существующих договоров с клиентом, с признаком ведения взаиморасчетов по заказам (по указанной в настройках загрузки Организации). Если не находится ни один договор, то создается новый.
    4. При загрузке заказа загружаются все его свойства, переданные с сайта. Свойства ищутся в системе «1С: Предприятие» по наименованию. Если с таким наименованием свойства нет, то заводится новое свойство со значениями типа строка или число.
    5. Заказ может модифицироваться в системе «1С: Предприятие», при этом его изменения будут выгружаться на сайт
    6. Если заказ оплачивается или отгружается в системе «1С: Предприятие», то состояния заказа по оплате и по отгрузке выгружаются на сайт только при полном выполнении операции (полной оплате и полной отгрузке). До этого момента заказ считается не оплаченным и не отгруженным.
    7. При попытке в системе «1С: Предприятие» изменить заказ, по которому произведена оплата или отгрузка, заказ на сайт не загрузится как измененный. При этом пользователь получит об этом сообщение.
    8. После каждой выгрузка заказа на сайт, на стороне сайта определяются значения его категорий (ссылка на категории). Эти значения устанавливаются в системе «1С: Предприятие» так, как они присвоены заказу на сайте

    A. Начало сеанса

    Выгрузка данных начинается с того, что система «1С: Предприятие» отправляет http-запрос следующего вида:
    http:// / /1c_exchange.php? type=sale& mode=checkauth.

    • слово «success»;
    • имя Cookie;
    • значение Cookie.

    Примечание. Все последующие запросы к системе управления сайтом со стороны «1С: Предприятия» содержат в заголовке запроса имя и значение Cookie.

    B. Уточнение параметров сеанса

    Далее следует запрос следующего вида:
    http:// / /1c_exchange.php? type=sale& mode=init

    1. zip=yes, если сервер поддерживает обмен в zip-формате — в этом случае на следующем шаге файлы должны быть упакованы в zip-формате
      или
      zip=no — в этом случае на следующем шаге файлы не упаковываются и передаются каждый по отдельности.
    2. file_limit= , где — максимально допустимый размер файла в байтах для передачи за один запрос. Если системе «1С: Предприятие» понадобится передать файл большего размера, его следует разделить на фрагменты.

    C. Получение файла обмена с сайта

    Затем на сайт отправляется запрос вида
    http:// / /1c_exchange.php? type=sale& mode=query.

    Сайт передает сведения о заказах в формате CommerceML 2. В случае успешного получения и записи заказов «1С: Предприятие» передает на сайт запрос вида
    http:// / /1c_exchange.php? type=sale& mode=success

    D. Отправка файла обмена на сайт

    Затем система «1С: Предприятие» отправляет на сайт запрос вида
    http:// / /1c_exchange.php? type=sale& mode=file& filename= ,
    который загружает на сервер файл обмена, посылая содержимое файла в виде POST.

    В случае успешной записи файла система управления сайтом передает строку со словом «success». Дополнительно на следующих строчках могут содержаться замечания по загрузке.

    Примечание. Если в ходе какого-либо запроса произошла ошибка, то в первой строке ответа системы управления сайтом будет содержаться слово «failure», а в следующих строках — описание ошибки, произошедшей в процессе обработки запроса.
    Если произошла необрабатываемая ошибка уровня ядра продукта или sql-запроса, то будет возвращен html-код.

    Инструкции

    Настройка интеграции с 1С:Предприятие выполняется на странице Магазин > Настройки > Интеграция с 1С. На закладке Заказы настраиваются параметры обмена заказами сайта и 1С.

    1.jpg

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

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

    Опция «Менять статусы заказов по информации из 1С» позволяет настроить автоматическую смену статусов заказов в соответствии с получаемой информацией из 1С при выполнении обмена данными. Но в том случае, если в 1C в узле обмена настроены соответствия статусов. Также соответствие статусов можно настраивать только для Управление Торговли 11.1 и 11.2.
    Кроме того, в процессе выполнения обмена заказами можно загрузить на сайт новые заказы и контрагенты из 1С. Для этого следует отметить соответствующую опцию «Создавать новые заказы и контрагенты из 1С». Эта настройка нужна, если вы планируете выгружать контрагентов и заказы, которые были созданы непосредственно в самой 1с. Рассмотрим другие поля, которые нужно заполнить, если вы отметите этот чекбокс.

    «Наличный расчет. Платежная система для новых заказов»
    Указывается платежная система для новых документов оплаты заказа, которые приходят из 1С и их тип «наличный». Тип документа «наличный» или «безналичный расчет» сообщает 1С.

    «Безналичный расчет. Платежная система для новых заказов»
    Указывается платежная система для новых документов оплаты заказа, которые приходят из 1С и их тип «безналичный расчет». Тип документа «наличный» или «безналичный расчет» сообщает 1С.

    «Эквайринговая операция. Платежная система для новых оплат»
    Указывается платежная система для новых оплат, проводимых путем эквайринговой операции.

    «Платежная система для автоматической оплаты заказа по статусу оплаты заказа от 1С»
    Указывается платежная система для автоматической оплаты заказа, для которого пришел статус оплаты из 1С.

    «Служба доставки для новых заказов»
    Указывается служба доставки, которая подставляется в документы новых пришедших из 1С заказов.

    «Увеличивать количество продукта в корзине, если количество в доставке из 1с превышает количество в корзине»
    При отмеченной опции количество продукта будет увеличено в соответствии с количеством, указанном в документе доставки из 1С.

    «Создавать новые документы оплаты из 1C»
    При отмеченной опции будут создаваться новые документы оплаты для новых заказов, пришедших из 1С.

    «Создавать новый заказ при получении новой доставки из 1C, если заказ основание на сайте не найден»
    При отмеченной опции на сайте будет создаваться новый заказ, если из 1С будет получен документ доставки, для которого нет соответствующего документа заказа на сайте.

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

    В поле «Группы, пользователям которых разрешена выгрузка» должны быть выбраны группы пользователей, которые будут обладать правом на выгрузку заказов в 1С, т.е пользователь с административными правами.Обмен заказами с 1С выполняется пошагово соответствии с заданным интервалом одного шага и размером единовременно загружаемой части файла.

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

    2.jpg

    В чистом БУС все параметры стоят в состоянии «по умолчанию», чтобы переставить значение свойства, нужно снять чекбокс.

    Ошибка, которая бывает при первом обмене, это когда в наименовании «контрагента» в 1C не прописывается ФИО, чтобы ее избежать в полном наименовании указываете параметры, которые будут у всех контрагентов.

    Проверить как заполняются теги для выгрузки, можно, сделав выгрузку в файл. Для этого в списке заказов выбираете нужный вас, и выбираете действие «экспортировать в CML 2»

    3.png

    Полученный файл открываете в Блокноте или в браузере.

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

    Теперь, когда в БУС стоят нужные настройки, переходим 1С. Рекомендуем создавать для обмена заказами свой отдельный узел, во-первых, на нем можно установить нужное вам время периодического обмена или выгрузки в режиме реального времени; во-вторых, работать с отдельным узлом гораздо удобнее.

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

    Вкладка «настройка параметров обмена» остается неизменной, в вкладке «режим обмена данных» ставим чекбокс в поле «обмен документами»

    4.jpg

    И переходим в настройки:

    5.jpg

    Если стоит флажок «Выгружать офлайн документы», то будут выгружены все заказы, в том числе и те, которые не были созданы на сайте.

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

    «Количество заказов в пакете» — поле, в котором указывается, сколько документов будет в одном пакете.

    Если стоит флажок «Выгружать отгрузки», то будут выгружены отгрузки. Рекомендуем ставить данную галку, если вы хотите, чтобы на сайт уходила информация о отгрузке из 1с, следовательно и проставление финального статуса и тега «отгружен».

    Если стоит флажок «Выгружать оплаты», то будут выгружены оплаты.

    Если стоит флажок «Не редактировать документы», то повторной выгрузке документов с сайта, документы не будут обновлены. Данная настройка актуальна для тех, кто после загрузки заказа в 1с ведет всю работу там, редактирует заказ, контрагента и тд. В этом случае даже если в БУС изменится состав заказа, то при обмене в 1C заказ останется неизменым.

    Если стоит флажок «Загрузка оплат», то в 1С на основе оплаты на сайте будет создан или приходный кассовый ордер или оплата по платежной карте(в зависимости от типа оплаты).

    Если стоит флажок «Проводить, если отгружен на сайте», то если отгрузка отгружена на сайте – в 1С она будет проведена.

    Если стоит флажок «Загрузка отгрузок», то в 1С на основе отгрузки на сайте будет создана отгрузка).

    Если стоит флажок «Проводить, если оплачен на сайте», то если заказ оплатили на сайте – в 1С документ оплаты будет проведен.

    В табличной части «Отбор» задаются отборы выгружаемых заказов из 1С.

    Можно установить только с какой организации, например, загружать заказы, но если данные настройки не актуальны, то не ставьте в них «галочки», т.к задав отбор и не настроив значение, вы получите ошибку, при которой заказы вообще не будут загружаться в 1C.

    Вкладка «Дополнительные настройки»

    6.jpg

    «В группе элементов «Загрузка товаров в 1C» указывается в какую папку номенклатуры будут попадать товары, которые были созданы в БУС и их нет в 1C.

    В группе элементов «Предопределенные значения для физических лиц» задаются данные о физическом лице, который подставляется, если заказ на сайте сделан физ.лицом.

    В группе элементов «Настройки отмена заказов» задаются соответствия причины отмены заказа.

    В группе элементов «Настройка соответствий» задаются соответствия статусов сайта и 1С. Для удобства статусы сайта можно загрузить с сайта. В зависимости от пришедшего статуса с сайта – в документе будет подставлен по соответствию. Соответствия задаются для статусов заказов, отгрузок, а также соответствие касс и способа оплаты.

    Остановимся поподробнее на «соответствии платежных систем и касс»

    7.png

    Загрузив с сайта платежные системы вы указываете для них терминал или кассу, следовательно, для наличной и безналичной оплаты. Но здесь важно также указать в БУС у платежной системы тип оплаты, чтобы при обмене создавался правильный документ.
    Например:

    8.jpg

    Рассмотрим настройки «Загружаемых документов»

    9.jpg

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

    10.png

    Левая верхняя таблица
    В левой верхней таблице отображены все загружаемые документы. В таблице можно указать:
    1. Какая дата документа подставляется: дата на момент загрузки документа в 1С или же с дата создания документа на сайте.
    2. Откуда берется номер документа: подставляется автоматически из 1С или приходит с сайта.
    3. Режим записи документа: записывать/проводить оперативно/проводить не оперативно.
    4. Действия с отмененными документами: помечать на удаление/отменять проведение/ничего не делать. Если на документ есть ссылки, то документ не будет отменен.

    Правая верхняя таблица
    В Правой верхней таблице отображаются все реквизиты указанного документа. Для того чтобы реквизиты документа отобразились в таблице – необходимо нажать на кнопку «Настроить соответствия реквизитов», которая находится в верхней левой таблице.
    Тип данных заполнения реквизита может быть следующий:
    1. Из поля XML. Если выбран этот тип, тогда значение будет найдено по алгоритму, указанному в колонке «Значение». Как правило, алгоритмы реализованы на основании данных XML. При указании этого типа в колонке «Значение» появляется предопределенный список значений алгоритмов алгоритмов.
    2. Фиксированное значение. Если выбран этот тип, тогда в реквизит документа будет подставляться указанное фиксированное значение. При указании этого типа данных, тип значения фиксированного значения определяется автоматически.
    3. Из дополнительных свойств документа (по наименованию). При указании этого типа значение реквизита будет искаться по следующему алгоритму:
    Смотрится – есть ли свойство документа(задается в профилях обмена) с указанным наименованием, которое указывается в колонке «Значение».
    Если такое свойство есть и оно заполнено, то определяется тип реквизита документа. Если их несколько(составное) – массив.
    Перебираются все элементы объектов 1С указанного типа объекта(или нескольких). Первый найденный элемент, с наименованием, указанным в свойстве заказа, будет подставлен в реквизит.
    4. Из дополнительных свойств (по ид). Примерно тоже самое, что и выше, но элемент ищется не по наименованию, а по уникальному идентификатору. Имеет смысл использовать в связке с hl инфоблоками, которые будут хранить значения выгруженных справочников.

    Левая нижняя таблица
    В нижней левой части документа отображены все заполняемые табличные части указанного документа (добавление новых табличных частей пока отключено). В колонке «Поле XML» указывается наименование подчиненного элемента, из которого берутся данные. Если значение не заполнено – будет создана всего одна строка.

    Правая нижняя таблица
    В нижней правой части отображаются все реквизиты указанной табличной части документа. Для того чтобы реквизиты документа отобразились в таблице – необходимо нажать на кнопку «Настроить соответствия реквизитов», которая находится в нижней левой таблице.
    Заполняются реквизиты также, как и реквизиты документа, с единственным отличием, что у табличной части больше предопределенных алгоритмов.
    Соответствия настраиваются для всех видов документа, т.е и для заказа и документов оплаты и доставки.

    11.png

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

    голоса
    Рейтинг статьи
    Читайте так же:
    Восстановленные фото не открываются что делать
Ссылка на основную публикацию
Adblock
detector