|   |   | 
| 
 | Что это за стили в 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 подозрителен. Может он всю эту хрень вставляет.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |