Форум программистов, компьютерный форум CyberForum.ru

1С Web 1C + asp net web api - 1С

Восстановить пароль Регистрация
 
tmac
4 / 4 / 0
Регистрация: 11.10.2015
Сообщений: 12
27.12.2016, 22:11     1С Web 1C + asp net web api #1
Парни, доброго времени суток.
извините, если моя тема где-то пересекается, но ничего толком нужного найти не смог.
у меня такой вопрос, я поднял asp net web api сервер, настроил авторизацию через токены. проверяю разного рода утилитками, типа postman, все работает. отправляю запросы, сервер возвращает ответы. общение идет в формате json.
я в 1С вообще ничего не понимаю, не подходы, не концепцию, не идею.
А мой коллега 1сник испытывает проблемы с составлением в 1с http запросов.
Можете для "чайника" подсказать или кинуть пример, как отправить с 1С POST запрос на получение токена, при этом в теле запроса необходимо передать такие параметры как grant_type, username, password
Буду очень признателен, потому что если мой 1С-ник не начнет общение с моей БД через http-запросы, то мне придется колхозить обмен через ФТП...
Спасибо всем за понимание.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2016, 22:11     1С Web 1C + asp net web api
Посмотрите здесь:

1С Web. связать 2 разные конфигурации
1С и WEB 1С
Создание web сервиса 1с 1С
1С 1С Web Google map api
1С 1C 8.x 1C и REST API
Интеграция 1С с web-сервером 1С 1С Web
1С Публикация web-сервиса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dethmontt
Модератор
 Аватар для Dethmontt
2272 / 2081 / 302
Регистрация: 10.03.2011
Сообщений: 7,343
Записей в блоге: 1
Завершенные тесты: 1
28.12.2016, 03:33     1С Web 1C + asp net web api #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
вот самый простой пример
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
&НаКлиенте
Процедура ВыполнитьЗапрос(Команда)
// Создаем новое HTTP соединение с указанием сервера
// Последний параметр отвечает за использование защищенного соединения
HTTP = Новый HTTPСоединение(ИмяСервера,,,,,Истина);
// Получим временный файл для передачи в теле POST запроса
ФайлТелаЗапроса = ПолучитьИмяВременногоФайла();
// Запишем в файл содержимое тела запроса (текст)
ТекстФайл = Новый ТекстовыйДокумент;
ТекстФайл.УстановитьТекст(ФайлТелаЗапроса);
ТекстФайл.Записать(ФайлТелаЗапроса, КодировкаТекста.ANSI);
// Получим размер данных для передачи в заголовок
ФайлНаОтправку = Новый Файл(ФайлТелаЗапроса);
РазмерФайлаНаОтправку = XMLСтрока(ФайлНаОтправку.Размер());
// Получим временный файл — тело ответа POST запроса
ФайлРезультат = ПолучитьИмяВременногоФайла();
// Заголовок создадим в виде соответствия
ЗаголовокЗапросаHTTP = Новый Соответствие();
// Передаем в заголовках размер и тип данных на отправку
ЗаголовокЗапросаHTTP.Вставить(«Content-Length», РазмерФайлаНаОтправку);
ЗаголовокЗапросаHTTP.Вставить(«Content-Type», «application/json; charset=utf-8»);
// Отсылаем POST запрос на обработку.
// СсылкаНаРесурс — ссылка на веб-сервер (страницу), к которой посылается POST запрос
HTTP.ОтправитьДляОбработки(ФайлТелаЗапроса, СсылкаНаРесурс, ФайлРезультат, ЗаголовокЗапросаHTTP);
// Получим ответ
ТекстовыйФайлОтвета = Новый ТекстовыйДокумент;
ТекстовыйФайлОтвета.Прочитать(ФайлРезультат, КодировкаТекста.UTF8);
СтрокаОтветаСервера = ТекстовыйФайлОтвета.ПолучитьТекст();
КонецПроцедуры
tmac
4 / 4 / 0
Регистрация: 11.10.2015
Сообщений: 12
28.12.2016, 09:14  [ТС]     1С Web 1C + asp net web api #3
боюсь спросить, а где в этом коде указывается метод запроса POST?
и
РазмерФайлаНаОтправку = XMLСтрока(ФайлНаОтправку.Размер());
почему формируем XML, если нужен json?
Dethmontt
Модератор
 Аватар для Dethmontt
2272 / 2081 / 302
Регистрация: 10.03.2011
Сообщений: 7,343
Записей в блоге: 1
Завершенные тесты: 1
28.12.2016, 10:52     1С Web 1C + asp net web api #4
tmac, просто отдайте вашему 1С программисту )))

