пятница, 14 марта 2014 г.

Битрикс 1С - не выгружаются нулевые остатки

Окружение

Битрикс 14 (14.0.14)
1С 8.2 (8.2.17.153) конфигурация Управление Торговлей для Украины 2.3 (2.3.18.1)

Проблема

В битрикс не выгружается информация о том что у товара нулевой остаток.
Т.е.е Если остаток больше нуля - битрикс его отображает после выгрузки.
Но если в 1С товара на остатках нет, то при выгрузке товара в битрикс информация об остатках не обновляется (остается тот остаток, который был до "нулевого").

Исследование

По этому вопросу наткнулся на ветку
https://dev.1c-bitrix.ru/community/forums/forum26/topic53668/
в ней и натолкнулся на идею.
На момент исследования решения не было

Решение

(подходит для тех, кто не боится поправить конфигурацию 1С)

В
Обработка.Обмен с сайтом.

Поправил функцию

ЗаполнитьСписокЗначенийПредложения

Там было такое условие

Если Остаток > 0 Тогда
  ДобавитьУзелCML(СписокЗначенийCML, "Количество", ФорматЗначенияДляCML(Остаток, ФорматКоличества));
КонецЕсли;

То есть при нулевом остатке в файл экспорта не попадала никакая информация
Я поправил его на такой вид (новый код выделил зеленым)

Если Остаток > 0 Тогда
  ДобавитьУзелCML(СписокЗначенийCML, "Количество", ФорматЗначенияДляCML(Остаток, ФорматКоличества));
иначе
  ДобавитьУзелCML(СписокЗначенийCML, "Количество", "0");
КонецЕсли;