Несмотря на имеющийся, довольно богатый функционал продуктов 1С, бывают ситуации, когда приходится прибегать к их интеграции со сторонними приложениями.
Одной из самых распространенных ситуаций такого рода является работа с сайтами, на которых можно заказывать товары или услуги.
Чтобы не дублировать вручную информацию о заказах в 1С, многие прибегают к обмену данных при помощи скриптов на PHP
А это означает, что программистам 1С было бы неплохо хотя бы представлять, как вызывать скрипты на этом языке программирования.
Примеры работы с PHP
Основный объектом платформы 1С 8.3 для работы со скриптами на сайтах является «HTTPСоединение». Именно через него проходит авторизация и определяется, какой механизм на сайте нам нужно запускать. В качестве параметров в новый объект для соединения с сайтом нужно передать следующие данные:
- Адрес сайта и наименование скрипта на PHP;
- Имя пользователя для авторизации и получения доступа к данным;
- Пароль вышеуказанного пользователя.
HTTP = новый HTTPСоединение("_АдресСайта_/ImportPrice1С.php",,ЛогинПользователя,ПарольПользователя,,);
После выполнения этой строки кода, чтобы работать дальше, необходимо проверить, смогла ли 1С подключиться и авторизоваться для выполнения скрипта. Для этого воспользуемся методом «Получить()», который должен нам вернуть слово «success» в случае положительного результата. Удобнее записать это слово в файл, чтобы была возможность проанализировать ход выполнения программы.
Для этого мы используем еще один параметр, в который нужно положить путь с именем файла:
HTTP.Получить("_АдресСайта_/ImportPrice1С.php?mode=checkauth",ФайлДляПроверки);
После того как мы записали ответ с сервера об успехе подключения, можно описывать непосредственно выполнение скрипта PHP. Естественно, необходимо предусмотреть проверку успешности подключения, поэтому придется считывать сообщение из записанного файла. Это можно реализовать при помощи объекта «ТекстовыйДокумент()». Если слово «success» найдено в файле, то можно запускать скрипт PHP прямо из 1С:
ОтветССервераВФайле = Новый Файл(ФайлДляПроверки);
Если ОтветССервераВФайле.Существует() Тогда
ОтветИзФайла = Новый ТекстовыйДокумент();
ОтветИзФайла.Прочитать(ФайлДляПроверки);
Если ОтветИзФайла.КоличествоСтрок()>0 Тогда
ОтветСервераНаЗапрос = ОтветИзФайла.ПолучитьТекст();
Если ОтветСервераНаЗапрос = "success" тогда
HTTP.Получить("_АдресСайта_/ImportPrice1С.php?mode=query", ФайлДляПроверки);
КонецЕсли;
Иначе
Сообщить("В файле отсутствует ответ с сервера");
КонецЕсли;
КонецЕсли;
Как вы могли убедиться на примере, взаимодействие PHP и 1С не должно вызвать больших затруднений, если отсутствуют особые виды защиты. Знание вышеперечисленных механизмов может помочь вам в реализации обмена информацией между 1С и сайтом. Возможны ситуации, когда выгоднее реализовать получение информации через 1С скриптом PHP, чем настраивать выгрузку в определенный формат файла.
консультация эксперта
самые свежие новости 1 раз в месяц