Skip to content

Instantly share code, notes, and snippets.

@aashestakov
Created November 14, 2018 10:00
Show Gist options
  • Save aashestakov/9a0adfc804c9a7132ff6225cff3a33ef to your computer and use it in GitHub Desktop.
Save aashestakov/9a0adfc804c9a7132ff6225cff3a33ef to your computer and use it in GitHub Desktop.
Текущий сценарий взаимодействия обмена данных сайта и 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
Email
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