Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Что это за стили в http сервисе

Что это за стили в http сервисе
Я
   Глупый ответ
 
18.11.20 - 13:48
Решил http сервис палкой потыкать, сделал простой сервис который возвращает "hello world", а что оно мне какой то фигни в секцию стайл натолкало?
http://joxi.ru/1A5VOEgtbGQ5Nr

программный код.
Функция homegetTest(Запрос)
    Ответ = Новый HTTPСервисОтвет(200);
    Ответ.Заголовки.Вставить("Content-type","text/html;charset=utf8");
    Ответ.УстановитьТелоИзСтроки("Hello world");
    Возврат Ответ;
КонецФункции

где я просил 1С вот это все напихать в какой строке?
   ДенисЧ
 
1 - 18.11.20 - 13:52
А где ты этот веб-сервис опубликовал? Локально на 127,0,0,1?
Или где-нибудь у дядиДжо в юсайе?

Такое ощущение, что это у тебя провайдер такой добрый...
   Глупый ответ
 
2 - 18.11.20 - 13:52
и как мне просто html документ послать с тегами? Что там за оператор?

справка там просто божественная
УстановитьТелоИзСтроки (SetBodyFromString)
Синтаксис:
УстановитьТелоИзСтроки(<Тело>, <Кодировка>, <ИспользоватьBOM>)
Параметры:
<Тело> (обязательный)
Тип: Строка. 
Строка, которая будет записана в тело ответа

УстановитьТелоИзДвоичныхДанных(<Данные>)
Параметры:
<Данные> (обязательный)
Тип: ДвоичныеДанные.
Двоичные данные, которые будут записаны в тело HTTP-ответа.
   Глупый ответ
 
3 - 18.11.20 - 13:54
(1) да это моя локальная сеть. На виртуал боксе поднят windosw server 2012, на нем sql сервер, 1С и сервер 1С. айпи компьютера в сети 192.168.1.100
   ДенисЧ
 
4 - 18.11.20 - 13:55
(3) Тогда ищи друзей в компе. Какие-нибудь прокси, надстройки в бровзере и тепе.
А ещё лучше - через curl проверь, что тебе веб-сервис отдаёт напрямую.
   Глупый ответ
 
5 - 18.11.20 - 13:57
(4) да это только в опере, в мозиле все нормально http://joxi.ru/ZrJvZx1cnM6PXr
   Глупый ответ
 
6 - 18.11.20 - 13:58
а я на 1С думал, думал это разработчики 1С там какой то херни напихали.
   Глупый ответ
 
7 - 18.11.20 - 13:59
Тогда вопрос номер 1 снят. Вопрос 2. Как мне просто html документ вернуть с тегами. Могу я какой то шаблон сделать и пихнуть его с помощью hhtp  сервиса.
   Глупый ответ
 
8 - 18.11.20 - 13:59
*http
   Глупый ответ
 
9 - 18.11.20 - 14:00
а может быть у меня плагинов наставлено на оперу, и какие нибудь из них чудят, например addblock.
   Глупый ответ
 
10 - 18.11.20 - 14:04
могу я сделать какой нибудь шаблон и пихнуть его через http в виде html документа? Есть в 1С какое нибудь подобие шаблонизатора? Как мне описать html документ, строкой только?
   ДенисЧ
 
11 - 18.11.20 - 14:04
Так ты просто его и возвращаешь. А адблок тебе уже рекламу блокирует. Вот таким способом. Обрати внимание на урлы.
   Глупый ответ
 
12 - 18.11.20 - 14:06
(11) проехали уже стили, понятно что это addblock пихает скорее всего. Есть шаблонизатор в 1С?
   ДенисЧ
 
13 - 18.11.20 - 14:07
(12) нет, разумеется
   Глупый ответ
 
14 - 18.11.20 - 14:08
(13) почему разумеется? А чего делать? Как html сформировать? Только получается  json и на месте приложением каким то читать?
   Глупый ответ
 
15 - 18.11.20 - 14:16
как мне из строки запилить html документ с тегами? Какую ему строку дать, чтобы он вернул, что то типа
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1></h1>
    <p></p>
    
</body>
</html>
   Юрий Лазаренко
 
16 - 18.11.20 - 14:21
(15) Собирай свой html или построчно, или сначала формируй ДокументDOM, а из него получай html. И потом HttpОтвет.УстановитьТелоИзСтроки(ТвойТекстHtml)
   Глупый ответ
 
