Имя: Пароль:
1C
 
Индикатор процесса, работающий из модуля объекта документа.
0 ice777
 
08.04.10
14:39
При проведении документа обрабатывается куча записей некоего регистра.
Как бы отобразить на Форме документа индикатор, или иным способом отобразить прогресс?
1 Stepa86
 
08.04.10
14:40
Сообщить() ?
2 ice777
 
08.04.10
14:41
(1) не, с баром, ползущей лентой..
3 Поручик
 
08.04.10
14:42
Состояние();
Делать что-то с формой из модуля объекта моветон.
4 nop
 
08.04.10
14:42
Передавай в модуль переменную и с ней работай. Не забудь что формы может и не быть, или выполнение на сервере
5 ice777
 
08.04.10
14:43
(4) что-то такое в голову приходило.
Хочется проще.
6 nop
 
08.04.10
14:44
(5) проще - не делать этого вообще
7 Mitriy
 
08.04.10
14:44
(4) какую переменную?
8 nop
 
08.04.10
14:44
(7) ДокументОбъект.<Имя документа>.ДополнительныеСвойства (DocumentObject.<Имя документа>.AdditionalProperties)
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ДополнительныеСвойства (AdditionalProperties)
Использование:
Только чтение.
Описание:
Тип: Структура. Может использоваться в тех случаях, когда необходимо хранить некоторые значения, связанные с объектом, на время выполнения некоторых операций, без изменения объекта. Например, при обработке событий в подписке на события.
XML-сериализация.
9 Stepa86
 
08.04.10
14:45
если обработка происходит на сервере, то пока сервер не вернет управление обратно на клиент, клиент не будет знать сколько и чего там сделано...
10 Stepa86
 
08.04.10
14:46
(9) и чо с этим делать?
11 ice777
 
08.04.10
14:46
(8) делал я такое, но не для такой же мизерной цели городить.
(9) только толстый клиент.
12 Stepa86
 
08.04.10
14:46
(10) к (8)
13 nop
 
08.04.10
14:47
(10) а в 8.2 так же ?
14 Serg_1960
 
08.04.10
14:47
В модуле документа не место интерфейсным хотелкам :(
15 nop
 
08.04.10
14:47
(12) там проверять наличие переменной-индикатора
16 Mitriy
 
08.04.10
14:51
если не на сервере, то достаточно передавать параметром реквизит формы, с которым связан индикатор...
17 ice777
 
08.04.10
14:51
Ну и решения.)

Самое разумное, имхо, высказал (3).
Сделал строчку Сосотояние(строка(ТекПозиция)+" из "+Строка(ВсегоПоз))

можно ваще сделать бар символьный из этот функции.
18 Mitriy
 
08.04.10
14:52
(16)+ и изменять его в модуле объекта... на сервере не пытал...
19 Stepa86
 
08.04.10
14:53
(15) где проверять? нам нужно получить прогресс на клиенте, но управление сейчас на сервере...
(0) если хочешь полосочку, то цикл нужно выполнять на клиенте с увеличением индикатора и вызовом одной итерации чего либо откуда либо
20 Serg_1960
 
08.04.10
14:53
Контрольный выстрел: "куча записей некоего регистра" - уверен на 99,9% что  обработка выполняется не в модуле документа, а в самом регистре.
21 Живой Ископаемый
 
08.04.10
14:53
Процедура КнопкаВыполнитьНажатие(Кнопка)
  ПР=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
  Пр.ОтображатьПроцентВывода=Истина ;
  Эл=Новый ЭлементРезультатаКомпоновкиДанных;
   
  ПР.НачатьВывод();
  Для А=1 По 100 Цикл
     Эл.ПроцентВывода=А;
     //задержка, чтобы разглядеть  
     Для Б=1 По 10000 Цикл КонецЦикла;
     ПР.ВывестиЭлемент(Эл);
  КонецЦикла
  ПР.ЗакончитьВывод();
КонецПроцедуры

отсюда:
v8: Как вызвать Индикатор в строке состояния?
32-я реплика...
в вашем случае задержки не нужно очевидно...
но все сказанное по поводу проведения на сервере - верно
22 Живой Ископаемый
 
08.04.10
14:54
первоисточник:
http://infostart.ru/public/59581/
23 Stepa86
 
08.04.10
14:54
(21) шайтан =)
24 ice777
 
08.04.10
14:55
(20) конечно, в регистре. Более того, в том же.)
25 ice777
 
08.04.10
14:57
(21) шайтан в 32-ой реплике.) ради интереса счаз закатаю.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.