Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут!

Запуск php-скрипта из 1С

В этой статье я постараюсь дать пару советов по настройке активации скриптов на сайтах с помощью 1С.

Зачем это может понадобится? В моем примере запуск скрипта php мне понадобился для активации загрузки на сайте, cms которого — 1С-Битрикс. Т.е файл выгружается из 1С и сигнализирует сайту о необходимости подобрать файл. Тем самым достигается высокая оперативность обмена с сайтом.

На самом деле ничего тяжелого в данном процессе нет, но в силу специфики данной процедуры у программиста могут возникнуть некоторые проблемы с данным действием.

Описание задачи:

Было необходимо после выгрузки файла с данными из 1С как можно быстрее загрузить файл в  БД сайта. Для этого программистом, который разрабатывает сайт, был создан скрипт, который производил два действия — проверял авторизацию и активировал обмен со стороны сайта. Сам скрипт php имел вот такой вид «http://<site>/1c_prices_import_run.php».

Рассмотрим как же производился запуск этого скрипта.

GET запрос из 1С

Первым делом создается объект «HTTPСоединение» с  помощью которого производим авторизацию:

Получите 267 видеоуроков по 1С бесплатно:

HTTP = Новый HTTPСоединение(«<site>/1c_prices_import_run.php«,, НастройкаОбменаДанными.HTTPОбменИмяПользователя,  НастройкаОбменаДанными.HTTPОбменПароль,,);  //подключение

В параметры я передаю адрес скрипта php, пароль и логин. Этого достаточно если у вас нет других хитрых условий, вроде защищенной авторизации и прокси-сервера.

Вторым моим шагом была проверка подключения, в случае успешной авторизации данный скрипт возвращал мне слово «success» :

HTTP.Получить(«http://<site>/1c_prices_import_run.php?mode=checkauth«, ИмяФайлаОтвета);    // проверка авторизации

В параметрах метода Получить (аналог GET) мы указываем у скрипта php параметр «?mode=checkauth» который показывает, что это просто проверка связи. Второй параметр — «ИмяФайлаОтвета» это файл, в который будет записан ответ сервера.

Далее идёт проверка, если в ответе скрипта есть слово «success», запускаем тот же скрипт с параметром «?mode=query» который непосредственно активирует загрузку со стороны битрикса, вот так:

HTTP.Получить(«http://<site>/1c_prices_import_run.php?mode=query«, ИмяФайлаЗапроса);

На этом всё. Всё достаточно просто и работает на стороне 1С отлично.

Ну и в итоге покажу весь код целиком:

ИмяФайлаЗапроса= ПолучитьИмяВременногоФайла();

Попытка

HTTP = Новый HTTPСоединение(«http://<site>/1c_prices_import_run.php«,, НастройкаОбменаДанными.HTTPОбменИмяПользователя,  НастройкаОбменаДанными.HTTPОбменПароль,,);  //подключение

Исключение

КонецПопытки;

Попытка

HTTP.Получить(http://<site>/1c_prices_import_run.php?mode=checkauth», ИмяФайлаЗапроса);    // проверка авторизации

Исключение

СтрокаСообщенияПользователю = «Ошибка авторизация Битрикс»;

КонецПопытки;

ФайлОтвета = Новый Файл(ИмяФайлаОтвета);

Если ФайлОтвета.Существует() Тогда

ТекстОтвета = Новый ТекстовыйДокумент();

ТекстОтвета.Прочитать(ИмяФайлаОтвета);

Если ТекстОтвета.КоличествоСтрок()>0 Тогда

ОтветСервера = ТекстОтвета.ПолучитьТекст();

Иначе

СтрокаСообщенияПользователю = «Получение данных с сервера: Получен пустой ответ сервера.»;

КонецЕсли;

Иначе

СтрокаСообщенияПользователю = «Получение данных с сервера: Ответ сервера не получен.»;

КонецЕсли;

Если ОтветСервера = «success» Тогда // можно делать запрос

Попытка

HTTP.Получить(http://<site>/1c_prices_import_run.php?mode=query», ИмяФайлаЗапроса);

Исключение

СтрокаСообщенияПользователю = «Не удалось инициировать загрузку из битрикса»;

КонецПопытки;

КонецЕсли;

Попытка

УдалитьФайлы(КаталогВременныхФайлов(), ИмяФайлаЗапроса);

Исключение

КонецПопытки;

Кстати! Если вам необходимы доработка программ 1С – вы можете обратиться к нам! Подробности на странице услуги 1С.

P.S. Наша компания предоставляет услуги по настройке, доработке и комплексному внедрению 1С. Закажите бесплатный расчет стоимости вашей задачи на странице Услуги 1С или по телефону +7 (499) 350 29 00.

Остались вопросы?

СПРОСИТЕ в комментариях!

Комментариев: 3 на “Запуск php-скрипта из 1С
  1. А покажите пожалуйста пример на php как потом в пхп скрипте принять файл, переданный из 1С

    Ответить

    • К сожалению, на ПХП не программируем, наверное лучше посмотреть примеры парсинга файлов на специальных ресурсах 🙂

      Ответить

  2. А в Битрикс разве это уже не реализовано?

    Ответить

Добавить комментарий:

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*