Добавлено через 12 секунд
и дайте ему тело запроса
tmac
4 / 4 / 0
Регистрация: 11.10.2015
Сообщений: 12
28.12.2016, 15:37  [ТС]     1С Web 1C + asp net web api #5
на всякий случай, выкладываю рабочий вариант, спасибо Dethmontt, за наводку!!!

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
HTTP = Новый HTTPСоединение("server.com");
 ФайлТелаЗапроса = ПолучитьИмяВременногоФайла("txt");
 ТекстФайл = Новый ТекстовыйДокумент;
 ТекстФайл.УстановитьТекст("grant_type=password&username=user&password=123456");
 ТекстФайл.Записать(ФайлТелаЗапроса, КодировкаТекста.ANSI);
 ФайлНаОтправку = Новый Файл(ФайлТелаЗапроса);
 РазмерФайлаНаОтправку = XMLСтрока(ФайлНаОтправку.Размер());
 ФайлРезультат = ПолучитьИмяВременногоФайла();
 ЗаголовокЗапросаHTTP = Новый Соответствие();
 ЗаголовокЗапросаHTTP.Вставить("Content-Length", РазмерФайлаНаОтправку);
 ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json; charset=utf-8");
 HTTP.ОтправитьДляОбработки(ФайлТелаЗапроса, "/token", ФайлРезультат, ЗаголовокЗапросаHTTP);
 ТекстовыйФайлОтвета = Новый ТекстовыйДокумент;
 ТекстовыйФайлОтвета.Прочитать(ФайлРезультат, КодировкаТекста.UTF8);
 СтрокаОтветаСервера = ТекстовыйФайлОтвета.ПолучитьТекст();
 Сообщить(СтрокаОтветаСервера);
tmac
4 / 4 / 0
Регистрация: 11.10.2015
Сообщений: 12
30.12.2016, 00:30  [ТС]     1С Web 1C + asp net web api #6
продолжу исследование 1С
значит, прошлым POST запросом был получен токен типа Bearer, теперь GET запросом из 1С обращаемся за данными используя токен в заголовке запроса, код:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
HTTP = Новый HTTPСоединение("server.com",,,,,);
 ФайлТелаЗапроса = ПолучитьИмяВременногоФайла("txt");
 ТекстФайл = Новый ТекстовыйДокумент;
 ТекстФайл.УстановитьТекст("Authorization = ");
 ТекстФайл.Записать(ФайлТелаЗапроса, КодировкаТекста.ANSI);
 ФайлНаОтправку = Новый Файл(ФайлТелаЗапроса);
 РазмерФайлаНаОтправку = XMLСтрока(ФайлНаОтправку.Размер());
 ФайлРезультат = ПолучитьИмяВременногоФайла();
 ЗаголовокЗапросаHTTP = Новый Соответствие();
 ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json; charset=utf-8");
 ЗаголовокЗапросаHTTP.Вставить("Authorization", "Bearer 72QKoy..............5w6hKwyof9ey3a");
 ХТТПЗапрос = Новый HTTPЗапрос;
 ХТТПЗапрос.Заголовки = ЗаголовокЗапросаHTTP;
 ХТТПЗапрос.АдресРесурса = "/api/controller_name";
 HTTP.Получить(ХТТПЗапрос,ФайлРезультат);
 ТекстовыйФайлОтвета = Новый ТекстовыйДокумент;
 ТекстовыйФайлОтвета.Прочитать(ФайлРезультат, КодировкаТекста.UTF8);
 СтрокаОтветаСервера = ТекстовыйФайлОтвета.ПолучитьТекст();
 Сообщить(СтрокаОтветаСервера);
Dethmontt
Модератор
 Аватар для Dethmontt
2272 / 2081 / 302
Регистрация: 10.03.2011
Сообщений: 7,343
Записей в блоге: 1
Завершенные тесты: 1
30.12.2016, 10:16     1С Web 1C + asp net web api #7
tmac, а какая у тебя платформа 1С? если 8.3 то в принципе можно обойтись и без текстового файла
tmac
4 / 4 / 0
Регистрация: 11.10.2015
Сообщений: 12
30.12.2016, 10:29  [ТС]     1С Web 1C + asp net web api #8
У нас установлена 8.3.7 платформа.
насчет текстовых файлов ничего не могу сказать, так как я в 1С полный ноль. по http-запросам уже много чего нового рассказал своему 1С-нику))) про тело запроса, про заголовки, json сериализация)))
в последнем Get-запросе, действительно можно обойтись без файлика, т.к. мой метод не принимает никаких данных, только отдает тестовый массив в json.
Dethmontt
Модератор
 Аватар для Dethmontt
2272 / 2081 / 302
Регистрация: 10.03.2011
Сообщений: 7,343
Записей в блоге: 1
Завершенные тесты: 1
30.12.2016, 12:57     1С Web 1C + asp net web api #9
Цитата Сообщение от tmac Посмотреть сообщение
в последнем Get-запросе, действительно можно обойтись без файлика
и в post запросе можно обойтись без файлика используя объект HTTPЗапрос

Добавлено через 1 минуту
tmac, методы Получить() и ОтправитьДляОбработки() это функции и они могут не записывая в файл возвращать объект HTTPОтвет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2016, 13:38     1С Web 1C + asp net web api
Еще ссылки по теме:

Создание Native API компонента для 1C 1С 1C 8.x
Настройка обмена данными с WEB-сайтом 1С 1С Web
В 1С можно оформлять web страницы? 1С 1С Web
При обмене между базами на web-сервер файл не найден 1С 1С Web
Перенос данных из одной базы в другую: Com или Web сервис? 1С

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
tmac
4 / 4 / 0
Регистрация: 11.10.2015
Сообщений: 12
30.12.2016, 13:38  [ТС]     1С Web 1C + asp net web api #10
я так понимаю, тут весь прикол файла в 1С, чтобы посчитать размер и передать в Content lenght.
подозреваю, что можно на лету посчитать длину строки и передать.

после НГ будем еще отрабатывать POST запросы на добавление записей в БД, используя токен, так накидаю еще примеры запросов, думаю, что кому-то еще пригодиться кроме меня.
Yandex
Объявления
30.12.2016, 13:38     1С Web 1C + asp net web api
Ответ Создать тему
Опции темы

Текущее время: 08:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru