Добрый день, коллеги! Со вчерашнего дня перерасчеты стали дурно себя вести, а именно - при формировании табеля и его проведении выпадает ошибка, при открытии формы перерасчётов тоже самое.
Текст:
{ОбщийМодуль.ПерерасчетЗарплаты.Модуль(2807)}: Ошибка при вызове метода контекста (Записать)
НаборЗаписей.Записать();
по причине:
Конфликт блокировок при выполнении транзакции:
Превышено максимальное время ожидания предоставления блокировки
(1) Я так полагаю,что база на sql.Это если я правильно понял защитная функция.Помоему называется "Избыточная блокировка" при записи,проведении и считывании таблиц.И делает он по нескольким пользователям не параллельно а последовательно.Могу конечно ошибаться.Есть ли зависшие сеансы.Тут можно ли оптимизировать запросы.Что не выгодно,либо попытаться настроить SQL.А именно попробовать перевести конфигурацию из автоматического режима управления блокировкой данных в управляемый, и транзакции начнут выполняться на уровне изоляции типа ReadCommitted, вместо SERIALIZABLE или Repeatable Read.
Тут надо посмотреть SQL Server Management Studio в свойствах базы параметр Is Read Committed Snapshot On что там стоит.Предположение такое,что у вас стоит автоматическая транзакция.На SQL так бывает.У меня например при этом начинает ресурсы жрать,как башенная.
Если такое на файловой происходит без участия других пользователей.То это нонсенс.Может какие фоновые задачи пытаются работать?
После обновления на версию 3.1.11 в существующих базах выполняется автоматическое отключение настройки "Выполнять расчет зарплаты без оптимизации", если она была ранее включена.
Мы таблицу базы, где происходили перерасчёты, почистили и всё взлетело. Думаю, что косяк самой платформы или ЗУП.
Чистили средствами sql, т.к. простой очисткой регистра не давала программа.
А до этого воспользовались обработкой, которая показала проблемную таблицу. где больше всего времени тратится.