Имя: Пароль:
1C
1С v8
Регистр сведений зависает при записи ☑
0 NetPerson
 
01.11.12
✎
08:59
Всем привет!
В системе работают несколько пользователей одновременно, которым нужно было организовать доступ к общим значениям переменных, при этом каждый из пользователей должен был иметь возможность обновить значение.
В результате этого был создан регистр сведений (непериодический и независимый) "ПериодическиеОбновления", состоящий из измерения "Действие" и ресурса "ВремяПослВыполнения".
В регистре в настоящий момент хранится 3 записи, обновление данных в регистре производится с периодичностью в 10-70 секунд.
Вот часть кода работы с регистром:
НаборЗаписей = РегистрыСведений.ПериодическиеОбновления.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Действие.Установить("АктуальностьСобытий");
НаборЗаписей.Прочитать();    
Для Каждого Запись из НаборЗаписей Цикл
   Если Запись.ВремяПослВыполнения < ТекущаяДата() - 60 Тогда            
       НаборЗаписей = РегистрыСведений.ПериодическиеОбновления.СоздатьНаборЗаписей();
       НаборЗаписей.Отбор.Действие.Установить("АктуальностьСобытий");
       ЗаменяемаяСтрока = НаборЗаписей.Добавить();
       ЗаменяемаяСтрока.ВремяПослВыполнения = ТекущаяДата();
       ЗаменяемаяСтрока.Действие = "АктуальностьСобытий";
       Попытка
           НаборЗаписей.Записать();                
       Исключение
           Прервать;
       КонецПопытки;
   КонецЕсли;
   // далее работаем согласно сценарию
КонецЦикла;

Почему именно я выбрал для хранения регистр сведений? Где-то прочитал, что регистры работают ОЧЕНЬ БЫСТРО.

Проблема в следующем: периодически, 1-2 раза в день происходит "затык" при попытке записать данные в регистр. При этом никакой ошибки не выдается, работа 1С просто на некоторое время (на 2-5 минут) блокируется. У проблемных пользователей значительно возрастает нагрузка на процессор.
В остальное время запись данных и чтение регистра происходит без проблем.
Тестирование и исправление базы делал - помогает ненадолго (или это была просто случайность).
1С:Предприятие 8.1 (8.1.12.101). Все пользователи (до 50 чел. одновременно) работают в терминале на ксеоне.

Кто-нибудь сталкивался с этим? Что посоветуете?
Или я применил очень-очень неправильное решение, создав такой регистр?
1 Нуф-Нуф
 
01.11.12
✎
09:02
несколько раз перечитал код. так и не смог понять смысловую нагрузку...
2 Нуф-Нуф
 
01.11.12
✎
09:02
расскажи, что это за код, когда выполняется и для чего он нужен
3 бомболюк
 
01.11.12
✎
09:05
полностью согласен с предыдущим оратором. я что то даже предположить не могу как ЭТО будет работать.
4 shuhard
 
01.11.12
✎
09:06
(0)[работают в терминале на ксеоне]
50 юзеров в файловой 1С ?