Перейти к содержимому


Фото
- - - - -

Ошибка при выгрузке заказов в 1С



  • Чтобы отвечать, сперва войдите на форум
1 ответ в теме

#1 4XPro

4XPro
  • Пользователь
  • 1 сообщений
  • Программирование, Верстка, Пользователь
  • Откуда:Москва

Опубликовано 13.01.2018 - 00:03

Сегодня обнаружил весьма неприятную ошибку при выгрузке заказов в 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 тысяч.

Сейчас проверил, даже в самой последней версии эта ошибка присутствует.



#2 Плохиш

Плохиш
  • Пользователь
  • 32 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Орел

Опубликовано 13.01.2018 - 09:57

Подобные ошибки имеются в коде еще примерно в 5-6 местах и могут проявляться в десятке мест, например
http://forum.simplac...казу-в-админке/
http://forum.simplac...оваров-в-админ/

И сам подход автора, когда по умолчанию используется фиксированное значение $limit - совсем несерьезный...





Также с меткой «1с»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых