|   |   | 
| 
 | Опубликовать отчет 1с через http сервис | ☑ | ||
|---|---|---|---|---|
| 0
    
        AlfaDog 17.03.17✎ 09:33 | 
        Добрый день , коллеги!
 Есть задача опубликовать отчет (табличный документ) через http сервис. Насколько это сложно, кто нибудь делал? Может быть у кого то есть пример? Буду крайне благодарен за помощь | |||
| 1
    
        Stepa86 17.03.17✎ 09:38 | ||||
| 2
    
        Остап Сулейманович 17.03.17✎ 09:44 | 
        (0) "задача опубликовать отчет (табличный документ) через http сервис. 
 Насколько это сложно, кто нибудь делал?" В такой постановке - лучше не начинать. Сначала нужно изучить терминологию. Http сервис публикуется сам. И предназначен для передачи данных. А не для публикации чего то еще. ЗЫ. Сначала напиши чего нужно. - Поиметь html с табличкой отчета? Что б показать в браузере. - Поиметь данные отчета на удаленной системе? Что б дальше оно само ... | |||
| 3
    
        xxTANATORxx 17.03.17✎ 09:46 | 
        (0)Сервис отдает ХМЛ или Json
 далее делаешь с ними что хочешь | |||
| 4
    
        Юрий Лазаренко 17.03.17✎ 09:53 | 
        (0) Если совсем тупо, то публикуешь http-сервис, в его модуле формируешь нужный отчет в формате табличного документа, сохраняешь его как html, читаешь и возвращаешь полученный текст браузеру ответе http-сервиса - вуаля.
 Но такой простой вариант может не прокатить, если отчет нужно отобразить не на отдельной странице, а на странице сайта - могут пересекаться стили, тогда надо переносить стили в head страницы. Ну и, понятное дело, всякие отборы/сортировки так просто не задашь. Плюс вопрос авторизации, если отчет не должен быть виден всем, или если его результат должен зависеть от того, кто зашел на сайт. | |||
| 5
    
        Юрий Лазаренко 17.03.17✎ 09:53 | 
        (3) Зачем XML, если можно сразу готовый html.     | |||
| 6
    
        AlfaDog 17.03.17✎ 09:57 | 
        (4) Спасибо за подробный ответ
 Можно только поподробней немного как сделать следующее: отчет в формате табличного документа, сохраняешь его как html. Как преобразовать табличный документ в формат html ? | |||
| 7
    
        mehfk 17.03.17✎ 09:58 | 
        (6) СП украли?     | |||
| 8
    
        eklmn гуру 17.03.17✎ 10:00 | 
        (7) ему СП не поможет, он технологию понять не может вот и спрашивает     | |||
| 9
    
        Юрий Лазаренко 17.03.17✎ 10:07 | 
        (6)
 ИмяВремФайла = ПолучитьИмяВременногоФайла(); ТаблДокСОтчетом.Записать(ИмяВремФайла, ТипФайлаТабличногоДокумента.HTML5); ТекстДок = Новый ТекстовыйДокумент; ТекстДок.Прочитать(ИмяВремФайла); ТекстОтчетаHTML = ТекстДок.ПолучитьТекст(); | |||
| 10
    
        AlfaDog 17.03.17✎ 10:21 | 
        (9) Большое спасибо!     | |||
| 11
    
        Юрий Лазаренко 17.03.17✎ 10:38 | 
        (10) Пожалуйста. Как возникнет необходимость в серьезной интеграции - обращайтесь, сделаем качественно.     | |||
| 12
    
        Stepa86 17.03.17✎ 11:49 | 
        а чего все (1) игнорируют? Там как раз то, что нужно - отчет, который по http отдается в html, json или xlsx     | |||
| 13
    
        oleg_km 17.03.17✎ 11:50 | 
        Я запихал в div:
 л_Рез = " <DIV CLASS=""tab_doc""> | " + л_СтраницаОтчета + " | </DIV>"; в л_СтраницаОтчета отчет как (9) | |||
