Исследование связки Розница 2.3 + Мобильная касса
У клиента проблема — из розницы не приходит в мобильную кассу по заказам статусы, телефоны. Только адреса проходят и товары.
Установили на компьютер мобильную кассу (это обычная 1С-база на большом копьютере). Запустил в режиме отладки, но увы, он не поддерживается.
Поэтому приходится отлаживать фоновое задание, которое стартует в ОбменДаннымиУниверсальныйФормат.ВыполнитьОбмен.
Загрузка объектов происходит в модуле ОбменДаннымиУниверсальныйФормат, например, загрузка заказов в процедуре ЗагрузитьЗаказКлиента.
Если посмотреть на структуру данных в ОбъектXDTO, там некоторые поля есть, некоторых нет:
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-59.png)
Загрузка статуса заказа имеется в коде, но отсутствует в файле обмена:
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-60.png)
Аналогично с контактной информацией контрагента для заказа:
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-61.png)
Комментарий подставляется напрямую, но почему-то пустой в передаваемых данных:
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-62.png)
Ну что же, проблему можно решить. не меняя приложение «Мобильная касса», достаточно только передавать корректные данные в обмен XML.
Теперь переходим в Розницу, ищем по примечательному имени «АдресДоставки», находим правило конвертации этого свойства:
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-63-1024x450.png)
Здесь еще интересна процедура ПОД_Документ_ЗаказПокупателя_Отправка_ПриОбработке, которая собирает данные из базы (таблицы Товары, Услуги) при отправке документа. Но мы ее трогать не будем:
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-64.png)
А вмешиваться мы будем в процедуру ПКО_Документ_ЗаказПокупателя_Отправка_ПриОтправкеДанных:
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-65.png)
Добавим ее в расширение:
&Вместо("ПКО_Документ_ЗаказПокупателя_Отправка_ПриОтправкеДанных") Процедура дор_ПКО_Документ_ЗаказПокупателя_Отправка_ПриОтправкеДанных(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена, СтекВыгрузки) //Вызываем старый обработчик ПродолжитьВызов(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена, СтекВыгрузки); //Вставляем комментарий ДанныеXDTO.Вставить("Комментарий", ДанныеИБ.Комментарий); ЗаписьЖурналаРегистрации("Отладка.Обмен", ,,,"Объект" + ДанныеИБ.Ссылка + " Комментарий: " + ДанныеИБ.Комментарий); СтатусЗаказа = "Согласован"; ДанныеXDTO.Вставить("СтатусЗаказа", СтатусЗаказа); ЗаписьЖурналаРегистрации("Отладка.Обмен", ,,,"Объект" + ДанныеИБ.Ссылка + " Статус: " + СтатусЗаказа); КонецПроцедуры
В мобильной кассе поставил подключение к фоновым заданиям, чтобы посмотреть, что получится:
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-66.png)
Видно, что комментарий проставился, он прогрузился и в заказ в мобильной кассе, а поле СтатусЗаказа даже не появилось, несмотря на то, что я его добавлял.
Ну это и понятно, я добавляю в структуру, а если в формате нет этого поля, то оно и не появится.
В журнале регистрации Розницы, кстати, есть события по обмену:
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-67.png)
Тут без отладки выгрузки не обойтись, поэтому я настроил выгрузку из кассы в каталог:
![](https://geniy1s.ru/wp-content/uploads/2022/03/image-68.png)
Но увы, в файл выгружать 1С не хочет, такое не предусмотрено.
Ладно, пойдем другим путем, поищем волшебное ДатаДоставки по модулям и макетам, чтобы найти, где описывается свойство XDTO. Увы, ничего не нашли, поэтому попробуем добавить ПКО.
&Вместо("ДобавитьПКО_Документ_ЗаказПокупателя_Отправка") Процедура дор_ДобавитьПКО_Документ_ЗаказПокупателя_Отправка(ПравилаКонвертации) //Стандартные правила ПродолжитьВызов(ПравилаКонвертации); //смотреть ОбменДаннымиXDTOСервер.КоллекцияПравилКонвертации ПравилоКонвертации = ПравилаКонвертации.Найти("Документ_ЗаказПокупателя_Отправка", "ИмяПКО"); СвойстваШапки = ПравилоКонвертации.Свойства; //Добавляем правила ДобавитьПКС(СвойстваШапки, "СтатусЗаказа", Неопределено); КонецПроцедуры
Но увы, это не помогло. В общем, надо разобраться, как в XDTO добавить свои поля.
Договорился с клиентом, что все же настроим обмен через каталог, тогда можно будет отладить выгрузку и посмотреть, как получить желаемое.
Продолжение следует…
Среда: Мобильная касса (для разработчиков) 3.14.7.0, Розница 2.3.10.61
Объем: 2 час.
![](https://geniy1s.ru/wp-content/uploads/2022/03/2-1-2-1024x548.jpg)
Свежие комментарии