15.07.2019 Вадим Хоменко 52069
Основные принципы взаимодействия с REST API (...

Содержание

1. REST архитектура — что это?

2. Подключение к серверу 1С

3. Формат данных json  

   

1. REST архитектура — что это?


Сегодня поговорим о связи баз данных 1С с RESTAPI.


Что же это такое, и какие основные принципы взаимодействия нужно знать? RESTAPI - это не более чем обычный веб интерфейс со своим набором команд. То есть мы можем взаимодействовать с ним посредством 1С http-запросов. Давайте посмотрим, как это происходит.


Главной особенностью архитектуры RESTAPI является то, что при каждом обращении сервер, принимающий запрос, думает, что принял это соединение впервые! То есть при каждом запросе передается уникальный ключ авторизации, который идентифицирует сессию. 


Есть несколько основных типов запросов архитектуры REST:
- GETзапрос (получает данные);
- PUTзапрос (передает данные);
- POSTзапрос (меняет данные);
Все эти типы используются в RESTAPI.


Сервер, получая запросы RESTAPI, определяет их тип и понимает, что будет происходить с переданными ему данными. Для того чтобы взаимодействовать с определенным API необходимо зайти на его страницу и изучить документацию. В ней обычно указывается, какие методы доступны для взаимодействия, какие данные и как принимает сервер, пример ответа на функции. 


2. Подключение к серверу 1С


На реальном примере это выглядит так: для начала мы создаем подключение к серверу 1С, используя параметры, хранимые, скажем, в константе (адрес сервера, ключ подключения).




Используя функцию добавления параметров к запросу, добавляем необходимые значения. Лично я всегда использую эту функцию для удобства формирования строки запроса. С ее помощью можно легко добавить большое количество разных параметров. Но строку с параметрами можно и вручную написать.





3. Формат данных json

 
Строка с параметрами в итоге выглядит вот так: &FactoryId=123&hashkey=0000
В строке запроса мы можем передать, например, hashkey и factoryId.
Передавая параметры на определенный сервер, мы в ответ получаем нужные данные (для get запроса) или подтверждение, что наши данные получены (когда мы, например, передаем информацию для записи на сервере). Обычно для передачи запроса/ответа в теле запроса используется формат данных json. В нашем случае так и есть.
Json – это формат текста. Мне очень напоминает xml формат онлайн. Он часто используется при взаимодействии с вебом и происходит от JavaScript, но при этом считается независимым от языка.
Пример формата данных json:
{

"id": "123",

"Name": "Sensors",

"table": {

"name": "Датчик движения",

"value": "154",

"date": "20190101"

},

"Numbers": [

"1234",

"5678"

]

}



Итак, получаем ответ от сервера:



Обрабатываем json, который содержится в теле ответа. Структура предполагаемых данных хранится, конечно же, в документации к api. Поэтому при чтении json мы точно знаем, к какому полю обратится.


Ответ сервера как массив данных (прочитанный json) мы передаем в функцию, которая записывает результат в базу данных 1С:Предприятие. В нашем примере структура данных 1С (метаданные) почти полностью совпадает по именам с названием формата данных json.

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




В итоге мы имеем связь, которую обеспечивает шина данных api сервера. На сервер мы передаем параметры подключения, которые идентифицируют сессию и параметры запроса, а в ответ получаем необходимые данные, которые обрабатываем в процессе синхронизации любым удобным для нас способом.




Полученные данные мы записываем в нужный объект данных. В нашем случае - «Справочник» или «Регистр сведений».


Таким образом, restapi – пример описанного набора команд на стороне архитектуры сервера с базой данных. Передавая имя метода и параметры, мы вызываем определенную функцию, которая может обработать переданные в параметрах данные (например, записать их в базу данных сервера) или вернуть нам запрошенные данные из своей базы. Вот так просто.


Специалист компании ООО «Кодерлайн» 

Вадим Хоменко.

Наши проекты

ООО "Смена"
ООО "Смена"

Отрасль:
Торговля, склад, логистика, транспорт

Внедренное типовое решение:
1С:Комплексная автоматизация

Банк и касса
Расчеты с контрагентами
Торговые операции
Взаиморасчеты с покупателями
Оптовая торговля...

Филиал ГлавУпДК при МИД России фирма «Инпредкадры»
Филиал ГлавУпДК при МИД России фирма «Инпредкадры»

Отрасль:
Государственное управление

Внедренное типовое решение:
1С:Бухгалтерия

- Расчеты с контрагентами;
- Управленческий учет;
- Формирование отраслевой отчетности;
- Интеграция с отраслевыми продуктами ст...

ООО "Эскорт-Центр"
ООО "Эскорт-Центр"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Сквозной учет затрат по объектам
- Бухгалтерский учет
- Расчет зарплаты
- Планирование и учет производства собственных изделий ...

СТС-Медиа
СТС-Медиа

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление холдингом

- Бухгалтерский учет;
- Налоговый учет;
- МСФО (GAAP/управленческий учет);
- Казначейство...

Разработка функциональных требований к информсистеме на базе «1С:Управление холдингом 8»
ФГУП «СВЯЗЬ-безопасность»

Отрасль:
Охранные услуги

Внедренное типовое решение:
1С:Управление холдингом

- Зафиксировали процессы по блокам бухгалтерского, налогового учета, казначейства, бюджетного управления, CRM, подсистем закупок и реализаци...

Внедрение ПП "1С:Управление небольшой фирмой 8 ПРОФ" в ООО «Шокостайл»
ООО «Шокостайл»

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Управление продажами, логистикой и транспортом (SFM, WMS, TMS):
- Планирование продаж;
Склад и логистика:
-Управление складскими ...

ООО «ДАФ Тракс Рус» (DAF Trucks Rus)
ООО «ДАФ Тракс Рус» (DAF Trucks Rus)

Отрасль:
Машиностроение

Внедренное типовое решение:
«1С:Управление корпоративными финансами»

- Осуществлена разработка матрицы прав и ролей для финансового подразделения:
• распределение ролей стало более четким и структурированны...

ООО "ОМЗ"
ООО "ОМЗ"

Отрасль:
Металлургическая промышленность, металлообработка

Внедренное типовое решение:
1С:Управление производственным предприятием

Автоматизация бизнес-процессов...

Автоматизация кадрового учета на базе ПП "1С:Зарплата и управление персоналом" в ТД НМК
ООО «Торговый дом Нальчикский молочный комбинат»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Кадровый учет;
- Расчет зарплаты;
- Регламентированная отчетность;
- Анализ кадрового состава;
- Учет рабочего времени; ...

МГК "Световые Технологии"
МГК "Световые Технологии"

Отрасль:

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Специалисты "Кодерлайн" произвели доработки в системе 1С:ЕРП 2.4 с учетом требований заказчика, осуществили настройки загрузки и выгрузки н...

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

Внедренное типовое решение:
1С:Управление корпоративными финансами

- Финансово-бухгалтерский блок
- Казначейство ...

Внедрение блока бухгалтерского учета «1С:Управление производственным предприятием»
ОАО «Издательство «Просвещение»

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление производственным предприятием

Бухгалтерский учет:
- Завершение периода;
- Регламентированная отчетность...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение