gifts2017

Серверное СКД для 8.1

Опубликовал Андрей Д. (detec) в раздел Программирование - Работа с интерфейсом

Данная разработка представляет собой пример организации выполнения отчётов на СКД, несложных в оформлении и непритязательных в плане пользовательского интерфейса, на сервере приложения 1С:Предприятие.  С выходом 8.2, разумеется, актуальность идеи снижается, но, вероятно, кому-то пригодится.

Данная разработка представляет собой пример организации выполнения отчётов на СКД, несложных в оформлении и непритязательных в плане пользовательского интерфейса, на сервере приложения 1С:Предприятие.

Ядро разработки - 2 общих модуля, один из которых - глобальный; второй - только серверный - для корректной передачи выполнения кода с клиента на сервер. В приложенной демобазе содержится пример отчёта на СКД, наполнение которого выполняется на севрере. Технология достатчоно простая. Клиент сериализует и передаёт настройки и имя отчёта. Для сложных отчётов предусмотрена передача сериализованной схемы компоновки, что позволяет использовать отчёты, исполняемые интерактивно из внешних файлов.

Сервер принимает строки XML и "распаковывает" их в соответствующие объекты либо создаёт схему компоновки из отчёта в конфигурации. Код СКД выполняется достаточно стандартно, данные расшифровки учитываются при компоновке и возвращаются в сериализованном виде на клиента. Фиксация шапки и повтор при печати запоминаются в структуре, возвращаемой на клиента и клиентом обрабатываются для сохранения неизменности отображения табличного документа с результатом.

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

Наименование Файл Версия Размер
Демобаза с модулями и отчётом 109
.rar 36,90Kb
15.10.14
109
.rar 36,90Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Артур Аюханов (artbear) 23.09.10 13:25
А смысл разработки? переложить тяжесть работы на сервер? так вроде и так все запросы делаются на сервере?
или я не прав.
Жду ответа
2. Андрей Д. (detec) 23.09.10 13:33
(1) Запросы действительно выполняются на сервере БД. И в стандартной ситуации клиент всасывает в себя результаты запросов и начинает выполнять компоновку, заполнять табличный документ. Обычно в эти несколько секунд клиентское приложение занимает 80-100% процессорного времени.
Я заметил, что на отчётах-простынях и на мощном сервере можно в 1,5 -3 раза ускорить общее время выполнения отчёта. Разумеется, если у вас СУБД и сервер приложения крутятся на одной машине, а пользователи вдобавок висят у вас в терминальных сеесиях на том же многострадальном сервере, то смысла во внедрении данной методики действительно нет. Разве что разбросать нагрузку на ядра процессора.
3. Дмитрий Елисеев (w-divin) 23.09.10 14:12
4. Трактор Трактор (Трактор) 27.09.10 10:10
Действительно, в 8.2 формирование отчёта на СКД переносится на сервер легко и просто, но тут, надеюсь, показана работа с настройками.
Разработку не смотрел. Плюсую авансом.
5. Андрей Д. (detec) 27.09.10 20:22
(4) В 8.2 всё и так по умолчанию на сервере, иначе просто не взлетит. Не совсем понял про работу с настройками. Настройки в примере выполняются платформенным редактором настроек компоновки данных. Если позарез нужно использовать какие-то нашлёпки пользовательского интерфейса, то настройки нужно прсото заполнить из интерфейса перед отправкой на сервер.
6. Владимир Кравчук (Power Team) (krava_vlad) 28.03.12 19:28
Спасибо.

Очень помогло можно сказать даже спасло :)

У меня в отчете есть данные которые пользователю недоступны (ограничение по РЛС), а нужно получить цифры с регистра отфильтровав их по запрещенным данным, то есть сказать нужно было запрос выполнить в привилегированном модуле.

Ура все получилось.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа