При обменах на периферийных базах счетчик обмена сделан не очень красиво – он зависает на 10% и вся загрузка не отображается на счетчике.
Предлагаю методику, чтобы визуализировать прогресс загрузки/выгрузки.
Дело в том, что при загрузке или выгрузке точное число объектов не известно, вот разработчики типовых конфигураций и не доработали – прогрессор состояния обмена замирает на 10% и только в конце обмена достигает 100%:
При этом обмен может длиться достаточно долго и обычному пользователю может показаться, что программа зависла.
Чтобы избежать лишних обращений в службу поддержки, рекомендую сделать прогрессор, который будет выводить ход обмена на периферийной базе РИБ в строке состояния, как на картинке:
Для этого в модуль плана обмена добавляем две переменные:
Перем мСчетчикОбменаПолученоОтГлавного; //Осипов, для визуализации....
Перем мСчетчикОбменаПереданоВГлавный; //Осипов, для визуализации....
Корректируем процедуру обмена при получении данных от главного:
Процедура ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад) Экспорт
мСчетчикОбменаПолученоОтГлавного = ?(мСчетчикОбменаПолученоОтГлавного = Неопределено, 1, мСчетчикОбменаПолученоОтГлавного + 1);
Если мСчетчикОбменаПолученоОтГлавного % 50 = 0 Тогда
#Если Клиент Тогда
Состояние("Получено от главного: " + мСчетчикОбменаПолученоОтГлавного);
#КонецЕсли
КонецЕсли;
Корректируем процедуру обмена при отправке данных главному:
Процедура ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента)Экспорт
мСчетчикОбменаПереданоВГлавный = ?(мСчетчикОбменаПереданоВГлавный = Неопределено, 1, мСчетчикОбменаПереданоВГлавный + 1);
Если мСчетчикОбменаПереданоВГлавный % 50 = 0 Тогда
#Если Клиент Тогда
Состояние("Передано в главный: " + мСчетчикОбменаПереданоВГлавный);
#КонецЕсли
КонецЕсли;