Имя: Пароль:
1C
1С v8
Индикатор. В чем косяк?
0 Klesk
 
09.06.13
15:49
Ставлю период -  год, индикатор уже на середине показывает 100 %


ВсегоДней=День(Период.ДатаОкончания)-День(Период.ДатаНачала)+1;
   
   Счетчик=0;
   НачалоТекущийПериод=Период.ДатаНачала;
   КонецТекущийПериод=КонецДня(Период.ДатаНачала);
   УстановитьАктивностьДвиженийПоРегистрам(,Истина);    
   Пока КонецТекущийПериод<=Период.ДатаОкончания Цикл            
       ИсправитьОстатки(НачалоТекущийПериод,КонецТекущийПериод);
       Счетчик=Счетчик+1;
       Индикатор=Счетчик*100/ВсегоДней;
       ОбработкаПрерыванияПользователя();
       Состояние("Обработана дата " + Формат(НачалоТекущийПериод,"ДФ='dd MMMM yyyy'"),Индикатор);
       НачалоТекущийПериод=НачалоДня(НачалоТекущийПериод+24*60*60);
       КонецТекущийПериод=КонецДня(НачалоТекущийПериод);
   КонецЦикла;
   Предупреждение(" Обработка завершена");
1 Wobland
 
09.06.13
15:56
хреново ВсегоДней считаешь
2 Ковычки
 
09.06.13
15:57
(1)+
3 Wobland
 
09.06.13
15:58
а сколько дней в году по этому методу?
4 Klesk
 
09.06.13
16:27
спасибо, переделал так
ВсегоДней=(Период.ДатаОкончания-Период.ДатаНачала)/60/60/24;
5 Wobland
 
09.06.13
16:32
(4) без пяти полночь сегодня и пять минут первого завтра - 10 минут - это ноль дней?
6 Klesk
 
09.06.13
17:29
(5) я понял надо добавить НачалоДня КонецДня, но не сильно принципиально
7 Klesk
 
09.06.13
17:30
(6) + в моем случае
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший