#
Добрый день, подскажите пожалуйста, как должны выгружаться из 1с статусы заказов? Создал дополнительный реквизит Статус заказа в 1с и перечислил все статусы как на сайте. Но при смене статуса в 1с - на сайте статусы не меняются.
Модератор
#
Re: 1с
Должен прийти Документ с
<ХозОперация>Заказ товара</ХозОперация>
, статус заказа получается из ЗначениеРеквизита, у которого Наименование равно "Статус заказа", пример:
<ЗначениеРеквизита>
<Наименование>Статус заказа</Наименование>
<Значение>[N] Принят</Значение>
</ЗначениеРеквизита>

Пример XML см. http://v8.1c.ru/edi/edi_stnd/131/from.xml
#
Re: 1с
Подскажите, а как отловить файл xml с заказами, который приходит из 1с ?
Модератор
#
Re: 1с
aleksandrx100,
в ТДС обмена с 1С (в самом низу) в блоке
elseif ($sType == 'sale' && $sMode == 'import' && !is_null($sFileName = Core_Array::getGet('filename')))
закомментируйте строку
is_file($sFullFileName) && Core_File::delete($sFullFileName);
и в hostcmsfiles/tmp/1c_exchange_files/month-8/ будет файл лежать после обмена. Не забудьте его удалить после того, как посмотрите и вернуть закомментированную строчку.
#
Re: 1с
Спасибо получилось. Оказывается в значениях реквизита нет реквизита со статусом. Я создал дополнительный реквизит для заказов в 1с, но этот реквизит с названием Статус заказа не передается из 1с при обмене. В какую сторону смотреть?
Модератор
#
Re: 1с
aleksandrx100,
попробуйте задать вопрос поддержке 1С или специалисту, который обслуживает вашу 1С.
#
Re: 1с
Этот специалист я, поэтому и спрашиваю.
#
Re: 1с
Подскажите, хочу устанавливать статус оплаты - если есть реквизит Дата оплаты по 1С. Как установить статус оплаты?
Нужно использовать?:
$oShop_Order->paid();
Модератор
#
Re: 1с
aleksandrx100,
в версии 6.9.0 добавили два события при импорте заказов:
    * @hostcms-event Shop_Item_Import_Cml_Controller.onBeforeImportShopOrder
    * @hostcms-event Shop_Item_Import_Cml_Controller.onAfterImportShopOrder

у первого в аргументы передается array($oDocument), у второго array($oDocument, $oShop_Order) при этом если заказ не найден, то в $oShop_Order будет null.

Чтобы установить заказа оплачено, нужно вызвать метод paid()
#
Re: 1с
В оператор switch добавил метку Дата оплаты по 1С в файле modules/shop/item/import/cml/controller.php , но что то статус заказа на оплачен не меняется. В чем может быть причина?
   
case 'Дата оплаты по 1С':
                        if ($sValue != '')
                        {
                        
               $oShop_Order->paid();

               ob_start();
               $oShop_Order->changedOrder('changeStatusPaid');
               ob_get_clean();
                        }
                     break;
Авторизация