Created
November 14, 2018 10:00
-
-
Save aashestakov/9a0adfc804c9a7132ff6225cff3a33ef to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Текущий сценарий взаимодействия обмена данных сайта и 1С: | |
1. Предварительно выгружаются менедежры из справочника в 1С вызовом метода GetAllManager (сейчас заведено 42 менедежера). | |
Ожидаются поля: | |
ID - идентификатор в системе 1С | |
LastName | |
Name | |
PhoneNumber | |
Email - у некоторых менедежеров передается в данном поле пустая строка '', поэтому они не добавляюется. Например у ID 1b86ecba-8c90-11e6-870c-00505693134e - если email пуст, необходимо вообще не передавать поле. | |
В дальнейшем путем запросов метода CreateManager/UpdateManager из 1С по протоколу SOAP - можно синхронизировать справочник менеджеров на сайте. | |
2. Предварительно выгружаются организации из справочника в 1С вызовом метода GetAllCounterparty (сейчас заведено 5 организаций). | |
Ожидаются поля: | |
ID - идентификатор в системе 1С | |
Name | |
FirstName | |
LastName | |
ContractNumber | |
ContractDate | |
LegalEntity - данное поле передается не корректно (передается string 'Юридическое лицо') - необходимы значения по ТЗ: https://yadi.sk/i/9xLLhBsO1MWjaA | |
INN | |
KPP | |
Address | |
Contact | |
PhoneNumber | |
ManagerId | |
В дальнейшем путем запросов метода CreateCounterparty/UpdateCounterparty из 1С по протоколу SOAP - можно синхронизировать справочник организаций на сайте. | |
3. Новый (незарегистрированный) пользователь создает заявку на сайте. В 1С уходит вызов метода CreateUser | |
Передаются поля: | |
'Id' - ID в системе Битрикс | |
'Email' | |
'Phone' | |
'Name' | |
'LastName' | |
'INN' - ИНН, который ввел сам пользователь. | |
'Active' - подтвержден ли пользователь. Новый изначально не подтвержден. | |
По факту выполнения - в 1С обязан завестись новый пользователь, возвращается поле ID (идентификатор пользователя в 1С). | |
4. Оформляется заявка через сайт. В 1С уходит вызов метода CreateOrder | |
Передаются поля: | |
'Id' - ID в системе 1С (по факту - пустое) | |
'BitrixId' - ID в системе Битрикс | |
'Date' | |
'Number' - Номер в системе Битрикс (обычно совпадает с ID Битрикс) | |
'DateOfEntry' | |
'CounterpartyId' - ID организации в 1С. Для нового пользователя пусто (так как не привязан к организации) | |
'CounterpartyName' | |
'Description' | |
'Status' | |
'Delivery' | |
'LastName' | |
'Name' | |
'Phone' | |
'Email' | |
'INN' - ИНН, который ввел пользователь | |
'Sum' | |
'BasketItems' => массив торговых предложений вида | |
[ | |
'KIN' - ID товара в 1С | |
'StorageUnitId' - нужно было удалить проверку поля на стороне 1С | |
'Quantity' | |
'Price' | |
'PriceBeforeDiscount' | |
'TotalSum' | |
'ItemStatus' | |
] | |
По факту выполнения - в 1С обязана завестись новая заявка, возвращается поле ID (идентификатор заявки в 1С). Если возможно - хорошо бы сразу вернуть и "номер". | |
5. На стороне 1С производятся операции | |
- пользователь привязывается к организации. По идее со стороны 1С нужно вызвать метод UpdateUser, в котором будет передан ID организации, но по ТЗ такого поведения нет. | |
- заявке присваивается номер в 1С, организация, менеджер проверяет зявку и меняет статус. Возможно вносятся какие-то корректировки. | |
Со стороны 1С на сайт уходит метод UpdateOrder | |
Ожидаются поля: | |
'Id' | |
'BitrixId' | |
'Date' | |
'DateOfApproval' | |
'Number' - важно получить данное поле | |
'DateOfEntry' | |
'CounterpartyId' - важно получить данное поле | |
'Description' | |
'Status' | |
'Paid' | |
'ShipDate' | |
'DeliveryDate' | |
'Delivery' | |
'BasketItems' | |
Сайт обязан ответить, что метод выполнен и данные получены. | |
6. Если изменился статус, то для пользователя на сайте разблокируется возможность перевести заявку в статус заказа. | |
Кода пользователь переведет заявку в статус "подтвержденной" - с сайта будет вызван 1С метод UpdateOrder. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment