HTTP-сервис: отчеты [Расширение]

Публикация № 545389

Программирование - Практика программирования

http web http-сервис отчет отчеты расширение

120
Это HTTP-сервис, который возвращает почти любой отчет в HTML, XLSX или в JSON. Сохраните вариант отчета, получите на него ссылку и можно получить данные без захода в 1С. Работает в конфигурациях на основе БСП 2.3.3+, для отчетов на СКД и в 1С 8.3.8+

В этом расширении вы найдете HTTP-сервис и вспомогательную обработку. В форме обработки можно сгенерировать нужные ссылки, переходя по которым можно в браузере открыть нужный вариант отчета.

Логин и пароль сохраняются браузером, поэтому вводить их нужно только один раз. Так же с помощью сервиса можно отдавать данные в любую другую систему, которая может выполнить http-запрос. 

Для правильного формирования ссылки из обработки необходимо, чтобы была заполнена константа АдресПубликацииИнформационнойБазыВИнтернете. Проще всего ее правильно заполнить, зайдя в базу через веб-клиент. Но можно и захардкорить прям в коде.

Что происходит внутри?

В качестве обязательного параметра url передается уникальный идентификатор варианта отчета. А в качестве необязательного параметра - формат ответа (HTML, XLSX или JSON).

Если по уникальному идентификатору удалось получить вариант отчета и на него достаточно прав пользователю, под которым авторизовались в сервисе, то строится выбранный отчет. Для json результат сохраняется в таблицу значений, а затем преобразуется собственно в json. Все не примитивные типы приводятся к строке.

Для остальных типов сохраняется отчет сохраняется в табличный документ, а затем конвертируется в html или в xlsx.

Устанавливаются соответствующие заголовки и возвращается ответ.

Пример генерирования ссылки и обращение к этому сервису программно из другой 1Ски можно посмотреть в обработке HttpСсылкиПоВариантуОтчета

Программистам

Это расширение можно подключить по стандартному и сразу начать пользоваться, немного пошаманив с публикацией, а можно так же добавить в форму отчета команду для быстрого формирования ссылки.

Так же в этом расширении вы можете подсмотреть примеры:

  • Работа с HTTP-Сервисом
  • Программная работа с отчетами
  • Конвертация результатов отчетов
  • Обращение к HTTP-сервисам
  • Работа с расширениями
  • Работа с JSON

Что делать, если в моей конфигурации нет БСП?

Достаточно внедрить БСПОт БСП в этом расширении используются только варианты отчетов, т.к. это очень удобный контейнер с данными по отчету - ссылкой на отчет и сохраненными пользователем настройками. Можно сохранять настройки в другом месте и как-то по идентификатору их восстанавливать.

Почему это сделано расширением?

А прост. Захотелось попробовать новую фишку от 1С. Единственное огорчение - я так и не смог придумать способа добавить в форму отчета свою кнопку, по которой можно было б прям из отчета получить ссылки. В 8.3.9 с возможностью переопределять методы в общих модулях это должно получится без проблем.

Полезные ссылки

Зазеркалье: Расширения

Зазеркалье: Средства работы с JSON

Зазеркалье: Web и HTTP сервисы в расширениях

ИТС: Пример создания HTTP-сервисов на платформе "1С:Предприятие"

ИТС: Расширение конфигурации

HOWTO: создание и отладка HTTP-сервиса в 1С:Предприятие

HTTP-сервисы для тех, кто ничего не понимает в WEB

Расширения конфигурации. Полезные советы для разработки

120

Скачать файлы

Наименование Файл Версия Размер
HttpСервисОтчеты.cfe
.cfe 20,12Kb
28.08.16
120
.cfe 1.0.0.0 20,12Kb 120 Скачать

См. также

Специальные предложения

Вознаграждение за ответ
Показать полностью
Комментарии
Избранное Подписка Сортировка: Древо
1. tanya_charm 31.08.16 06:50 Сейчас в теме
Отличная штука. Пошел тестировать.
2. serg_infostart 305 31.08.16 09:44 Сейчас в теме
вещщ!

Команды для получения ссылки можно добавить на форму если добавить общую форму отчета в расширение (если используется общая форма отчета) и определив функцию в расширении формы например ПриСозданииНаСервере(). Там же можно и другие команды заменить/переопределить. Тут хорошо описана работа с расширениями.
3. rus128 2 31.08.16 09:48 Сейчас в теме
"Все не приметивные типы приводятся к строке."
Все хорошо и красиво описано, но типы все-таки примИтивные :-)
Еще две опечатки заметил: "как то по идентификатору" (правильнее было бы "как-то") и "А прост." в последнем абзаце.
starik-2005; +1 Ответить
4. Stepa86 992 31.08.16 09:54 Сейчас в теме
(3) Спасибо, поправлю. Лучше такие вещи в личку писать. И в "А прост." нет опечатки

