Синхронизация с 1С — различия между версиями
(→Контрагенты) |
Mstar (обсуждение | вклад) |
||
Строка 180: | Строка 180: | ||
Из-за того что есть разные конфигурации 1С, создать шаблон модуля довольно сложно, описанные обмены данными это основные моменты работы модуля, которые можно расширять и дополнять, в зависимости от требований заказчика, например: передача из 1С статусов заказов (при условии что менеджеры обрабатывают заказы в 1С), передача в 1С платежей через онлайн-системы (liqpay) и так далее. | Из-за того что есть разные конфигурации 1С, создать шаблон модуля довольно сложно, описанные обмены данными это основные моменты работы модуля, которые можно расширять и дополнять, в зависимости от требований заказчика, например: передача из 1С статусов заказов (при условии что менеджеры обрабатывают заказы в 1С), передача в 1С платежей через онлайн-системы (liqpay) и так далее. | ||
− | <pre>Естимейт базовой версии задания - | + | <pre>Естимейт базовой версии задания - 20ч</pre> |
'''Вернуться к списку модулей:''' [[Модули_пакет_Експерт_-_Документация]] | '''Вернуться к списку модулей:''' [[Модули_пакет_Експерт_-_Документация]] |
Версия 14:38, 5 мая 2015
Модуль предназначен для синхронизации данных между сайтом и вашей конфигурацией 1С версии 8.
Протокол синхронизации описан по ссылке
Модуль разрабатывается индивидуально для каждого заказчика и при тесном сотрудничестве с вашим программистом 1С.
При обмене данными инициатором обмена выступает 1С. Выделим основные моменты по передаче данных:
Содержание
Инициализация
1С отправляет запрос на адрес http://site.mstarproject.com/exchange.php?type=catalog&mode=checkauth и передает значение логина и пароля менеджера 1С. Этот менеджер создается в Мпанели и используется только для авторизации 1С.
Весь обмен происходит в кодировке UTF8. (Но по просьбе заказчика можно рассмотреть изменение кодировки на другую).
В конце любой операции выдается или success - успешное выболнение, или failure - ошибка.
Передача из сайта в 1С
Контрагенты
1С отправляет запрос на адрес http://site.mstarproject.com/exchange.php?type=sale&mode=customers
В ответ передается XML с содержанием контрагентов, пример:
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="2014-07-03"> <Контрагенты> <Контрагент ID="НОМЕР001" ФИО="Старовойт Михаил" Логин="mstar" Телефон="0504652966"> </Контрагент> <Контрагенты> </КоммерческаяИнформация>
Обратите внимание, при обмене контагентами необходима двойная идентификация, Логин - идентификатор для сайта, ID - идентификатор для 1С. в Любом случае хотябы один из идентификаторов должен присутствовать. Если пустой Логин, то это сигнал сайту, что надо создать такого пользователя (пользователь создан в 1С, надо создать на сайте). И наоборот, если пустой ID - надо создать в 1С (пользователь создан на сайте, надо создать в 1С).
Количество параметров может быть расширено в зависимости от нужд заказчика.
Заказы
1С отправляет запрос на адрес http://site.mstarproject.com/exchange.php?type=sale&mode=orders
В ответ передается XML с содержанием заказов, пример:
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="2014-07-03"> <Заказы> <Заказ ID="26" Date="2010-08-31" Time="20:18:41" Total="5029.20"> <Покупатель Name="Садулаев Садула Шамильевич" Login="sadu" Phone="89282776906"/> <Товар ID="" Brand="" CodeCMS="1000380001" BrandCMS="meyle" Price="5029.20" Qty="1" Total="5029.2"/> </Заказ> </Заказы> </КоммерческаяИнформация>
Заказ содержит одного покупателя и один или более товаров.
Товар может идентифицироваться как по идентификаторам 1С: ID и Brand, так и по идентификаторам сайта: CodeCMS и BrandCMS.
Обратите внимание, что код (артикул) сайта является "очищеным" кодом, то есть не содержит пробелы, тире, точки и другие "лишние" символы, а код 1С передается в том виде в котором был получен из 1С.
У каждого заказа на сайте есть флаг передачи, при создании заказа флаг=0, при выгрузке в 1С - флаг меняет значение на 1. После чего выгрузка в 1С такого заказа не повторяется. Поведение флага можно обговорить с заказчиком, например можно получать от 1С список принятых заказов и только потом устанавливать флаг - это исключит случаи потери заказов при перебоях в передаче.
Передача из 1С на сайт
Любая передача данных из 1С начинается передачей файла, производится методом POST на адрес http://site.mstarproject.com/exchange.php?type=catalog&mode=file&filename=FILE
Значение FILE лучше указывать разным для разных обменов данными, например для передачи клиентов может выглядеть так: http://site.mstarproject.com/exchange.php?type=catalog&mode=file&filename=clients.xml
Разные названия файлов нужны по причине того, что при загрузке файл записывается поверх файла с одинаковым именем, хотя это необязательное условие.
Далее 1С запускает процесс обработки загруженного файла, посылая запрос на адрес: http://site.mstarproject.com/exchange.php?type=catalog&mode=import&filename=FILE
Обратите внимание, что сначала надо загрузить файл на сайт, потом его обработать.
Сайт производит обработку данных в файле исходя из веток XML, в принципе все данные можно выгружать в одном файле, но из-за возможно большого файла обработка может занять много времени, поэтому рекомендуем разбивать разные данные на разные файлы.
Бренды
Сайт идентифицирует деталь по двум параметрам: код (артикул) и бренд (производитель детали). У каждого проекта может быть свой набор брендов, поэтому их надо выгрузить на сайт для того чтобы на сайте связать бренды из 1С и бренды сайта, в большенстве случаев это произойдет автоматически (если названия брендов совпадут с уже существующими бренлами на сайте, иначе придется делать это вручную)
Пример данных в XML-файле из 1С:
<Бренды> <Бренд ID="Mitsubishi" Name="MITSUBISHI"/> <Бренд ID="TO" Name="Toyota"/> <Бренд ID="NIS" Name="NISSAN"/> </Бренды>
ID - идентификатор 1С, который передается в данных с товарами. Name - Название бренда, используется для связи бренда на сайте.
Товары (прайс)
Сайт работает с прайс-листом, то есть с массивом типа Бренд, Код, Цена, дополнительно можно указывать Название, Наличие и другие параметры. Пример выгрузки:
<Товары> <Товар ID="MZ313366" Name="Консоль" Price="807" Rest="1" Brand="Mitsubishi"/> <Товар ID="4060A098" Name="Амортизатор пр. пер. Colt (406008)" Price="710" Rest="1" Brand="Mitsubishi"/> </Товары>
Название параметров может быть изменено и расширено.
Обратите внимание, на сайте работает ценообразование, поэтому из 1С выгружать надо закупочные цены, которые после ценообразования для каждого клиента формируются и отображаются розничными. Ценообразование состоит из двух частей:
1. Наценка на поставщика (увеличение цены согласно указаной в Мпанели) 2. Скидка клиента (уменьшение цены согласно группы клиента, указывается в Мпанели)
Контрагенты
Операция аналогичная выгрузке в 1С.
<Контрагенты> <Контрагент ID="НОМЕР001" ФИО="Старовойт Михаил" Логин="mstar" Телефон="0504652966" Email="mikhail.starovoyt@mstarproject.com"> </Контрагент> <Контрагенты>
Желательно чтобы в выгрузке присутствовал Email, с помощью почты производится восстановление пароля на сайте.
Название полей может быть изменено и расширено.
При выгрузке на сайт клиентов, производится поиск клиента в базе сайта по полю Логин, если клиент найден, происходит обновление его данных, если клиент не найден происходит создание нового клиента.
Документы(заказы)
<Документы> <Документ> <ID>729</ID> <IDМенеджера>1070</IDМенеджера> <Номер>ТЗ000000148</Номер> <Дата>2014-12-04</Дата> <ХозОперация>Заказ товара</ХозОперация> <Роль>Продавец</Роль> <Сумма>25,43</Сумма> <Валюта>840</Валюта> <Время></Время> <Комментарий>Доставка Новая Почта; 0.00 USD</Комментарий> <Статус>В работе</Статус> <Удален>Нет</Удален> <Контрагенты> <Контрагент> <ID>4649</ID> <Наименование>ФЛП Стронов</Наименование> <Роль>Покупатель</Роль> <ПолноеНаименование>ФЛП Стронов</ПолноеНаименование> </Контрагент> </Контрагенты> <Товары> <Товар> <Наименование>Фильтр воздушный (76)</Наименование> <Артикул>1780130040</Артикул> <Производитель>TOYOTA</Производитель> <КодБренда>2250</КодБренда> <Количество>1</Количество> <Резервировать>Да</Резервировать> <IDПоставщика>241</IDПоставщика> <Статус>Подтвержден</Статус> <Цена>25,43</Цена> <Сумма>25,43</Сумма> </Товар> </Товары> </Документ> </Документы>
Название полей может быть изменено и расширено. При выгрузке на сайт заказов, производится поиск заказа в базе сайта по полю Номер(идентификатор заказа сайта, уникальный) или по полю ID (идентификатор из 1С, должен быть уникальный), если заказ не найден то создается новый.
Доработки
Из-за того что есть разные конфигурации 1С, создать шаблон модуля довольно сложно, описанные обмены данными это основные моменты работы модуля, которые можно расширять и дополнять, в зависимости от требований заказчика, например: передача из 1С статусов заказов (при условии что менеджеры обрабатывают заказы в 1С), передача в 1С платежей через онлайн-системы (liqpay) и так далее.
Естимейт базовой версии задания - 20ч
Вернуться к списку модулей: Модули_пакет_Експерт_-_Документация