17 - 18.11.20 - 14:21
(16) кинь примеры кода, чтобы грабли не собирать.
   Глупый ответ
 
18 - 18.11.20 - 14:22
+(17) пожалуйста.
   Глупый ответ
 
19 - 18.11.20 - 14:23
Еще вопрос есть. Зашел на сервис с планшета, зашел с компьютера. А на сервере только 1 коннект висит, это значит можно 50 устройств на один сервис повесить или на каждый коннект лицензия нужна?
   ДенисЧ
 
20 - 18.11.20 - 14:25
(14) "почему разумеется?"
Потому что 1с не хтмл-движок.
хттп-сервисы по определению отдают жисон
   Глупый ответ
 
21 - 18.11.20 - 14:30
(20) спасибо. Ну теперь буду знать. Да и пофиг, все равно эти шаблоны уже вчеранший день, сейчас модно джейсонами плеваться.
   Глупый ответ
 
22 - 18.11.20 - 14:33
хотя прикольно бы было, если бы они какую нибудь команду сделали типа ЗапилитьМакетвHTMLДокумент(Макет). я думал такая есть.
   ДенисЧ
 
23 - 18.11.20 - 14:34
(22) Напиши на питоне с фласком и отдавай ему жисон, а от него уже шаблонный хтмл ))
   Глупый ответ
 
24 - 18.11.20 - 14:37
(23) так уже никто не работает, сейчас модно/молодежно json вместо html отдавать. Просто хотел для общего кругозора ознакомится с возможностями 1С.
   Юрий Лазаренко
 
25 - 18.11.20 - 15:06
(17) В интернетах полно статей, вот например: https://1c-programmer-blog.ru/programmirovanie/http-servisy-v-1s.html

(19) На каждый коннект лицензия не нужна. Если база на сервере 1С, то лицензия нужна только на сервер 1С, соединения через http-сервисы не лицензируются. Даже если ты подключил 50 коннектов и для их обработки создалось 5 сеансов на сервере, то клиентские лицензии не будут использованы вообще.

В файловой базе, когда подключаешься первым коннектом, запускается сеанс 1С, съедается лицензия. Сеанс обрабатывает входящий http-запрос, возвращает http-ответ, коннект разрывается. Сеанс потом висит некоторое время разогретым. Если в этот момент, пока он еще висит, первый коннект уже свой ответ получил и отключился, а второй подключается, то он подсосется к уже созданному ранее сеансу. То есть, коннекта было два, а сеанс в 1С только один. Тут все как в макдональдсе. Пришел покупатель, стал в очередь в кассу - считай на этой кассе запустился сеанс, лицензия съелась. Покупатель ушел - кассир еще минут 20 стоит за кассой. Если в это время заходит второй покупатель, то он сразу подходит на эту кассу - лицензия все еще одна, хотя клиентов уже двое. Если же третий покупатель зайдет, пока второй еще стоит у кассы, то для третьего покупателя открывают вторую кассу - съедается вторая лицензия. И т.д. Пока запросы успевают выполняться, не пересекаясь друг с другом, достаточно одного сеанса. Как только создается очередь - запускаются новые сеансы 1С и при каждом сеансе съедается лицензия. Как только лицензии закончатся, новых касс не будет и начнет собираться очередь запросов. С точки зрения посетителя макдака это "блин, у каждой кассы по 2 человека в очереди", у пользователя это будет "блин, страница раньше открывалась за полсекунды, а теперь открывается 5 секунд". При дальнейшем увеличении количества запросов они начнут отваливаться по таймауту.

На клиент-серверной базе то же самое: кассы открываются при необходимости, но количество касс ограничено не лицензиями, а только возможностями "ресторана": рано или поздно перегрузится или файловая система, или оперативка, или проц, и запросы точно так же станут в очередь.
Подробности вот тут можно почитать: http://catalog.mista.ru/1c/articles/883068/
   Юрий Лазаренко
 
26 - 18.11.20 - 15:07
(22) Такое есть уже много лет. Сохраняешь макет в html, читаешь как текстовый файл, возвращаешь его текст в теле http-ответа.
   Юрий Лазаренко
 
27 - 18.11.20 - 15:12
(20) http-сервисы по определению отдают либо строку, либо двоичные данные. Что у тебя будет в строке: html, json, просто "Hello world" - неважно. Никто не мешает генерить в ответе сразу html. Единственное ограничение тут - "это немодно, сейчас принято отдавать джисон". Но это ограничение сродни "ты че на механике, сейчас модно на автомате" или "1С это немодно, сейчас все идут в веб" или еще штук 500 аналогичных примеров можно подобрать.
   Глупый ответ
 
