новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Wesley
Приватное сообщение

Доработать расширение для УТ11.4 (Синхронизация с Битрикс24)

5847 |  4
вчера в 18:14:09 (8 часов назад)
975210
Текст задания
Конфигурация: Управление торговлей, редакция 11 (11.4.11.99)
Расширения конфигурации:
- 1С: Синхронизация Битрикс24 (2.3.3.4)

Требуются доработки обмена с Битрикс 24

Необходимо доработать обмен. След. образом

Самовывоз.
При поступлении информации о заказе следует выполнить запись в регистр сведений сд_Очередь используя следующую экспортную функцию:
РегистрыСведений.сд_Очередь.ЗаписатьВОчередь(, "ЧД, интернет-магазин, самовывоз", "СТРОКА", "JSON", СтрокаJSON)
Переменная только одна - СтрокаJSON. Остальные параметры постоянные для текущего использования.

СтрокаJSON - Структура данных документа с сайта, преобразованная в текст JSON, структура должна содержать только достаточные данные.
Реквизиты шапки:
- дата завершения сборки заказа
- код магазина, с которого будет забираться заказ. Код магазины - это строка вида "A01", "B02". В нашей 1с это реквизит "сд_Код" справочника Склады.
- уникальный числовой идентификатор заказа на сайте, который будет называть покупатель в магазине для получения своего заказа. Так же по этому номер в кассовой программе будет выполняться поиск черновика чека для его оплаты.
- номер мобильного телефона клиента в формате 79780000000 или 9780000000.
- сумма документа. Для дополнительного контроля.
Реквизиты строки:
- код товара. числовой код, уникальный идентификатор товара, в нашей 1с это реквизит "сд_Код" справочника Номенклатура.
- наименование товара. на случай разборок если по коду товара не найден товар.
- количество
- цена до выдачи скидок
- цена со скидками
- если будут использоваться какие-то акции на стороне сайта, то может потребоваться информация по идентификаторам этих акций.

ПРИМЕР формирования строки JSON:
МассивСтрок = Новый Массив;

СтруктураСтрока = Новый Структура;
СтруктураСтрока.Вставить("КодТовара", 123456);
СтруктураСтрока.Вставить("Количество", 1);
СтруктураСтрока.Вставить("Цена", 100.00);
МассивСтрок.Добавить(СтруктураСтрока);

СтруктураСтрока = Новый Структура;
СтруктураСтрока.Вставить("КодТовара", 123457);
СтруктураСтрока.Вставить("Количество", 2);
СтруктураСтрока.Вставить("Цена", 200.10);
МассивСтрок.Добавить(СтруктураСтрока);

Структура = Новый Структура;
Структура.Вставить("КодМагазина", "A15");
Структура.Вставить("НомерЗаказа", "123"); // уникальный идентификатор документа
Структура.Вставить("ДатаДокумента", Дата("20200825235959"));
Структура.Вставить("СуммаПоДокументу", 500.20);
Структура.Вставить("НомерТелефона", "79781111111");
Структура.Вставить("Строки", МассивСтрок);

ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Структура);
Результат = ЗаписьJSON.Закрыть();

"Результат" содержит текст JSON
-------

Курьерская доставка.
При поступлении информации о заказе следует выполнить следующие действия.
- Провести документ "ЗаказНаПеремещение" с со склада-магазина на склад-интернет-магазина с указанием в строках действия "отгрузить". В комментарии указать "#интернет-магазин#". Организация "Управленческая организация". Дата равна дате завершения сборки заказа.
- На основании созданного Заказа на перемещении провести "ПеремещениеТоваров" с теми же реквизитами в шапке. Статус "Принято". Комментарий скопировать из Заказа на перемещении.
- Со склада интернет-магазина провести документ "РеализацияТоваровУслуг" с датой равной дате в Перемещении товаров. В комментарии указать "#КОД_МАГАЗИНА#НАИМЕНОВАНИЕ_МАГАЗИНА#", где КОД_МАГАЗИНА - код магазина с которого был перемещён товар, вида "A01". НАИМЕНОВАНИЕ_МАГАЗИНА - наименование этого же магазина. Указать клиента и организацию. Договор и соглашение заполнить по клиенту. Остальные данные заполнить из расчёта что организация-продавец является плательщиком НДС на общих основаниях. Цены заполнять по данным с сайта.

Указанные документы должны проводиться по следующему принципу:
- если какой-либо документ не получится провести из-за ошибки, то вместо проведения его следует записать и добавить информацию об ошибке в нашу систему через процедуру РегистрыСведений.сд_Ошибки.ЗаписатьИнформациюОбОшибке(ОбъектОшибки, "ЧД, интернет-магазин, курьерская доставка", Ответственные, ТекстОшибки). Следующие в цепочки документы необходимо создавать в непроведённом состоянии; ошибки по ним регистрировать нет необходимости.
Где:
- ОбъектОшибки - ссылка на документ, при проведении которого произошла ошибка.
- Ответственные
- ТекстОшибки - результат для ОписаниеОшибки(), полученный при неудачном проведении документа.

Уникальные идентификаторы:
Склад "интернет-магазин" - "" сообщу позже
Клиент для Реализации - "" сообщу позже
Организация для Реализации - "d675ebae-0b32-11e9-b033-f4ce46b1898d"
Ответственные для добавления информации об ошибке - "" сообщу позже
<<<"

!Каркас кода уже есть - надо доработать:
Функция ПолучитьСкладЗаказа (СвойстваЗаказа)Экспорт

СкладЗаказа = "";
Для Каждого ТекСвойство Из СвойстваЗаказа Цикл

Если ТекСвойство.Получить("code") = "SKLAD_SPISOK" Тогда
УИН = ТекСвойство.Получить("value");

//Ищем склад в 1С по УИН из Битрикс24
Если ЗначениеЗаполнено(УИН) Тогда
СкладЗаказа = Справочники.Склады.ПолучитьСсылку(Новый УникальныйИдентификатор(УИН));
КонецЕсли;

//Заглушка
Если ЗначениеЗаполнено(СкладЗаказа) Тогда
Прервать;
КонецЕсли;
КонецЕсли;

КонецЦикла;

Возврат СкладЗаказа;

КонецФункции

//Логика для бизнес процесса обработки заказа с сайта Битрикс24
Функция ОбработкаЗаказа(Заказ, ИнформацияОЗаказе)Экспорт

СвойстваЗаказа = ИнформацияОЗаказе.Получить("propertyVa…

- добавить к товарам информации по скидкам товара(если они есть). Эту информация я готовлю с сайта в формате json. Надо будет обработать в 1с
- Это тоже не реализовано: "Указанные документы должны проводиться по следующему принципу:
- если какой-либо документ не получится провести из-за ошибки, то вместо проведения его следует записать и добавить информацию об ошибке в нашу систему через процедуру РегистрыСведений.сд_Ошибки.ЗаписатьИнформациюОбОшибке(ОбъектОшибки, "ЧД, интернет-магазин, курьерская доставка", Ответственные, ТекстОшибки). Следующие в цепочки документы необходимо создавать в непроведённом состоянии; ошибки по ним регистрировать нет необходимости.
Где:
- ОбъектОшибки - ссылка на документ, при проведении которого произошла ошибка.
- Ответственные
- ТекстОшибки - результат для ОписаниеОшибки(), полученный при неудачном проведении документа.
"
- и глобально протестировать и довести до рабочего состояния
0
Отклики (2)