HTTP Services URL: обмен между базами 1С 8 по шаблону через сервис интеграции — что это такое, как с помощью кода обратиться к нему, примеры через POST, методы настройки, способ httpсервисзапрос
На платформе 1C начиная от версии 8.3.5 и выше появилась новая возможность создания сервисов с уникальными HTTP services URL. Подобные системы позволяют не только осуществлять штатные задачи, как отправку, прием и корректировку данных, но и обладают куда более глубокими возможностями. Например, формирование простых, но действенных клиентских приложений. Плюс, что примечательно, общая нагрузка на сам сервер снижается, благодаря уменьшению объема сведений, а также их оптимизации.
В результате мы получаем отличный инструмент, позволяющих реализовывать самые непростые задания даже на смартфонах, ведь вычислительная мощность потребуется относительно небольшая.
Шаблон создания HTTP сервиса 1С
В первую очередь нам понадобится сам веб-сервер. Отличным вариантом считается Apache, подходящий версией от 2.2 и выше. Конкретнее про установку мы поговорим дальше в представленным обзоре, пока же по вводным факторам.
Для начала создаем сам serves. Вводим произвольное название, фактически роли это не играет.
А вот сам URL – это куда более важная часть. Именно по этому адресу будет доступен корневой каталог, поэтому заранее определите корректное наименование.
Свойств у только что нами созданного URL немного, а именно одно – шаблон. Это запись, по которой будет доступен путь до serves.
Вы можете задавать параметры для сегментирования. То есть, градировать на неопределенное количество внутренних разделов. Выполняется это с помощью следующих настроек.
А вот у методов уже есть возможность присвоения множества свойств. Таких, как движение, удаление, блокирование, соединение, получение, путь и так далее.
При обращении к системе автоматически будет сопоставлен введенный адрес с имеющимся шаблоном. И если они соответствуют, то в ответ выдается выбранный вами метод. Если же соответствия не произошло, то ответная реакция от HTTP сервиса 1С будет 404, что является кодом ошибки.
Публикация и проверка
Завершающим шагом будет отправка нашего созданного шаблона в работу. Но на многих версиях этого не получится сделать, если сама программа не была запущена от имени администратора. Если не получилось опубликовать ваш вариант, просто закройте конфигуратор и откройте снова через щелчок правой кнопки мыши и выбор соответствующей опции.
Итак, если мы все сделали верно, то в случае этого примера, он будет доступен по адресу – localhost/HTTPTest/hs/Obmen/test-parametr/Test/GetInfo?param=value.
Разберем каждый сегмент этого пути:
- Localhost – соответственно, сам адрес изначального сервера.
- HTTPTest – как вы можете наблюдать из скрина, именно такой набор символов мы ввели в названии нашей тестовой публикации.
- Hs – а вот это важнейшая часть. Это указатель, который дает понятие о том, что происходит именно обращение к 1С HTTP сервису.
- Obmen – это название корневого каталога, который мы задавали ранее.
- test-parametr – соответственно, указанный нами изначально метод определения, а точнее, его путь.
- GetInfo – это уже наименование.
- param=value – нестрогий вариант параметров.
При выполнении процедуры произойдет следующее.
Здесь мы обратились к методу, получили соответствующий ответ. При этом для работы нам в любом случае понадобится авторизация. И решить возникшее затруднение в принципе несложно. Потребуется просто задать новый логин и пароль. А после авторизоваться по введенным опциям. Но есть и другая методика реализации этой функции, если обратиться к 1С HTTP сервис vrd. Мы напрямую можем изменить файл default, добавив в блокнот следующую запись – Usr=Логин; Pwd=Пароль. В результате надобности в авторизации как таковой не будет. И наша публикация будет доступна свободно.
Как организовать складское хозяйство и автоматизировать процессы
Виды 1С: конфигурации и типовые отраслевые решения
- Какие бывают виды 1С: разновидности и список программ
- 1С: ЗУП — что это такое, описание бухгалтерской программы 1С: Зарплата и управление персоналом
- 1С: CRM — что это такое, инструкция по работе с программой, обзор возможностей, конфигурация с ПО
- 1С: УАТ — что это такое, руководство пользователя, инструкция программы Управления автотранспортом, видео
- 1С: ТОИР – что это такое, описание программы Управление ремонтами и обслуживанием оборудования
- 1С: Управление холдингом — что это такое и зачем нужна, внедрение и настройка системы
Разработка бизнес-софта и приложений на 1С
- Разработка мобильного приложения для ТСД под 1С: как разработать ПО для терминала сбора данных
- Программирование 1С для начинающих: как научиться программировать, основы разработки программы с нуля, самоучитель
- Как стать программистом 1С: с чего начать изучение программирования самостоятельно и что нужно знать будущему разработчику ПО
- Создание мобильного приложения 1С: разработка платформы и управление
- Шаблоны процессов в 1С: как их создать и настроить, виды
Интеграции 1С: как настроить передачу данных
- Интеграция сайта с 1С: как подключить и связать веб-ресурс с ПО — инструкция подключения и синхронизации
- Интеграция 1С с маркетплейсами: особенности работы и учет товаров
- Чтение XML-документов в 1С: как открывать файлы, способы их записи и преобразования в структуру
- Как выгружать данные из 1С в Excel: как правильно перенести и скопировать документы, файлы и таблицы в Эксель
- Конвертация данных в 1С: правила обмена и обработки базы, параметры выгрузки, примеры
- Интеграция 1С с Битрикс: настройка обмена и выгрузки, модуль синхронизации Bitrix с программным обеспечением
Отладка
Итак, чтобы в принципе была возможность корректировки, нам в изначальном файле нужно прописать некоторые параметры. А точнее – в режиме отладчика поставить опцию «Разрешена по IP/TCP». А также указать адрес сервера в соответствующем пункте.
Далее зайдем в режим чуть глубже, выберем в настройках – автоматическое подключение. Перед нами раскроется новая вкладка, где мы определим исходные факторы. Галочку необходимо поставить лишь одну, напротив соответствующего типа авто-коннекта. Поскольку мы говорим про методы обмена данными через веб HTTP сервис 1С между базами, нам и понадобится эта настройка.
А теперь перезапускаем сам сервер. Внесенные изменения должны ведь еще и сохраниться перед началом работы. После этого публикация станет доступной. Помните, что в принципе тестирование и оптимизацию можно провести не только внутренними силами программы, но и сторонними утилитами отладчиками. Fiddler2 может стать неплохим способом.
Не будем путать эти дополнительные инструменты с теми, которые помогают внедрить саму платформу в текущую программную экосистему на предприятии. Они носят совершенно иное название. А именно – 1С сервисы интеграции, что это легко понять, представив помощника, который просто связывает всю текущую систему 1C, ее задачи и нужды и ПО. Получается, переносит все требования в настройки конфигуратора.
Помните, что, если у вас не выходит самостоятельно произвести все обозначенные действия, вы всегда можете обратиться к поставщику программного обеспечения. Да, не все из них готовы взять на себя подобного рода деятельность. Но, заказывая ПО у «Клеверенс», вы получаете:
- полноценное внедрение систем;
- адаптацию для различных предприятий;
- по желанию полное техническое сопровождение;
- отладку;
- сервисы интеграции 1С.
Требование к инструментам
Теперь пойдем более подробно по всем возможностям. Чтобы у наших читателей не осталось вопросов. Раздел для тех, кто решил действовать самостоятельно. Первое, что понадобится, платформа/компьютер и доступ в интернет. Далее, как уже упоминалось, установленный сервер. И само программное обеспечение. И если первый пункт пояснений не требует, то с остальным давайте разбираться подробнее.
Веб-сервер Apache
Для начала зайдем на официальный сайт разработчика. И найдем здесь только голые исходники. Да, конкретно дистрибутива на платформе в наличии нет, это не компетенция проекта. А лежит она в плоскости деятельности различных партнеров. Благо, на самом виртуальном ресурсе есть соответствующие ссылки. Воспользуемся одной из них.
Действия такие – открываем скаченный exe-шник, но обязательно производим запуск от имени администратора. Иначе часть функций останется недоступными, а значит, установка пройдет некорректным образом.
Начальные параметры скорее стоит оставить по умолчанию, в основном они выбраны правильно для новичков. Единственное «но» заключается в выборе дополнительных компонентов. Вот здесь настолько огромный массив нам точно не понадобится. Поэтому снимаем галочки с лишних окон.
Если все прошло удачно, суммы файлов совпали, то после завершения процедуры у нас автоматически активируется приложение XAMPP.
Это правильно, но именно так оно будет отображаться, только если это ваша первая установка подобного программного обеспечения. Дело в том, что для подключения утилита занимает 80-ый порт. А значит, его не должны использовать другие программы. Если подобное случится, то вы получите совершенно иное сообщение. А выглядеть оно будет так.
Ничего страшного не случится даже в этом случае. Все, что нам нужно – это открыть конфигурации, чтобы внести некоторые корректировки. Для этого находим строчку Listen, и в ее числовом значении на конце после точки стираем написанное, вручную добавляем цифры 8080. Такие же манипуляции проводим и с именем сервера в том же раскрывшемся файле. Проблема решена.
Но осталась другая – нужно присвоить серверу свойство службы нашего Windows. Зачем это делать? Дело в том, что в противном случае параметры запроса к HTTP сервису 1С (httpсервисзапрос) будут не учитывать сам Apache. Соответственно, мы не сможем выбрать его в качестве источника публикации, после того как создадим наш проект.
Нам нужно найти установочный файл сервера с разрешением .bat. А после изменить в нем путь, дописав вот это – HTTPd.exe. Сохраните внесенные изменения. А теперь просто попробуйте его запустить, но опять же, обязательно от имени администратора. Вас должно ожидать подобное.
Устанавливаем платформу
Чтобы использовать возможности ПО, нужно его установить, логично. И процедура еще легче, чем предыдущая. Также запускаем exe-шник, оставляем все настройки на своих местах. Только добавляем модули расширения.
Рекомендуется после установки здесь же запустить новую базу. Для отладки некоторых моментов. А именно, заходим в конфигурации и активируем режим модульного использования.
Пара слов о протоколе
Давайте уделим немного внимания самому HyperText Transfer Protocol. Копнем слегка в его структуру, чтобы понимать, с чем имеем дело. А ее схематично можно представить вот таким образом.
Название структурного элемента |
Пояснение |
Строка запроса |
Поясняется сам метод, с помощью которого будет происходить обмен информацией. Соответственно, это и версия, и сам URL |
Заголовок |
Короткое описание, которое обычно содержит ключевые по значению параметры |
Разделитель |
Пустая строка |
Тело |
Содержание информационного пакета. Примечательно, что фактически он вполне может быть незаполненным, но обозначенные выше сегменты все равно должны присутствовать |
Как работает обмен данными
Немного поняв принципы самого протокола, переходим к тому, как обратиться к HTTP сервису 1C (1С:8), пример запроса выглядит так.
Рассмотрим более подробно.
Запрос
Эта функция позволяет нам с помощью объектного программирования составить текстовую составляющую адреса и заголовки. Первый момент отвечает за путь, которой направляет нас на объект, второй – содержит параметр соответствия. Примечательно, что вручную заполнять ничего не придется.
Соединение
Функция для передачи информации по протоколу. Может использовать различные типы защиты, например, TLS 1.2. При этом снабжается мерами аутентификации, то есть, необходимо введение логина и пароля.
Для обработки используются различные методы, как получить, отправить, отказать и так далее. Допустимо построение некоторых форм, как вариант:
Одним из распространенных способов является также 1C HTTP сервисы post-метода.
Далее мы рассмотрим, как происходит работа связки этих двух параметров на практике.
Создание соединения
Если рассматривать все на примере кода, то в самой первой строке нам нужно указать тип обмена данными, а также название нашего нового фрагмента. Допустим, «Закупка товаров» или любое иное, по вашему усмотрению.
Заголовок
Далее нам необходимо задать соответствие. В принципе, здесь есть только два основополагающих параметра. Первый – accept. Команда предназначена для определения типа сведений, а также файлов, которые будут приняты на сервере. Это картинки в обозначенных форматах, видеофайлы, текстовые и так далее.
Второй – user-agent. Это наименование инструмента, с помощью которого мы и осуществляем коннект.
Создаем запрос
Теперь по аналогии мы и запрашиваем исполнение файла. Сама форма состоит из двух частей. Первая — включает в себя путь до этого объекта, а вторая – ее тип соответствия. Если это изображение в .jpg, то так и прописывается. Для понимания – /wp-content/uploads/2021/11/sait.ru-logo-200wide-65high-2021-12-04-v12.png, примерно так будет выглядеть наш запрос.
Отправка
Для передачи нам понадобится лишь указать наименование объекта. Правда, полностью и с точностью. А также присвоить параметр получения, звучит он в программе, как Get.
Обработка
Обращаем внимание на код, который идентифицирует состояние процесса. Нас устраивает только успешная пересылка, а она обозначается как 200.
Работа с базами
Общие принципы мы уже успели уяснить. Теперь закрепим на конкретном прикладном кейсе. Итак, мы создаем новый проект с рандомным наименованием. Давайте, возьмем объект – клиенты (контрагенты).
В общих параметрах мы создаем соответствующий клиентский лист.
А также задаем метод обработки входящих данных, чтобы сервер распознавал, что от него вообще требуется.
Далее пойдем по коду.
Создание перечня customers
Для начала присваиваем значение для все базы, потом для каждого конкретного человека из общего перечня. Берем для идентификации следующие данные: имя, идентификатор, номер его мобильного телефона, а также адрес электронной почты. В общем-то, полностью готовый лид.
Сериализуем данные
То есть, мы переводим их из первоначальной формы в программную. Чтобы свободно передавать в качестве информационного потока.
Составляем ответ
Теперь же нам нужно указать, что именно даст обратно сервис, если к нему обратятся с соответствующим запросом.
Как мы помним, 200 – значение положительного результата нашей функции. Опубликованный запрос принимает следующий вид.
А в самом конфигураторе поиск выглядит так.
Забив же адрес в браузере, мы проследим ответ в форме сериализованных сведений.
Запрос на CustomerCode
Теперь разберем код, который позволит по идентификатору найти искомое лицо. Выполняется это также несложно.
Сначала сформируем сам запрос, который направим через 1С веб-сервис rest. Выглядит так.
Функция понятна. Если данных не найдено, то после параметра then у нас сработает следующая строка.
Как видим, в этом случае ответ не выдается. Очевидно, ведь его просто нет, по указанному идентификатору в базе никаких контрагентов не находится. Что же следует после else.
Правильно, при найденном номере автоматически заполняется карточка. Вносятся сведения по имени, номеру смартфона и электронной почте. Соответственно, итоговое искомое лицо и вся его характеристика найдена.
И не забываем про сериализацию, в противном случае отправку совершить будет невозможно.
Это тоже своего рода защита, как S в протоколе. То есть, 1С HTTP сервисы и HTTPS отличаются только степенью защищенности пользовательских данных.
Формируем ответ
Мы нашли нужного человека. Теперь нам необходимо, чтобы программа выдала данные в приемлемой форме. Вот в такой.
Итог.
Касательно post – алгоритм такой же.
И выдача приобретает такой вид.
Заключение
Как вы понимаете, для человека, который не прошел специальное обучение, освоение этой техники с нуля будет довольно проблематичным. Придется потратить значительное время, чтобы освоиться. Поэтому созданием и настройкой обычно занимаются профессионалы. Если же на вашем предприятии такого сотрудника нет, то логично будет пройти обучение. Ведь если не работает HTTP сервис 1С и обмен данными через 1C, настройка – в 90% и является причиной случившегося. Просто неверны базовые параметры. Соответственно, чтобы не парализовать производство всего отдела, к работе стоит допускать только компетентного человека, прошедшего соответствующий курс.