4XPro Posted January 12, 2018 Report Share Posted January 12, 2018 Сегодня обнаружил весьма неприятную ошибку при выгрузке заказов в 1С и решил поделиться тем, как ее исправлятьСуть ошибки: в модуле api/Orders.php в методке get_orders по умолчанию прописан лимит в 100 записей при получении списка заказов из базы данных. А в скрипте экспорта в 1С этот метод вызывается без указания лимита. В результате в 1С выгружаются только 100 записей. Соответственно, если с момента последнего обмена с 1С пришло или обновилось больше 100 заказов, то часть из них остается не импортированной.Исправление:в файле simpla/cml/1c_exchange.php меняем строку $orders = $simpla->orders->get_orders(array('modified_since'=>$simpla->settings->last_1c_orders_export_date)); на такую: $orders = $simpla->orders->get_orders(array('modified_since'=>$simpla->settings->last_1c_orders_export_date,'limit'=>10000)); увеличив тем самым количество строк, извлекаемых из базы до 10 тысяч.Сейчас проверил, даже в самой последней версии эта ошибка присутствует. Quote Link to post Share on other sites
Плохиш Posted January 13, 2018 Report Share Posted January 13, 2018 Подобные ошибки имеются в коде еще примерно в 5-6 местах и могут проявляться в десятке мест, например http://forum.simplacms.ru/topic/9579-%D0%BF%D0%BE%D0%B4%D0%B1%D0%BE%D1%80-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2-%D0%BA-%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%83-%D0%B2-%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%BA%D0%B5/ http://forum.simplacms.ru/topic/11111-%D1%83%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2-100-%D1%81%D0%B2%D1%8F%D0%B7%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2-%D0%B2-%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD/ И сам подход автора, когда по умолчанию используется фиксированное значение $limit - совсем несерьезный... Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.