Имя: Пароль:
 
1C
1С v8
ОбработкаПрерыванияПользователя
0 Kamich
 
17.10.18
08:25
Добрый день.
В цикле выполняется процедура удаления движений по регистратору.
Так же используется стандартная процедура 1С ОбработкаПрерыванияПользователя().

Обработка прерывания выполняется успешно.

НО.

При использовании "паузы" - ОбработкаПрерыванияПользователя - не срабатывает.

Пока Выборка.Следующий() Цикл
            
     ОбработкаПрерыванияПользователя();
    
     Если ИспользоватьПаузы Тогда
          глПауза(ИнтервалСекунд);
     КонецЕсли;

КонецЦикла;

Пробовал и вначале и вконец цикла выполнять "ОбработкаПрерыванияПользователя" - один фиг... не срабатывает.

Как корректно выполнить обработку прерывания пользователем?)

Платформа обычная 1С 8.1
1 Cyberhawk
 
17.10.18
08:26
Что за пауза?
2 Kamich
 
17.10.18
08:28
(1) используя "ping"
3 Cyberhawk
 
17.10.18
08:28
Но зачем?
4 Kamich
 
17.10.18
08:30
(3) паузы нужны не сильно нагружать сервак...
процедура выполняется боевой базе с активными пользователями.
5 Cyberhawk
 
17.10.18
08:30
Какой сервак?
6 Йохохо
 
17.10.18
08:31
(4) "обычная 1С 8.1" это не боевая, это бойцовская
7 Kamich
 
17.10.18
08:35
сервак с sql сервером.

активных пользователей куча...
работают 24 часа...
8 Kamich
 
17.10.18
08:35
Есть варианты?
9 unregistered
 
17.10.18
08:36
Откажитесь от обработки прерывания. Это анахронизм.
Переделайте нормально на фоновое задание, которое будет обрабатывать данные порциями с желаемым расписанием (например, каждую минуту).
10 Cyberhawk
 
17.10.18
08:36
Если серверу СУБД требуется пауза для удаления движений, то что-то там у вас не так
11 unregistered
 
17.10.18
08:39
https://its.1c.ru/db/metod8dev#content:2599:hdoc
Следует учитывать, что прерывание выполняется только в момент вызова процедуры ОбработкаПрерыванияПользователя(). Выполнение длительных операций вызываемых из модулей, например, запросов, не может быть прервано.
12 unregistered
 
17.10.18
08:43
(10) > Если серверу СУБД требуется пауза..., то что-то там у вас не так

Ну почему же. При интенсивной работе 24/7 технологических окон для всякого рода чисток, дообработки данных и т.п. процедур становится катастрофически мало.
К тому же бывают задачи, когда данные нужно дообработать или дозаполнить оперативно, а не позже ночью, когда нагрузка уменьшается.
13 Kamich
 
17.10.18
08:56
(9) Это вариант отличный, но для текущей задачи необходим именно паузы.

Есть одна идея чуть позже отпишусь.
14 Cyberhawk
 
17.10.18
09:13
(12) Так он не про какие-то окна пишет, а про нагрузку
15 unregistered
 
17.10.18
10:41
(14) А по-твоему, обработка, которая лопатит большие массивы данных, не создаёт нагрузку?
Скорее всего, под нагрузкой автор понимает не именно нагруженность железа, а тормоза на ожиданиях блокировок.
16 unregistered
 
17.10.18
10:46
(13) > для текущей задачи необходим именно паузы

Зачем?
В чем принципиальная разница между паузой, возникающей между обработками очередной порции данных, и паузой, создаваемой искусственно при помощи ереси типа ping?
Причем в случае порционной обработки данных можно сделать так, чтобы пользователь мог настроить размер порции и частоту запуска (расписание) и менять их в ходе выполнения обработки.
Короче так, как сделано в подсистеме обновления конфигурации БСП, где можно настроить приоритет выполнения обработчиков обновления - ускорить обработку данных или отдать приоритет работе пользователей.
17 Cyberhawk
 
17.10.18
10:50
(15) Создает. Я и говорю, что там за сервер, если его надо паузами разгружать?
18 Вафель
 
17.10.18
10:52
(17) нужно смотреть не на сервер а на соотношение сервер/нагрузка
19 bolobol
 
17.10.18
10:53
(16) Собственно - вы и описали методы работы паузами, реализованные в БСП. Зачем задавать вопрос, если сами на него и отвечаете?

(17) Вы знаете сервер, который будет работать веерным способом с чёткими приоритетами, типа: "А, это пользователь проведение запустил, тааак... это всё мы потом, сначала - проведение от пользователя, а, блин, не - это ж обработка - тогда - нафиг, продолжаем удалять движения"
20 Cyberhawk
 
17.10.18
10:55
(18) (19) Чем несколько интервалов пиковой нагрузки лучше, чем один сплошной той же длительности?
21 unregistered
 
17.10.18
10:59
(20) Зависит от продолжительности пика(ов).
Сотня коротких пиков позволяет в промежутке между ними работать другим пользователям.
22 unregistered
 
17.10.18
11:01
(19) Вопрос в том и состоит - нафига автору паузы именно через *опу (ping), а не по типу БСП-шных обработчиков обновления?
23 Cyberhawk
 
17.10.18
11:02
(21) Тоже верно, но также это и скрывает наличие проблемы )
Например, как с регл. заданиями в какой-ниюбудь свежеразвернутой типовой - они регулярно могут вызывать фризы интерфейса ("часики" вместо курсора мышки). А вот вставало бы все колом сразу, так и реакция на такое была бы шустрая )
24 Вафель
 
17.10.18
11:05
(20) если ты не можешь выписать отгрузку за н минут - могут по башке дать
25 unregistered
 
17.10.18
11:13
(24) И правильно! APDEX - это для гиков и слабаков. Давно пора за медленную работу 1С пользователей пи*дить!
26 Cyberhawk
 
17.10.18
17:06
(24) Как "процедура удаления движений по регистратору" может мещать делать какую-то отгрузку?
Основная теорема систематики: Новые системы плодят новые проблемы.