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