Ajax в 1C или переделываем универсальный отчет в 1С.

image_pdfimage_print

Доброго времени суток!

Одно время я долго работал в фирме оптовой торговли. На тот момент это была доработанная Управления торговлей 10.3. В частности много и долго дорабатывал отчеты, а в управлении торговлей 10.3 большинство отчетов сделана через так называемый универсальный отчет. Мощная штука, основанная на построителе отчетов. Сейчас он в последних версиях 1С оно преобразовался в СКД, но не в это суть. Основное в том, что он тесно связан с визуальными элементами самой 1С. ПостороительОтчеты.Вывести(ТабличныйДокумент) делает практически все за Вас. Остальное заключается в правильной настройке, установке параметров и прочем обвесе.

Это конечно замечательно, но покопаться внутри очень хочется. И поможет нам в этом то,  что в большинстве случаев универсальном отчетом пользуются с достаточно простыми отборами и группировками. Тогда появилась идея реализовать при таких простых условиях работоспособный отчет с выводом данных в стандартную HTML таблицу. Вот такая коза с бояном. И если Вас не смущает следующая картинка, то данная статья точно для Вас.

Внутри самой 1С такой отчет будет не интересен. Слишком урезанные возможности, плохая поддержка стилевого оформления CSS, возможности  ПолеHTML урезаны по сравнения с Табличным документом. Но мы сделаем для полноты картины. А вот снаружи из браузера, используя вэб-сервис этот отчет мог бы оказаться очень привлекательным. См. картинки:

Опишем работу этого отчета:

Используем виртуальную таблицу ОстаткиИОбороты по одному регистру. Динамически создаем текст запроса, по подобию как он сделан в универсальном отчете 1С. Что выводим в Представлениях. Поля это наши группировки по строкам и ресурсы. Для расчета ресурсов используем раздел запроса ИТОГИ. Отборы делаем в условиях виртуальной таблицы.

Так как посттроитель отсчета завязан на элементы вывода самой 1С, его придется вырезать. Мы многое по теряем, и практически получим новый отчет.

Пока не работает (о грусном):

  • Реквизиты полей выбираются толко на нулевом уровне.
  • Отбор простейшие, через реквизит Наименование.
  • Нет группировок колонок
  • Показать скрыть группировки строк, колонок +/-, расшифровок
  • Дополнительное оформление
  • Простейшая печать

Если у Вас еще не пропала охота все это попробовать, прошу:

Попробовать тест (готовиться).

Установить себе:

  1. Скачиваем архив. [wpdm_file id=9]
  2. В архиве файл sikudaUnireport.cf — надо добавить в вашу конфигурация УТ 10.(Там 1 вэбсервис и один отчет).
  3. Пользователь 1С под которым у Вас вэб сервис, должен иметь права на чтение к регистрам накопления и добавленному отчету.
  4. Публикуем вебсервис c адресом sikudaws (получается путь типа http://localhost/[Директория публикации])
  5. Положить index.html в папку sikuda на вебсервер (у меня IIS C:inetpubwwwrootsikuda )
  6. Заходим на http://localhost/sikuda и тестируем.

Главное чтобы база 1С и адрес захода в index.html были на одном сервере.

Обработки на инфостарте http://infostart.ru/public/180203

 

Р.S.

Если отработать такой универсальный отчет, то можно легко сделать блок отчетов основанных на новом универсальном отчете. И сделать довесок к конфигурации, который легко добавляется в любую базу УТ10. Вы спросите зачем все это УТ10, уже есть УТ11, выходит УТ11.1. А если у вас все отлажено в УТ10 и вы еще не готовы к переходу, просто даем дополнительную возможность остаться на отлаженной схеме.