Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

запуск скрипта после выгрузки из 1С

00 голосов
3
Добрый день!

есть необходимость запускать скрипт, который генерирует CODE элементов, после выгрузки товаров из 1С.
Сейчас CODE генерируется на событие IBlockelementBeforeUpdate и IBlockelementBeforeAdd. При выгрузке новых товаров этот вариант срабатывает, а при обновлении товара почему то CODE затирается.

хотел сделать на событие IBlockelementAfterUpdate и IBlockelementAfterAdd, но там получается зацикленность, тоесть там приходится вызывать $el->Add или $el->Update.

можно ли как нибудь выловить момент окончания выгрузки, чтобы запустить скрипт обновления всех элементов с пустым CODE?

или может другое решение подскажите?
спросил 15 Окт, 13 от Poleolog (1,240 баллов)

3 Ответы

00 голосов
Код
При выгрузке новых товаров этот вариант срабатывает, а при обновлении товара почему то CODE затирается


А что в обработчике на IBlockelementBeforeUpdate у вас? Должно быть всё нормально, если всё нормально написать)
ответил 05 Ноя, 13 от Ajattara (380 баллов)
00 голосов
название событий немного неправильно написал, но неважно...

вот функция которая срабатывает до обновления

Код
function CodeGenerationS(&$arFields)
{
         if($arFields['CODE']=='')
            $arFields['CODE']=NameToUrl($arFields["NAME"]);
         if($arFields['CODE']==' ')
            $arFields['CODE']='';
}


Но видимо при выгрузке из 1С срабатывает это же событие, но оно срабатывает после моей функции и
меняет $arFields.
А функция и обработка события работают корректно. То есть если я зайду в админку и изменю элемент, то код сгенерируется и запишется.
ответил 11 Фев, 14 от Poleolog (1,240 баллов)
00 голосов
Цитата
То есть если я зайду в админку и изменю элемент, то код сгенерируется и запишется


Рекомендую проверить в каком вообще виде приходит в обработчик массив $arFields при импорте из 1С.
ответил 01 Июнь, 14 от Ajattara (380 баллов)

Похожие вопросы

0 голосов
4 ответов
спросил 24 Июнь, 13 от Titan91 (1,120 баллов)
0 голосов
1 ответ
0 голосов
1 ответ
0 голосов
2 ответов
спросил 05 Янв, 14 от asagava (680 баллов)