Дошло. Спасибо.
Silence!
I kill you!!!
I kill you!!!
Нашёл нужный кусок кода. Вот он считает, что если в файле с изменением остатков нет общего количества товара, то взять за общее количество цифру из остатков на этом самом прилетевшем складе. Кусок кода в методе CIBlockCMLImport::ImportElementPrices. Смотрел здесь Отдельное спасибо Долганину Антону за сервис Bitrix API Online.
Silence!
I kill you!!! |
|||
|
|
|
|
Эксперименты показали, что при выгрузке остатка со склада каким-то образом с помощью такой-то матери происходит пересчёт остатков. Если все склады сами (по отдельности каждый) выгружают остатки, то общий остаток (доступное количество), при отсутствии реквизита <Количество> у <Предложение>, устанавливается в количество товаров на последнем выгруженном складе.
P.S. Тема становится похожа на личный дневник экспериментов. Может кто хоть аналогичной проблемой поделится, уже не говоря про ответы на мои вопросы о системных механизмах...
Silence!
I kill you!!! |
|
|
|
|
|
1. Как рассчитывается общий остаток товара? Есть проблема: на складах остаток есть, но общий установлен в 0. Или общий остаток должен выгружаться отдельным реквизитом, а не рассчитываться?
2. Интеграция настроена на выгрузку остатков и цен по изменениям. То есть выгружаются только изменения, без удаления отсутствующих товаров в xml-файле выгрузки. Как в таком случае можно удалять некоторые товары при выгрузке?
Silence!
I kill you!!! |
|
|
|
|
|
В BF есть классы с методами для добавления элементов в инфоблок и торговый каталог. А есть ли методы для добавления коллекций элементов?
Я столкнулся с проблемой создания нескольких десятков тысяч элементов. Добавляю их циклом с созданием элемента и товара через CIBlockElement::Add и CCatalogElement::Add соответственно. Такой же цикл есть по обновлению имеющихся товаров. В целом около 14 тысяч товаров. Добавление и обновление идут около 40 минут. Предварительно идёт проверка через CIBlockElement::GetList по пользовательскому параметру для поиска существующих элементов. Я понимаю, что такое решение не рационально, так как к базе обращается туча запросов. Существует ли нативная возможность добавить несколько элементов одной транзакцией?
Silence!
I kill you!!! |
|
|
|
|