gifts2017

Интерактивный счетчик объектов обмена

Опубликовал Осипов Сергей (fixin) в раздел Администрирование - Распределенная БД (УРИБ, УРБД)

При обменах на периферийных базах счетчик обмена сделан не очень красиво – он зависает на 10% и вся загрузка не отображается на счетчике.
Предлагаю методику, чтобы визуализировать прогресс загрузки/выгрузки.

 

Дело в том, что при загрузке или выгрузке точное число объектов не известно, вот разработчики типовых конфигураций и не доработали – прогрессор состояния обмена замирает на 10% и только в конце обмена достигает 100%:

 

 

При этом обмен может длиться достаточно долго и обычному пользователю может показаться, что программа зависла.

Чтобы избежать лишних обращений в службу поддержки, рекомендую сделать прогрессор, который будет выводить ход обмена на периферийной базе РИБ в строке состояния, как на картинке:

 

 

Для этого в модуль плана обмена добавляем две переменные:

 

Перем мСчетчикОбменаПолученоОтГлавного; //Осипов, для визуализации....

Перем мСчетчикОбменаПереданоВГлавный; //Осипов, для визуализации....

 

Корректируем процедуру обмена при получении данных от главного:

 

Процедура ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад) Экспорт

      

             мСчетчикОбменаПолученоОтГлавного = ?(мСчетчикОбменаПолученоОтГлавного = Неопределено, 1, мСчетчикОбменаПолученоОтГлавного + 1);

             Если мСчетчикОбменаПолученоОтГлавного % 50 = 0 Тогда

#Если Клиент Тогда

                    Состояние("Получено от главного: " + мСчетчикОбменаПолученоОтГлавного);

#КонецЕсли

             КонецЕсли;

 

Корректируем процедуру обмена при отправке данных главному:

 

Процедура ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента)Экспорт

 

             мСчетчикОбменаПереданоВГлавный = ?(мСчетчикОбменаПереданоВГлавный = Неопределено, 1, мСчетчикОбменаПереданоВГлавный + 1);

             Если мСчетчикОбменаПереданоВГлавный % 50 = 0 Тогда

#Если Клиент Тогда

                    Состояние("Передано в главный: " + мСчетчикОбменаПереданоВГлавный);

#КонецЕсли

             КонецЕсли;

 

 

См. также

Подписаться Добавить вознаграждение
Комментарии
1. v i (vis_tmp) 30.05.16 09:41
А пр выгрузке из центральной базы?
Посмотрел - делается аналогично.
2. Осипов Сергей (fixin) 31.05.16 07:27
(1) ну да, аналогично. правда в центре обмен происходит на сервере и некому показывать. А вот на точках продавцы смотрят и любопытствуют.