Используем Bitrix API в своих скриптах

1c-bitrixЧто нужно, чтобы использовать Bitrix API? Например в своих скриптах, в скриптах, запускаемых по расписанию и тд и тп.

Следующий пример — скрипт для запуска по cron.

Пишем в начале своего файла следующее.

Опишу поподробнее.

В начале файла определяем переменную $root и заодно $_SERVER[‘DOCUMENT_ROOT’] относительно этого скрипта.

Зачем определять $_SERVER[‘DOCUMENT_ROOT’]? Всё потому что при запуске срипта по cron переменная $_SERVER[‘DOCUMENT_ROOT’] не инициализируется, так как скрипт исполняется сам по себе при помощи интерпретатора php и знать ничего не знает о веб-сервере, корневной директориии и прочем.

Далее определяем константы LANG и NO_KEEP_STATISTIC. LANG это понятно. А NO_KEEP_STATISTIC как видно по названию — флаг, определяющий собирать статистику или нет.

Далее подключается файл prolog_before.php, где в свою очередь подключаются все остальные необходимые файлы.

Далее

Это мы подключаем главный модуль — все его классы, функции, константы и прочее.

Надо сказать, если вы хотите использовать API битрикса, связанный например с интернет-магазином, то надо ещё модуль sale подключить

Далее идёт

ну это просто чтобы увеличить лимит выполнения скрипта, который у меня по cron выполняется.
Ну а дальше можно писать свой код, где можно использовать Bitrix API.
И мой вам совет, не меняйте локаль в своём скрипте. Пускай остаётся такая, какая нужна битриксу, иначе результат работы bitix api будет непредсказуемым.
Если что вы всегда можете проверить работу функций здесь http://<адрес сайта>/bitrix/admin/php_command_line.php?lang=ru

Если запустить код в этой коммандной строке, то он будет работать с теми настройками, с которыми работает сейчас сайт. Ну это понятно думаю.

Рубрики: Битрикс
Понравилось? Поделись с другими плз












Комментарии ВКонтакте





Комментарии с сайта
  1. Павел:

    Автору огромная просьба: «Не ставьте, пожалуйста курсивы и пр. на целые абзацы.» В зависимости от разрешения экрана, масштаба и т.д. — иногда это очень тяжело читать. Одно-два слова — это выделение, а когда целые абзацы — очень отвлекает от смысла написанного.

    P.s.: Спасибо за статьи — интересные.

    • admin:

      Хорошо, постараюсь. Но по-моему в этой статье не так много курсива. Один курсив на адрес. Может какой то тег не закрыт.

  2. Влад:

    я использую более полный список

    define(‘NO_AGENT_CHECK’, true);
    define(‘NOT_CHECK_PERMISSIONS’, true);
    define(‘STOP_STATISTICS’, true);
    define(‘NO_KEEP_STATISTIC’, true);
    define(‘NO_AGENT_STATISTIC’, true);


Ответить Влад

*