Как стать автором
Обновить

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

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

Для обмена информацией между 1С и интернет-магазином в формате XML мы будем использовать единый стандарт обмена - CommerceML 2 standard. Для работы с CommerceML 2 standard я cмог найти единственную работающую библиотеку django-cml. Подробное описание установки библиотеки можно найти по ссылке Github репозитория библиотеки.

После установки библиотеки необходимо настроить 1С на обмен данных с интернет-магазином.

Заходим в 1С и переходим по следующему пути: "НСИ и администрирование" -> "обмен с сайтом".

Дальше переходим в "Настройки обмена с сайтом".

Дальше нажимаем на "создать", чтобы создать новый обмен.

Дальше необходимо заполнить раздел "Способ обмена данными". В полях "Имя пользователя" и "Пароль" вы указываете логин и пароль от админ панели django. В поле "Адрес сайта" необходимо указать строку в следующем формате:

"http://<сайт>/cml/exchange?type=catalog&mode=checkauth".

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

После завершения обмена с сайтом 1С выдаст сообщение. Я запрашивал у 1С номенклатуры, содержащие описание товаров и картинки. Описание товаров было выгружено в файле "import0_1.xml", а рядом картинки этих товаров.


Надеюсь мой туториал окажется кому-то полезным. Буду рад адекватной критике.

telegram: @makesense0

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.