Имя: Пароль:
1C
1С v8
Забавный глюк с циклом и перезагрузкой
,
0 Ненавижу 1С
 
гуру
24.04.12
08:28
В конструкции:

Для каждого ... Из ... Цикл
 ...
 ЗавершитьРаботуСистемы(Ложь,Истина); //перезагружаем сеанс
КонецЦикла;

не перегружает при итерации, а ждет до окончания завершения цикла и только потом перезагружает
1 andrewks
 
24.04.12
08:29
где глюк? попробуй реализовать такое на ассемблере
2 Ненавижу 1С
 
гуру
24.04.12
08:33
(1) я не знаю как такое реализовать на ассемблере (там модель другая), но вот так, удалось

Для каждого ... Из ... Цикл
 ...
 Если ... Тогда
   ФлагПерегрузки = Истина;
   Прервать;
 КонецЕсли;
КонецЦикла;
Если ФлагПерегрузки Тогда
 ЗавершитьРаботуСистемы(Ложь,Истина); //перезагружаем сеанс
КонецЕсли;

эффект тот же
3 andrewks
 
24.04.12
08:36
(2) какой ты хочешь иметь контекст цикла, если перезагрузка будет выполнена прямо в цикле?
4 andrewks
 
24.04.12
08:40
а, кажется, понял, что именно тебе не нравится. тебе не нравится то, что перезагрузка не выполняется непосредственно сразу после применения оператора?

а если так?

Для каждого ... Из ... Цикл
 ...
 ЗавершитьРаботуСистемы(Ложь,Истина); //перезагружаем сеанс
 Прервать;

КонецЦикла;
5 Ненавижу 1С
 
гуру
24.04.12
08:42
(4) эксперементировать не буду ))
но понял ты правильно
6 butterbean
 
24.04.12
08:47
я за goto
7 Нуф-Нуф
 
24.04.12
08:56
я думаю ЗавершитьРаботуСистемы просто не успевает сработать. запускаются процессы для завершения, но пока 1с не закроется код выполняется дальше. как-то так
8 ASU_Diamond
 
24.04.12
08:58
а если через Пока... цикл?
9 ComPAS
 
24.04.12
10:36
месье (0) знает толк в извращениях...))
10 andrewks
 
24.04.12
10:37
(7) чё курил?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс