Реализация в 1С архитектуры RESTful

09.12.16

Интеграция - Внешние источники данных

Пример реализации запросов с 1С к серверу, по принципу RESTful.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Пример реализцации работы RESTful API
.zip 4,83Kb ver:1.0.0
10 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

REST (RESTful) - это общие принципы организации взаимодействия приложения/сайта с сервером посредством протокола HTTP.

Всё взаимодействие с сервером сводится к следующим операциям:

  1. получение данных с сервера (обычно в формате JSON, или XML)
  2. добавление новых данных на сервер
  3. модификация существующих данных на сервере
  4. удаление данных на сервере

Таким образом, данные HTTP-запросы будут иметь различную смысловую нагрузку в REST:

  • GET /object - Получаем данные Объекта
  • POST /object - Добавляем Объект
  • PUT /object - Изменяем(модифицируем) Объект
  • DELETE /object - Удаляем Объект

Т.е. :

  1. GET-запрос /rest/users - получение информации о всех пользователях
  2. GET-запрос /rest/users/125 - получение информации о пользователе с id=125
  3. POST-запрос /rest/users - добавление нового пользователя
  4. PUT-запрос /rest/users/125 - изменение информации о пользователе с id=125
  5. DELETE-запрос /rest/users/125 - удаление пользователя с id=125

Примерный код функции отправки запроса из 1С:

Функция ЗапросHTTP(ТипЗапроса)
	//ТипЗапроса: POST, GET, PUL, DELETE
	
	ПараметрГЕТ = "";
	ТелоPOSTЗапроса = "";
	Если ТипЗапроса="POST" или ТипЗапроса="PUT" Тогда
		ТелоPOSTЗапроса = "parametr5=5&parametr6=6"; // POST (+для PUT)
	ИначеЕсли ТипЗапроса="GET" Тогда
		ПараметрГЕТ = "?parametr1=1&parametr2=2"; // GET
	КонецЕсли;
	АдресСтраницыНаСервере = "/test_restful.php"+ПараметрГЕТ; // ЗАПРОС
	
	ЗащищенноеСоединение=Ложь;
	Таймаут=30; // ждем ответ от сервера 30 сек
	
	СерверПриемник = "domainname.ru"; //имя сервера без протокола (http) и порта
	
	ЗаголовкиHTTP = Новый Соответствие;
	ЗаголовкиHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
	
	SSL =  ?(ЗащищенноеСоединение, Новый ЗащищенноеСоединениеOpenSSL(), Неопределено);
	НТТР = Новый HTTPСоединение(СерверПриемник, , , , , Таймаут, SSL);
	
	резутатПолучен=Ложь;
	Попытка
		//Формируем HTTP запрос
		ЗапросHTTP = Новый HTTPЗапрос(АдресСтраницыНаСервере, ЗаголовкиHTTP);
		//Устанавливает строку, из которого будет прочитано тело POST-запроса.
		ЗапросHTTP.УстановитьТелоИзСтроки(ТелоPOSTЗапроса);
		
		//Ответ от сервера получим в возвращаемом значении типа HTTPОтвет
		Если ТипЗапроса="GET" Тогда
			ОтветHTTP = НТТР.ВызватьHTTPМетод("GET",ЗапросHTTP);
		ИначеЕсли ТипЗапроса="POST" Тогда
			ОтветHTTP = НТТР.ВызватьHTTPМетод("POST",ЗапросHTTP);
		ИначеЕсли ТипЗапроса="PUT" Тогда
			ОтветHTTP = НТТР.ВызватьHTTPМетод("PUT",ЗапросHTTP);
		ИначеЕсли ТипЗапроса="DELETE" Тогда
			ОтветHTTP = НТТР.ВызватьHTTPМетод("DELETE",ЗапросHTTP);
		Иначе
			ВызватьИсключение("Неизвестный запрос: "+ТипЗапроса+"!");
		КонецЕсли;
		резутатПолучен=Истина;
	Исключение
		ТекстСообщения = НСтр("ru = 'Неудачная попытка соединения с '")  + СерверПриемник + ": " + ОписаниеОшибки();
		Сообщить("ПЛОХО "+ТекстСообщения);
	КонецПопытки;
	
	ПолученныеДанные="";
	
	Если резутатПолучен Тогда
		Если ОтветHTTP.КодСостояния = 200 Тогда
			// теперь можно разбирать ответ
			ЗаголовкиHTTP = ОтветHTTP.Заголовки;
			ЗаголовкиHTTP.Вставить("StatusCode", ОтветHTTP.КодСостояния);
			ПолученныеДанные = ОтветHTTP.ПолучитьТелоКакСтроку();
		Иначе
			Сообщить(ОтветHTTP.ПолучитьТелоКакСтроку());
		КонецЕсли;
	КонецЕсли;
	
	//Возврат ПолученныеДанные;
	Сообщить(ПолученныеДанные);
	
КонецФункции

Пример серверной части принимающей запросы от 1С:

if($_SERVER['REQUEST_METHOD'] == 'PUT') {
    $_PUT = array();
    $putdata = file_get_contents('php://input');
    $exploded = explode('&', $putdata);
    foreach($exploded as $pair) {
        $item = explode('=', $pair);
        if(count($item) == 2) {
            $_PUT[urldecode($item[0])] = urldecode($item[1]);
        }
    }

    echo "PUT\n";
    var_dump($_PUT);
} else if($_SERVER['REQUEST_METHOD'] == 'DELETE') {
    echo "DELETE\n";
    // параметры не нужны!
    //var_dump($_DELETE);
} else if($_SERVER['REQUEST_METHOD'] == 'POST') {
    echo "POST\n";
    var_dump($_POST);
} else if($_SERVER['REQUEST_METHOD'] == 'GET') {
    echo "GET\n";
    var_dump($_GET);
} else {
    echo "BAD\n";
}

В файле приведен весь данный код, и собран в рабочий пример. Архив содержит два файла: обработка для 1С - выступающая в качестве клиента и обработка для сервера на php.

Вступайте в нашу телеграмм-группу Инфостарт

restful rest restful api rest api

См. также

Внешние источники данных Разработчик Аналитик Пользователь 1С:Предприятие 8 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

35000 руб.

15.11.2022    33871    53    49    

51

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Разработчик 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

85400 руб.

05.10.2022    14602    17    8    

17

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Разработчик 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

122000 руб.

19.08.2020    30670    28    3    

29

Внешние источники данных Зарплата Бюджетный учет Разработчик Бухгалтер 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 7.хх учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

85400 руб.

24.04.2017    57689    99    165    

91

Производство готовой продукции (работ, услуг) Внешние источники данных 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Лесное и деревообрабатывающее хозяйство Россия Управленческий учет Платные (руб)

Обработка предназначена для загрузки файлов, выгруженных из системы Базис-мебельщик, в справочник 1С "Спецификации" для последующих процессов учета и диспетчирования полуфабрикатов и изделий.

10370 руб.

24.06.2021    26867    66    55    

48

Файловый обмен (TXT, XML, DBF), FTP Внешние источники данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Здравоохранение, медицина, стоматология Фармацевтика, аптеки Россия Платные (руб)

Внешняя обработка «Загрузка документов из eФарма» создана для программы 1С:Бухгалтерия предприятия, редакция 3.0 (версии Базовая, Проф и Корп). Обработка позволяет загружать документы в базу 1С из файлов выгрузки, имеющих формат .DBF, которые создаются в программе eФарма или eФарма2, а также из любых других программ, формирующих файлы-выгрузки с таким же расширением.

9760 руб.

15.03.2024    2893    5    0    

7
Для отправки сообщения требуется регистрация/авторизация