Добрый день, форумчане! Возникла задача - после выгрузки каталога из 1С переключить во всех товарах (во вкладке "Торговый каталог") галочку "НДС включен в цену" в положение выкл. Сейчас пока приходится после каждой выгрузки в БД массово у товаров менять поле "VAT_INCLUDED" с помощью команды
Код
UPD ATE `b_catalog_product` SE T VAT_INCLUDED = 'N' WHERE VAT_INCLUDED = 'Y' AND VAT_ID='1'
Но это же ужасное решение. Пытался в init.php прописывать собственные обработчики, но из-за недостатка знаний эти попытки не увенчались успехом. Вообще я думал должно быть что-то типо такого
Код
AddEventHandler('catalog', 'OnSuccessCatalogImport1C', 'customVATfield');
function customVATfield()
{
CCatalogProduct::setPriceVatIncludeMode(false);
}
Читал и про OnSuccessCatalogImport1C, и про пошаговые инструкции (за авторством Андрея Неймана ссылка), но нужны ли они мне здесь вообще? Возможно я просто что-то простое упускаю из вида. Спасибо.
Александр, сталкивался с такой проблемой. Техподдержка рекомендовала:
Цитата
Вы можете в файл /bitrix/php_interface/ini.php добавить код: AddEventHandler("catalog", "OnBeforeProductAdd", Array("My_Class", "OnBeforeProductAdd"));
class My_Class { function OnBeforeProductAdd(&$arFields) { if (@$_REQUEST['mode']=='import')//импорт из 1с? { $arFields["VAT_INCLUDED"] = "N"; return true; } } }
тогда товар будет добавляться с отключенной галкой «НДС включен в цену».
Денис, спасибо за ответ, но к сожалению этот хук тоже у меня не сработал. Уж не знаю что делать, после полной выгрузки товарам присваивается эта галочка с НДС, и все тут. Пример этот я так понял ТП взяла со страницы , просто изменив нужный параметр. Я добавил приведенный Денис Иванов код в init.php, в БД как раньше заменил руками нужный столбец на 'N', с помощью SQL запроса
Код
UPD ATE `b_catalog_product` SE T VAT_INCLUDED = 'N' WHERE VAT_INCLUDED = 'Y' AND VAT_ID='1'
и сделал полную выгрузку. После неё у всех товаров опять активировалось "НДС включен в цену". Есть еще какие-нибудь предложения?