28 - 18.11.20 - 15:12
(26) Спасибо почитаю. Ну и как такое востребовано? Типа свой веб клиент на 1С.
   Юрий Лазаренко
 
29 - 18.11.20 - 15:16
(28) Востребовано, но сильно узким кругом заказчиков. Они что попало не купят. Ток что готовься стать на место Шарика из Простоквашино:
- Я два года кодил, чтобы свой веб-клиент на 1С сделать.
- Теперь еще 2 года потратишь.
- Это на что еще?
- А чтобы кому-нибудь его продать.

Там подводных камней столько, что пока сваяешь что-то готовое к продаже, пройдут многие месяцы.
   Глупый ответ
 
30 - 18.11.20 - 15:17
(25) статья так себе. Примеров кода нет вообще.
 
 Рекламное место пустует
   Глупый ответ
 
31 - 18.11.20 - 15:19
(29) Да я особо и не собирался. Зачем? Лично я просто для кругозора. Все через обмен с сайтом работают, я думаю такие решения трудно будет продать. Разработчик на java script дороже стоит, проебизнес удавится по 180 килорублей еще и js/react разработчику зп платить.
   Юрий Лазаренко
 
32 - 18.11.20 - 15:20
(30) Здрасьте. А это что? Как раз сборка ответа в виде строки и возврат его браузеру.

Функция ШаблонGetInfo(Запрос)
 тОтвет = "HTTPМетод - "+Запрос.HTTPМетод+"
";
 тОтвет = тОтвет+"БазовыйURL - "+Запрос.БазовыйURL+"
";
 тОтвет = тОтвет+"ОтносительныйURL - "+Запрос.ОтносительныйURL+"
";
 
 Для Каждого тЭлем Из Запрос.ПараметрыURL Цикл
 тОтвет = тОтвет+"
"+"ПараметрыURL["+тЭлем.Ключ+"]"+" - "+тЭлем.Значение;
 КонецЦикла;
 
 тОтвет = тОтвет + "
";
 Для Каждого тЭлем Из Запрос.ПараметрыЗапроса Цикл
 тОтвет = тОтвет+"
"+"ПараметрыЗапроса["+тЭлем.Ключ+"]"+" - "+тЭлем.Значение;
 КонецЦикла; 
 
 тОтвет = тОтвет + "
";
 Для Каждого тЭлем Из Запрос.Заголовки Цикл
 тОтвет = тОтвет+"
"+"Заголовки["+тЭлем.Ключ+"]"+" - "+тЭлем.Значение;
 КонецЦикла; 
 
 HTTPОтвет = Новый HTTPСервисОтвет(200);
 HTTPОтвет.УстановитьТелоИзСтроки(тОтвет);
 HTTPОтвет.Заголовки["Content-Type"] = "text/html; charset=utf-8";//сообщаем что это html

 
 Возврат HTTPОтвет;
КонецФункции
   Глупый ответ
 
33 - 18.11.20 - 15:22
+(31) Т.е. интернет магазин/сайт на битрикс, а с 1с обмен. Наиболее распространенная схема. Я ради интереса просто полез палкой потыкать.

(32) ясно, я промотал просто. Я бы хотел, что нибудь со сквозным примером от а до я, а не так чтобы кусок из контекста. Ладно спасибо.
   Глупый ответ
 
34 - 18.11.20 - 15:24
Зато мы наконец то поняли, чем ты там последние лет 5 занимался. Ниша интересная слабоконкурентная, но и маловостребованная.
   Глупый ответ
 
35 - 18.11.20 - 15:26
Да и хрен с ними с этими примерами, зачем их разбирать заучивать, если потом все равно через json работать. Ну любое приложение(1С,мобильное, web) его парсит и дальше уже с данными работает, без всей этой html мишуры, если надо само что надо рисует.
   Юрий Лазаренко
 
36 - 18.11.20 - 15:30
(33) Сквозных от а до я вряд ли в одном месте нарыть получится. Только кусками искать.
(34) Если бы 5. Уже 12 с лишним.
   mistеr
 
37 - 18.11.20 - 16:03
(0) Значок VPN подозрителен. Может он всю эту хрень вставляет.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс, 1996 г.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.