gifts2017

Прогресс-бар длительных серверных операций (БСП)

Опубликовал Сан Саныч (herfis) в раздел Программирование - Инструментарий

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

Суть технологии БСП вкратце: серверный алгоритм (в данном случае - процедура модуля обработки) запускается отдельным фоновым заданием, прогресс выполнения которого довольно остроумно считывается обработкой ожидания на клиенте из стандартного серверного пула сообщений пользователю.
Данная разработка потребовалась по причине того, что не удалось найти готового "кристаллизованного"  примера реализации этой технологии с использованием механизмов БСП.
В БСП эта технология применена в обработках удаления помеченных объектов и группового изменения объектов.
При наличии времени и желания - можно разобраться в их реализации. Мой шаблон просто сэкономит Вам время.
Периодичность записи прогресса на сервере задается в "ПараметрыДлительнойОперации.Вставить("ПериодЗаписи", 1)", периодичность опроса прогресса на клиенте - в "ПараметрыОбработчикаОжиданияДлительнойОперации.МаксимальныйИнтервал = 1". То есть по умолчанию - одна секунда.

Шаблон обработки можно использовать как "черный ящик". Серверный алгоритм реализуется в процедуре модуля обработки "ИсполнитьАлгоритмДлительнойОперации()". Запуск серверного алгоритма и передача параметров - в процедуре модуля формы ФоновоеЗаданиеДлительнойОперацииЗапустить(). Обработка результатов на клиенте - в процедуре модуля формы ФоновоеЗаданиеДлительнойОперацииЗагрузитьРезультат().

Ограничения использования: для работы требуется интегрированная в конфигурацию подсистема базовой функциональности БСП. Проверено под БСП 2.2. В БСП 2.1 не проверялась. В БСП 2.0 не работает.

UPD. Реализована поддержка для БСП 2.3 - можно добавлять в справочник дополнительных отчетов и обработок.

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

Наименование Файл Версия Размер Кол. Скачив.
ДлительнаяОперацияНаСервереДемо
.epf 10,29Kb
15.09.16
161
.epf 1.0 10,29Kb 161 Скачать

См. также

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

Комментарии

1. Яков Коган (Yashazz) 23.04.14 18:48
Во-первых, уже было как идея и как удачная "кристаллизованная" реализация, а во-вторых, из-за такой ерунды тащить половину БСП - овчинка выделки не стоит.
2. Сан Саныч (herfis) 24.04.14 07:44
Соль данной публикации - именно в максимальном использовании БСП. Чтобы изобретать минимум велосипедов, если БСП уже используется. Насчет "половины БСП" - все используемые из БСП функции относятся к подсистеме "Базовая функциональность"
3. Franchiser (Franchiser) 11.10.14 14:50
Все хорошо, но не реализован запуск этой обработки из справочника дополнительных внешних обработок. Предлагаю допилить)
4. Sergey Ryrikow (TopSergey) 30.03.15 12:52
Учитывая, что современные конфигурации (пример: Бухгалтерия 3.0) вовсю используют данные механизмы, то простой способ разобраться с этой балалайкой - как раз в тему.
5. Сергей Зеленовский (zels) 09.07.16 18:06
Не работает на последних релизах
6. ToTMoM ™ (ToTMoM) 15.09.16 12:04
(2) herfis, да, подскажите пожалуйста, а как правильно запускать её из справочника внешних обработок. А то срочная проблема возникла сейчас, а как допилить сходу не пойму...
Вот тема http://forum.infostart.ru/forum26/topic158267/message1620924/?result=reply#postform
7. Сан Саныч (herfis) 15.09.16 12:35
(6) ToTMoM, На свежих БСП не проверял, и для запуска из справочника внешних обработок не допиливал, каюсь. Постараюсь выкроить время и допилить, раз пример все еще востребован.
Но оперативно, к сожалению, это сделать не смогу.
8. Сан Саныч (herfis) 16.09.16 12:27
(6) ToTMoM, Доработал
1) теперь работает под БСП 2.3
2) работает в качестве дополнительной обработки. Но реализовано/проверял тоже под БСП 2.3
Если надо запустить доп-обработкой в ранней БСП со старой схемой декларации доп-обработок - просто заменить процедуру декларации доп-обработки в модуле и должно заработать. Можно было бы сделать универсально, но не было времени искать старый вариант декларации.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа