Имя: Пароль:
1C
1C 7.7
v7: Немонопольное удаление помеченных на удаление
0 vadim777
 
28.10.16
10:27
Скачал http://catalog.mista.ru/public/19666/, она меня озадачила.
Запускаю, вроденачинает работать,через время как бы тихо завершается.
Понатыкал отладочной печати, и что обнаружилось:
Процедура ПерезаполнитьТЗ()
.....
    Для сч = 1 По Список.РазмерСписка() Цикл
        знач_ = Список.ПолучитьЗначение(сч, );
        s = знач_.Вид();
        d = ТипЗначенияСтр(знач_);
        Список.УстановитьЗначение(сч, s,, );
        Список2.ДобавитьЗначение(d, );
    КонецЦикла;

Когда процесс заходит в этот цикл, то управление отдается 1С - можно работать как обычно. А цикл продолжает также работать. Как такое возмножно?
1 Это_mike
 
28.10.16
10:29
а ОбработкиОжидания - нигде нет?
2 vadim777
 
28.10.16
10:32
(1) Нигде
3 vadim777
 
28.10.16
10:34
(0) Дополнение: 1С на сервере 2008, база на ms sql2008. Но думаю это не влияет.
4 vadim777
 
28.10.16
10:37
Как только процесс вышел из цикла, обработка вновь управление забрала на себя,и пока процедура не отработала, больше управление 1С не отдавала. Странно все это...
5 Ёпрст
 
28.10.16
10:42
Посмотрел, не подтверждаю.
Нет передачи управления в 1с .
6 Базис
 
naïve
28.10.16
10:43
Подозрительны разные названия списков  Список и Список2. Нет ли изменений в списке при выборке записей из списка?
7 NikVars
 
28.10.16
10:44
(0) Попробуй вывести какую-то информацию через сообщить.
Например, размер списка перед циклом и размер списка2, например, в через каждый десяток. Интересен объем этих списков.
8 Ёпрст
 
28.10.16
10:45
(0)Если ты имеешь ввиду выполнение кода в приОткрытии() и в это время ты можешь по меню лазить - так это баян со времён Рупора.
9 NikVars
 
28.10.16
10:46
Суть списка.... В списке значение заменяется на его вид...
10 Ёпрст
 
28.10.16
10:46
И это работает только при первом открытии.
11 Ёпрст
 
28.10.16
10:46
И баяну, лет 16 :)
12 vadim777
 
28.10.16
10:49
(8) Точно, это вызывается из ПриОткрытии().
А кто такой Рупор?
13 Ёпрст
 
28.10.16
10:50
(12) ©РупорАбсурда
14 Ёпрст
 
28.10.16
10:50
15 vadim777
 
28.10.16
10:52
(14) Так это баян,глюк, или фича?
16 Ёпрст
 
28.10.16
10:53
(15) Фича 1с, баян со времён 7.5

Если в ПриОткрытии создать долгий цикл, то можно работать в 1с пока он не закончится, но только при первом открытии обработки. Второй раз откроешь - эффекта не будет

Достаточно так написать:

Процедура ПриОткрытии()
    Пока 1=1 Цикл
    КонецЦикла;
КонецПроцедуры
17 vadim777
 
28.10.16
10:57
(16)Спасибо, не знал...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший