#Встроенный типовой обмен CommerceML
#Настройка связи (на примере облачной 1С УНФ 1.6)
- В 1С перейдите в
Настройки - Обмен с сайтом, затем перейдите вНастройки обмена с сайтом.

- На первом шаге укажите Ваша CMS
Другая, проставьте, что нужно синхронизировать:
.png)
- В меню
Настройки - Обмен даннымив PHPShop укажите, что будете загружать. Подробно мы описали в этой инструкции: https://wiki.phpshop.ru/nastroiky/dokumentooborot-crm#commerceml - В меню
Настройки - Обмен даннымивыберите тип авторизации По логину и паролю или По имени файла:
по логину паролю. Отключите режим CGI или используйте тип авторизации По имени файла. - В меню
Настройки - Обмен данными, выберите тип авторизацииЛогин и пароль. Нажмите Сохранить. - В 1С нажмите
Подключить обмен. В открывшемся помошнике введите данные от админпанели магазина: введите логин и пароль от админпанели магазина.
_Адрес магазина -
https://имя_сайта/1cManager/_Логин - логин администратора магазина
Пароль - пароль администратора магазина

👤 - Профиль в закладке Права в нижней строке Доступ по API проверьте, что стоят права у Администратора и есть Токен. Если нет прав, проставьте галки и на вкладке Основное нажмите Сгенерировать новый пароль, поставьте Сменить логин и пароль, чтобы создался Токен.

Теперь, после повторного входа, вы увидите Токен:

- После настроек администратора 👆, зайдите в меню
Настройки - Обмен данными, выберите тип авторизацииИмя файла. В пустое поле введите любое свое значение, нажмитеСохранить. - Перегрузите страницу CTRL+F5.
- Нажмите на ссылку
Имя файла. - Вставьте полученную ссылку в 1С в поле Адрес сайта:

- Нажмите кнопку
Проверить соединение. - Нажмите
Далее. - Укажите данные для выгрузки:
Цены - какие цены будут выгружаться на сайт.
Каталоги - можно выбрать отдельные каталоги для выгрузки.
Склады - по умолчанию выгружаются общие остатки. Если складов несколько, поставьте здесь галку.
.png)
Нажмите Далее.
- Задайте настройки для обмена заказами:

Нажмите Далее.
- Укажите расписание обмена:

Нажмите Готово.
#Настройка цен, складов, категорий, характеристик товаров
Эти данные настраиваются в закладке Выгрузка товаров.
- Откройте только что созданный обмен и нажмите вкладку
Выгрузка товаров. Укажите нужные вам параметры выгрузки данных на сайт:
.png)
Настройки - Склады и укажите внешний код из 1С в складах.
Внешний код склада можно найти в файле offers.xml. Файл можно выгрузить в окне Обмена, кнопка Инструменты администратора - Выгрузка на сайт - Текст файлов полного обмена. Откроются 2 файла import.xml и offers.xml. Внешние коды складов в файле offers.xml в начале файла.
Пропишите код в поле Внешний код в PHPShop в карточке склада. Для корректного сохранения кода, в правах администратора должны быть проставлены все галки[^3].

нажмите Сохранить.
- Нажмите
Выполнить полный обмен данными.

- Перейдите на сайт и убедитесь, что товары и структура каталогов загрузились 🎉.


Результат выгрузки по складам
#Заказы и статусы
- Откройте созданный обмен и нажмите вкладку
Обмен заказами. Укажите параметры обмена. - В PHPShop в меню
Заказы - статусы заказовсоздайте статус заказа, в полеВнешний кодпридумайте код. - Введите код заказа в настройке обмена в 1С в меню
Статусы заказов:

