![]() |
|
v7: Пропадает сообщение в статусной строке | ☑ | ||
---|---|---|---|---|
0
zelenprog
26.09.12
✎
11:59
|
В обработке в статусную строку вывожу сообщение.
Оно там мелькает, но потом в статусной строке опять появляется: ".... нажмите F1" Из-за чего так происходит? |
|||
1
Heckfy
26.09.12
✎
11:59
|
Цикл закончился.
|
|||
2
Godofsin
26.09.12
✎
11:59
|
От того, что в коде очищается окно сообщений
|
|||
3
1Сергей
26.09.12
✎
11:59
|
так и должно быть
|
|||
4
Godofsin
26.09.12
✎
12:00
|
упс, сори, (2) не в тему )
|
|||
5
Ork
26.09.12
✎
12:00
|
(0) Система хочет сказать "Усьо сделано шеф. Я в стойке". Т. е. фокус попал опять на форму. Хочешь свое сообщение оставить "для потомков" - дублируй в текст на форме.
|
|||
6
zelenprog
26.09.12
✎
12:04
|
(1) нет, не закончился
|
|||
7
Heckfy
26.09.12
✎
12:05
|
(6) Тады код в студию
|
|||
8
zelenprog
26.09.12
✎
12:08
|
код удаления документов:
НачатьТранзакцию(); лСписокДокументовДляУдаления = СоздатьОбъект("СписокЗначений"); Док = СоздатьОбъект("Документ"); Док.ОбратныйПорядок(1); Док.УстановитьФильтр(1, 1, 1, 1, 1, 1); Док.ВыбратьДокументы(, дПоследняяДата); Пока Док.ПолучитьДокумент() = 1 Цикл лСчетчик = лСчетчик + 1; лДокСтр = глПредставлениеДокументаМой(Док); лСообщить = 0; Если (лПредДатаСообщения <> Док.ДатаДок) ИЛИ (лСчетчик % 100 = 0) Тогда лСообщение = " ... следующий документ: " + лДокСтр + " ..."; Состояние(лСообщение); лПредДатаСообщения = Док.ДатаДок; КонецЕсли; лДокСсылка = Док.ТекущийДокумент(); Если СписокСозданныхДок.НайтиЗначение(лДокСсылка) <> 0 Тогда Продолжить; КонецЕсли; лСписокДокументовДляУдаления.ДобавитьЗначение(лДокСсылка); Если Док.Проведен() = 1 Тогда Док.СделатьНеПроведенным(); КонецЕсли; Если Док.ПометкаУдаления() <> 1 Тогда Док.Удалить(0); КонецЕсли; лСчетчикУдаленных = лСчетчикУдаленных + 1; Если лСчетчикУдаленных % 400 = 0 Тогда ЗафиксироватьТранзакцию(); НачатьТранзакцию(); КонецЕсли; КонецЦикла; ЗафиксироватьТранзакцию(); |
|||
9
dk
26.09.12
✎
12:11
|
закомментируй нафиг условие по перед 2Состояние", не такой это ресурсоемкий код
|
|||
10
zelenprog
26.09.12
✎
12:14
|
(9) закомментировал...
но сейчас уже профессиональный интерес: что в коде заставляет строку состояния обнулиться? |
|||
11
Heckfy
26.09.12
✎
12:16
|
(10) Из условия выпадает по ходу. Вынеси состояние в
лСчетчик = лСчетчик + 1; лДокСтр = глПредставлениеДокументаМой(Док); лСообщить = 0; Состояние(лСообщение); |
|||
12
1Сергей
26.09.12
✎
12:18
|
(10) видимо, в предопределенных процедурах ПриОтменеПроведения, ПриУдалении, состояние меняется
|
|||
13
dk
26.09.12
✎
12:18
|
может в платформе время жизни сообщения строки состояния есть или какое-нить другое сообщение вылазит типа глОживить
|
|||
14
zelenprog
26.09.12
✎
12:20
|
(11) нет не выпадает, срабатывает как и нужно через каждые 100 циклов или на новой дате,
но оно просто мелькнет и сразу превращается в "... F1 ..." |
|||
15
zelenprog
26.09.12
✎
12:20
|
(12) другого сообщения точно нету, глОживить вообще в конфигурации есть, но в данной обработке не вызывается
|
|||
16
zelenprog
26.09.12
✎
12:20
|
грешу на транзакции
|
|||
17
dk
26.09.12
✎
12:21
|
комменть участки кода пока не найдешь "паршивца"
|
|||
18
zelenprog
26.09.12
✎
12:22
|
(17) жалко времени, думал может кто уже боролся с такой бедой
|
|||
19
zelenprog
26.09.12
✎
12:23
|
проще выводить для каждого прохода, вроде вывод состояния много времени не жрет
|
|||
20
vladko
26.09.12
✎
12:26
|
транзакция не виновата. Согласен с предположением (10)
|
|||
21
zelenprog
26.09.12
✎
12:27
|
(20) не понял с каким предположением, уточни...
|
|||
22
orefkov
26.09.12
✎
12:58
|
(0)
Сделай свою панельку в строке состояния и выводи туда текст перманентно. |
|||
23
zelenprog
26.09.12
✎
16:17
|
(22) это понятно.
интересен внутренний механизм 1С-ки из-за чего так происходит. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |