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

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

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

 

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

 

 

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

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

 

 

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

 

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

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

 

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

 

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

      

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

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

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

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

#КонецЕсли

             КонецЕсли;

 

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

 

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

 

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

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

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

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

#КонецЕсли

             КонецЕсли;