Имя: Пароль:
1C
1С v8
Что это за стили в http сервисе
0 Глупый ответ
 
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 с лишним.
37 mistеr
 
18.11.20
16:03
(0) Значок VPN подозрителен. Может он всю эту хрень вставляет.
AdBlock убивает бесплатный контент. 1Сергей