4. Нажмите Записать.
- Оформите тестовый заказ в магазине:
.png)
.png)
- В настроенном обмене в 1С нажмите кнопку
Синхронизация данных - Выполнить обмен - изменения:
.png)
- Перейдите в меню Продажи - Заказы покупателей. Если заказ не появился, в фильтре вывода данных выберите нужную организацию.
.png)
- В 1С поменяйте статус заказа, нажмите Записать:
.png)
9. В настроенном обмене товарами в 1С нажмите кнопку Синхронизация данных - Выполнить обмен - изменения:
.png)
- Проверьте, что статус заказа изменился в магазине:
.png)
#Службы доставки
- Откройте созданный обмен и нажмите вкладку
Обмен заказами. Укажите параметры обмена. - В PHPShop в меню
Заказы - доставкасоздайте доставку (или включите нужный модуль доставки, и она появится автоматически), в полеВнешний кодпридумайте код. - Введите код доставки в настройке обмена в 1С в меню Службы доставки. Если в обмене нет настроек сопоставления доставок, то код доставки можно посмотреть в файле синхронизации статусов заказов:
/1cManager/orders/orders.xml - Теперь доставка будет загружена в Заказ с указанной стоимостью.
#Возможные проблемы
#Авторизация
Имя файла.
 (1) (1) (1) (1).png)
#Не создаются новые товары
Если используется авторизация по имени файла, то создайте отдельного администратора для обмена данными с правами доступа по API и сгенерированным Токеном.

#Не выгружаются картинки
1C выгружает изображения по каталогам, если в каталоге содержится много товаров (500 и более), то при выгрузке получится очень большой архив с картинками, который может не загрузится или не распаковаться из-за лимитов хостинга.
Для загрузки такого большого объема картинок следует включить режим оптимизированного обмена картинками (если он поддерживается вашей конфигурацией 1С).
В настройках параметров обмена данными в 1С в меню "Расширенные настройки обмена данными в формате CommerсeML2" должна быть поставлена галочка Использовать оптимизированный обмен картинок.

При этом режиме выгрузка цен и остатков товаров должна быть отключена в настройках 1С, чтобы данные обмена не пересеклись с картинками после окончания их выгрузки.
После выгрузки всех изображений в режиме оптимизированного обмена следует включить галочку Выгружать только измененные изображения для уменьшения объема передаваемых картинок, которые уже были выгружены.
#Не загружаются заказы
В 1С загружаются заказы, только со статусом, указанным в настройке Обмен данными на сайте. Для загрузки всех заказов в 1С следует выбрать настройку статуса "Не используется".
Для повторной загрузки заказов в 1C следует:
- Выделить галочкой нужные заказы в админпанеле сайта
- Вызвать меню
Редактировать выбранные - Выбрать поле
Загружено в CRM - Выбрать значение Выкл и
Сохранить
Если заказы не загружаются в 1С или выводится ошибка чтения данных при загрузке в 1С, то следует перенести сайт на рекомендуемые хостинги из первой пятерки, на которых успешна протестирована работа обмена данными c 1C.
#Производительность
Если из 1С выгружается большой объем данных или выбрано много каталогов в фильтре отбора, то транспортный ZIP-файл получается очень большого размера (несколько сот мегабайтов). Для принятия такого файла и его распаковки потребуются повышенные ресурсы хостинга .
Для увеличения ресурсов хостинга следует в корневой файл сайта .htaccess в самое начало добавить строки, позволяющие загружать файлы до 512MB
php_value memory_limit 1024M
php_value upload_max_filesize 536870912
#Настройки обмена 1С
В настройках параметров обмена данными в 1С должны быть сняты галочки выгрузки без ожидания подтверждения импорта сервером и обмена без идентификатора сессии.

Если возникает ошибка привязки даты, номера заказа сайта или ошибка отсутствия типового соглашения по ценам, то следует воспользоваться официальной инструкции по настройке типового обмена.
#Очистка временных файлов
Для предотвращения переполнения временных папок на хостинге для хранения логов 1cManager/log и транспортных файлов 1cManager/sklad создайте новую задачу в модуле Задачи с адресом запускаемого файла 1cManager/clean.php.