| 14
    
        Юрий Лазаренко 17.03.17✎ 12:06 | 
        (12) Так там 1 SM надо, а тут бесплатно уже все рассказали.     | |||
| 15
    
        Юрий Лазаренко 17.03.17✎ 12:07 | 
        (13) Это правильно, но и этот вариант не всегда помогает, особенно, если отчетов на странице несколько. Тогда только переносом стилей в head.     | |||
| 16
    
        Юрий Лазаренко 17.03.17✎ 12:08 | 
        +(15) Можно и проще, через iframe, но это не самый лучший вариант.     | |||
| 17
    
        oleg_km 17.03.17✎ 14:52 | 
        (16) Ничего не понимаю в веб, но как только сделал пример на фреймах натолкнулся на статью, что фреймы это фи, это плохо и забудьте про фреймы. Почему - не запомнил, но решил обходиться без фреймов. Гуру веба виднее.     | |||
| 18
    
        badboychik 17.03.17✎ 15:08 | 
        У меня сделано так в обработчике http-сервиса расширения для Документооборота:
 Функция ReportsGet(Запрос) Ответ = Новый HTTPСервисОтвет(200); Ответ.Заголовки["Content-Type"] = "text/html; charset=UTF-8"; Параметры = Новый Структура; Параметры.Вставить("ИмяОтчета", Запрос.ПараметрыURL["ИмяОтчета"]); Параметры.Вставить("УИД", Запрос.ПараметрыURL["УИДДокумента"]); Если Параметры.ИмяОтчета = "ЛистСогласования" Тогда Отчет = ПолучитьЛистСогласования(Параметры); ИмяВрФайла = ПолучитьИмяВременногоФайла("mxl"); Отчет.Записать(ИмяВрФайла); Данные = Новый ДвоичныеДанные(ИмяВрФайла); Ответ.УстановитьТелоИзДвоичныхДанных(Данные); Иначе Ответ = Новый HTTPСервисОтвет(301); Ответ.Заголовки["Content-Type"] = "text/html; charset=UTF-8"; Ответ.УстановитьТелоИзСтроки("Нет такого отчета: "+Параметры.ИмяОтчета); КонецЕсли; Возврат Ответ; КонецФункции | |||
| 19
    
        Юрий Лазаренко 17.03.17✎ 15:09 | 
        (17) Все зависит от того, где и в каком контексте используются фреймы. Иногда это самый быстрый, самый лучший и самый надежный вариант выполнения задачи. Например, на этой странице есть как минимум 5 фреймов - и все ОК.     | |||
| 20
    
        oleg_km 17.03.17✎ 15:25 | 
        (18) И как пользователи, у которых нет 1С смотрят mxl? 
 (19) Т.е. фреймы не такое уж и зло? | |||
| 21
    
        Юрий Лазаренко 17.03.17✎ 15:52 | 
        (20) Зло, но могут приносить пользу, если правильно ими пользоваться и если нет другого способа решить задачу. Я за 16 лет работы с html использовал в своих разработках фреймы 1 раз.     | |||
| 22
    
        ТогдаКонецЕсли 17.03.17✎ 17:11 | 
        для ТС: я делал так - сначала примерно разрабатывал структуру отчета типа <Строка> <Колонка> <Значение>222</Значение> ..... </Колонка></Строка>. Построчно.
 Загоняешь это в все в строку, а при получении разбираешь в таблицу, ну там уже что хочешь с этим, то и делаешь. | |||
| 23
    
        Юрий Лазаренко 17.03.17✎ 17:14 | 
        (22) Так это ж JSON     | |||
| 24
    
        oleg_km 17.03.17✎ 18:36 | 
        (23) А по-моему - это велосипед с квадратными колесами     | |||
| 25
    
        Юрий Лазаренко 17.03.17✎ 18:39 | 
        (24) Ну я примерно то же самое хотел сказать, только сразу намекнул, как можно правильно решить задачу.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |