gifts2017

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

Опубликовал Антон Степанов (Stepa86) в раздел Программирование - Практика программирования

Это 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

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

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

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

См. также

Вознаграждение за ответ
Сумма: 0 $m
Добавили:
Татьяна Черных (tanya_charm) (0.20 $m)
Подписаться Добавить вознаграждение

Комментарии

1. Татьяна Черных (tanya_charm) 31.08.16 06:50
Отличная штука. Пошел тестировать.
2. Serg (serg_infostart) 31.08.16 09:44
вещщ!

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

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