(2) Тогда придется всю форму выносить в расширение, и если она изменится в типовой или уже отличается, то могут быть проблемы. Нашел в БСП какой-то механизм "Подключаемые команды", который по идее должен как раз добавлять команды в формы, но как его прикрутить к форме отчета не придумал. В форме отчета так же есть подготовка по использованию этого механизма, но нет места (или я его не нашел), где можно подрубить через расширения свои команды.
5. DrAku1a 1303 01.09.16 05:23 Сейчас в теме
Может можно в рамках того-же HTTP-сервиса сделать страницу со списком отчетов для выбора? Тогда отдельные ссылки будут не нужны.
6. Stepa86 992 01.09.16 08:08 Сейчас в теме
(5) 1) Я очень сомневаюсь, что такая страничка, генерируемая полностью автоматом, будет полезна. Если и делать, то как это принято в подсистеме отчетов - на каждый раздел своя панель со своими вариантами.
2) Основная задумка сервиса - сначала настроить что нужно, а потом использовать. Такая форма со списком в нее не укладывается
7. virtex3 15 28.01.17 10:05 Сейчас в теме
Здравствуйте.

Нашел ваше замечательное расширение. Но вот к сожалению не сильно понимаю в программировании 1С.

У меня в конфигурации нет Справочника ВариантыОтчетов.

Вместо этого у меня есть Справочники.ИдентификаторыОбъектовМетаданных.
В этом справочник есть Родительский объект "Отчеты" и куча отчетов, которые ссылаются на родительский объект

Как заставить работать ваше расширение?
8. androgin 19.09.18 21:01 Сейчас в теме
как опубликовать http-сервис из расширения?
9. Lena272 20.09.18 09:09 Сейчас в теме
спасибо огромное за полезный материал и ссылки!
подскажите, пожалуйста, как добавить http-сервис из расширения в публикацию?

галку "Публиковать HTTP сервисы расширений по умолчанию" поставила
в инструкции написано, что это должно помочь
но ни в списке HTTP сервисов, ни в vrd файле эти сервисы не появились....

что-то я делаю не так.....
10. Lena272 24.09.18 15:33 Сейчас в теме
получилось опубликовать http сервис из расширения... в списке расширений для публикации он так и не появился, но из браузера стал доступен, при это в файле vrd его тоже нет...
11. Bene_Valete 60 04.10.18 04:50 Сейчас в теме
(10) Столкнулась с тем же, оказывается так и должно быть) https://wonderland.v8.1c.ru/blog/web-i-http-servisy-v-rasshireniyakh/ "В настройки публикации на веб-сервере мы добавили флаги, которые позволяют вам автоматически опубликовать все Web-сервисы расширений и все HTTP-сервисы расширений: А если у вас возникнет необходимость опубликовать лишь некоторые из них, то вы сможете это сделать вручную, указав нужные сервисы в vrd-файле."
Bassgood; Lena272; +2 Ответить
12. user1078903 10.01.19 20:36 Сейчас в теме
Добрый день!
Не получается воспользоваться вашим расширением.
Моя платформа: 1С:Предприятие 8.3 (8.3.13.1513).
Моя конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.65.72).
Во-первых, при установке расширения получил следующие ошибки:
1. HttpСервисОтчеты (1.0.0.0): Значение контролируемого свойства РежимСовместимости у объекта не совпадает со значением в расширяемой конфигурации
2. HttpСервисОтчеты (1.0.0.0): Не найден объект Роль.БазовыеПрава
Первую ошибку устранил так: в конфигураторе открыл свойства расширения и сменил режим совместимости с 8.3.8 на 8.3.12.
Вторую ошибку устранил так: из основной конфигурации добавил в расширение "БазовыеПраваБП", после чего удалил из расширения "БазовыеПрава".
После этого расширение активировалось, но при попытке получить любой вариант очёта (пробовал с десяток различных имеющихся в конфигурации) получаю пустой документ (будь то HTML, XLS или JSON - везде пусто, форма есть, а данных нету).
Подскажите, в какую сторону копать.
Заранее спасибо!
13. Stepa86 992 31.01.19 12:16 Сейчас в теме
Поддержкой и адаптацией этого расширения я не буду заниматься. Код открыт, на момент публикации все работало на актуальной на тот момент БСП.
15. Stepa86 992 31.01.19 13:03 Сейчас в теме
16. acanta 57 27.06.19 18:41 Сейчас в теме
Спасибо, очень интересно.
Оставьте свое сообщение