Я пошел по пути кастомизации обмена с 1с. Вся логика в классе CSaleOrderLoader, пришлось его копирнуть и подменить на свой в штатном компоненте sale.export.1c, предварительно конечно перекинув в свое пространство имен.
09.12.2016 10:10:01
Но опять же, сейчас выложили обновление документации где расписывается создание заказа с помощью API и логично что фреймворк позволяет сделать заказ без отгрузки и оплаты, да и заказ может спокойно без них существовать и изменяться. Соответственно мы создали заказ без отгрузки и оплаты, а айди служб доставки и оплаты сохранили в ШТАТНЫХ полях заказа, как увидеть что выбрал клиент? PS Я кстати ругаю не за то что сделали разработчики в битрикс, это как раз прикольно все мне нравится. Я ругаю за то что НЕ сделали, а именно гибкости настроек. |
|||||
|
08.12.2016 23:57:41
Создавать документы на стороне сайта и не дать возможности штатно отключить очень плохо. Не позволять подставлять способ оплаты и доставки выбранный клиентом в загружаемые документы из 1с вообще преступление... Пример 1. Зачем мне созданная оплата на сайте (кроме онлайн оплаты и то когда оплата состоялась, а не все подряд), если у нас это выгружается и создается в 1с на основании выписки из банка или по факту получения денег. Пример 2. Если документы выгружаются из 1с, то при изменении заказа в 1с, эти документы в отличии от сайта не меняются!!! И получается надо заставлять лезть на сайт и там менять заказ или руками править оплату и реализацию или допиливать 1с. Короче писец... Пример 3. И сайт и 1с захламляются кучей черновиков документов. Вот заказ отменили, зачем ему какие то доки? При маленьких объемах это не критично, а когда уже более менее серьезный магазин и давно работающий? И еще куча ситуаций, которые разработчики загнали в одни им понятные рамки на все случаи жизни. PS Оформление заказа уже как много лет кастомизировано, выход вижу только в создании заказа с помощью нового API без платежа и отгрузки (заменить старые вызовы CSaleOrder::Add). Но и тут "свинью подложили" не будет видно что выбрал клиент при оформлении, хотя старых полей в b_sale_order ни кто не отменял (PAYMENT_ID и DELIVERY_ID). Вот кому нибудь из команды битрикса вообще приходила мысль что отгрузку или оплату могут удалить на сайте, как узнать потом что хотел клиент? Опять ему звонить? Вы шутите? Придется самому через костыль выводить c помощью ajax и admin_header.php (ядро же нельзя по феншую). И кастомизировать выгрузку из 1с и наследовать и переопределять методы СSaleOrderLoader чтобы нормальные способы оплаты и доставки подставлялись в новых документах. Жесть... |
|||
|