Помощь » База знаний » Shop-Script » Инструкции и советы »

Shop-Script поддерживает возможность обмена данными с «1С: Предприятие» не ниже версии 8.1 в редакции «1С: Управление торговлей» не ниже версии 10.3.4 (версия 11 полностью не поддерживается).
Обмен данными осуществляется через файл формата CommerceML (о формате: http://www.1c.ru/rus/products/1c/integration/cml.htm) и может производиться вручную (через файл) либо автоматически (частота обновления настраивается в 1С).
Чтобы настроить автоматический обмен между магазином и 1С, необходимо произвести настройки с обеих сторон, как описано ниже.
Важно: для обмена данными с 1С на сервере с установленными скриптами интернет-магазина должно быть доступно PHP-расширение XMLReader! Если же вы являетесь пользователем веб-сервисов WebAsyst, то это расширение для вас уже установлено — можно приступать к дальнейшей настройке.
Внимание: если Shop-Script установлен на сервере, где PHP работает в качестве CGI, то для работы авторизации при обмене информацией с 1С необходимо наличие модуля mod_rewrite для веб-сервера Apache; при соблюдении этих условий в начало файла .htaccess в каталоге установки скриптов необходимо добавить следующий код:RewriteEngine OnЕсли вы планируете использовать режим ЧПУ, то приведенный выше фрагмент кода будет автоматически добавлен в файл .htaccess при включении этого режима — в этом случае вручную добавлять код не нужно.
RewriteCond %{HTTP:Authorization} !^$
RewriteCond %{REQUEST_URI} !(http_auth)
RewriteRule ^(.*)$ $1?http_auth=%{HTTP:Authorization} [QSA]
Откройте раздел администрирования магазина «Инструменты -> 1С» (если вы не видите такого раздела, проверьте права доступа к нему для вашего пользователя) и щелкните по кнопке «Включить»:

После включения активируется скрипт обмена данными (синхронизации), после чего Shop-Script готов к автоматическому обновлению.
Для заполнения полей, показанных на снимке выше, вам потребуются настройки адрес скрипта синхронизации, пользователь и пароль — эти данные необходимо ввести на стороне 1С.
В программе «1С: Управление торговлей» щелкните по пункту меню «Обмен данными с WEB-сайтом -> Настроить обмен данными с WEB-сайтом» в меню «Сервис».

Выберите «Создать новую настройку обмена с WEB-сайтом».

В диалоге настроек обмена данными введите настройки, которые вы получили на стороне Shop-Script: адрес скрипта синхронизации, имя пользователя и пароль, оставив остальные переключатели по умолчанию (как показано на рисунке ниже):

При автоматическом обмене данными 1С выступает в роли клиента, а Shop-Script — в роли сервера.
На шаге настройки выгрузки товаров оставьте все значения выключенными (по умолчанию):

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

Shop-Script умеет:
Совет: поскольку при импорте данных из 1С в Shop-Script изображения товаров не переносятся, для их добавления в каталог интернет-магазина следует загрузить файлы изображений в соответствующий каталог сервера (например, с помощью раздела администрирования «Дизайн -> Загрузка изображений -> Картинки продуктов»), затем экспортировать содержимое каталога товаров из Shop-Script в CSV-файл, внести в CSV-файл имена файлов изображений для каждого товара и импортировать измененный CSV-файл обратно в Shop-Script, чтобы таким образом «прикрепить» изображения к товарам, которые были перенесены из 1С.
1С умеет:
В случае обмена данных через файл вы можете выбрать, экспортировать ли в 1С только новые (и обновленные) заказы с момента последнего экспорта либо экспортировать все имеющиеся заказы. При автоматическом обмене экспортируются только заказы, обновленные с момента последнего экспорта. В случае обмена данных о товарах всегда экспортируется весь каталог продукции.
Обратите внимание: как сказано выше, при автоматическом обмене 1С выгружает продукты (номенклатуру) в файл, однако, не принимает ее обратно. При автоматическом обмене 1С принимает только данные о заказах, и поэтому до настройки обмена данными о заказах рекомендуется импортировать всю номенклатуру из магазина в 1С через файл — это единственный способ импорта продуктов, который поддерживается в 1С.
Если вы работаете с автоматическим обменом данными, по умолчанию 1С инициирует обмен только измененных данных о заказах и продуктах. Это может привести к тому, что продукты могут не выгружаться из 1С в Shop-Script, что сопровождается сообщением «Изменения товаров не зарегистрированы. Выгрузка товаров не произведена.».
Чтобы «побороть» эту проблему, необходимо в настройках обмена данными (меню «Сервис -> Обмен данными с WEB-сайтом -> Настроить обмен данными с WEB-сайтом») установить опцию «Полная выгрузка» и сохранить настройки.

После сохранения этих настроек 1С будет отправлять полный каталог продуктов в магазин.
Достаточно установить такую опцию и выполнить обмен данными один раз, чтобы выгрузить все продукты из 1С в магазин, и в дальнейшем вернуть настройке значение «Только изменения», чтобы не передавать в файле обмена избыточную информацию. В особенности это актуально, если в вашем каталоге большое количество продуктов.
После настройки автоматической синхронизации данных становится доступным и обмен данными через файл. Обмен данными «через файл» заключается в том, что вы получаете файл из Shop-Script (либо из 1С), сохраняете его на вашем компьютере и затем загружаете в 1С (либо в Shop-Script).
Если вы экспортировали файл из магазина, то импортировать его в 1С можно, щелкнув по пункту меню «Сервис -> Обмен данными -> Загрузка данных в формате CommerceML».

Примечание: в зависимости от вашей конфигурации 1С пункт «Загрузка данных в формате CommerceML» может находиться в другом разделе меню.
При обмене данными идентификация продуктов, категорий продуктов и заказов выполняется по специальному внутреннему ключу (идентификатору CommerceML), который может выглядеть примерно так: 9e271f47-6922-4e19-ab81-44c2c3d6391d.
Внутри 1С у каждого товара в списке номенклатуры имеется такой идентификатор, а в Shop-Script по умолчанию его нет, т. к. в интернет-магазине используется собственная система идентификации. Идентификатор CommerceML появляется в Shop-Script только после первой операции импорта/экспорта.
В процессе импорта Shop-Script сопоставляет данные, ориентируясь только на идентификатор CommerceML. Идентификация по другим свойствам (в т. ч. по наименованию или артикулу, как в случае импорта из CSV-файла) невозможна. Это значит, что в ходе самого первого импорта данных из 1С в Shop-Script будут добавлены все продукты из списка номенклатуры 1С (так как до этого момента Shop-Script не знает о ключах продуктов в 1С и поэтому не может сопоставить продукт в магазине продукту в файле 1С).
При экспорте из Shop-Script для всех продуктов, у которых еще нет идентификатора CommerceML, такой идентификатор создается автоматически — только после этого информация о продукте добавляется в файл экспорта.
Продукты можно перенести из магазина в 1С только через файл (см. пункт «Обратите внимание» для того, чтобы узнать подробности).
Ввиду описанных выше обстоятельств первый импорт из 1С в Shop-Script может повлечь за собой дублирование записей о продуктах и категориях, уже имеющихся и в базе данных магазина, и в номенклатуре 1С, но еще не связанных (не синхронизированных). Устранить такие дубликаты можно только путем объединения «проблемных» продуктов таким образом, чтобы основным остался дубликат, имеющий идентификатор CommerceML. Сделать это можно несколькими способами:
При раздельном обновлении информации о товарах в каталоге Shop-Script и в номенклатуре 1С логичным результатом будет наличие двух несинхронизированных каталогов с различными товарами. Такой ситуации следует избегать, т. к. она может привести к сложностям при обмене данными между Shop-Script и 1С. Это вызвано тем, что механизм обмена данными Shop-Script с «1С:Управление Торговлей» через файл формата CommerceML основан на том, что вся товарная номенклатура изначально ведётся в 1С, а не в Shop-Script. Поэтому добавлять новые товары необходимо средствами 1С, после чего переносить информацию о них в Shop-Script с помощью функции обмена данными.
Если уже появились существенные различия между информацией о товарах в 1С и в каталоге Shop-Script, то устранить их можно следующим способом:
Чтобы сменить пароль для автоматического обмена данными, выключите и снова включите обмен данными с 1С в настройках магазина — в результате будет создан новый пароль.