Конфликт блокировок при выполнении транзакции в 1С 8.3 (8.2)
«Конфликт блокировок при выполнении транзакции: Превышено максимальное время ожидания предоставления блокировки» — достаточно часто встречающая ошибка в 1С 8.3 и 8.2, связанная с конкуренцией за использование ресурсов в системе.
Содержание
Причины конфликта блокировок
Система 1С позволяет работать параллельно большому количеству пользователей: как показывают нагрузочные тестирования, сегодня это количество не ограничивается и пятью тысячами пользователей, одновременно работающих в системе. Однако чтобы база данных 1С 8 могла одновременно поддерживать большое количество пользователей, конфигурация должна быть правильно разработана.
Выполнение большого количества операций
Вполне вероятно, что какой-либо пользователь запустил, например, перепроведение документов за большой период в одной транзакции. Архитектура 1С 8.3 предполагает, что система не дает изменять данные, которые используются в одной транзакции другим пользователем, и блокирует их.
Возможно, это временная ошибка, которая перестанет возникать, когда другой пользователь завершит производить действия в системе. Если эта ошибка появляется часто, то, скорее всего, дело в другом.
Ошибка в конфигурации
Обычно конфигурации от фирмы «1С» разработаны с учетом всех рекомендаций по улучшению производительности. Самая распространенная причина ошибок конфликта блокировок — ошибки производительности в коде конфигурации, внесенные сторонними разработчиками, которые порождают избыточные блокировки. Например, один не оптимальный запрос может нарушить работу всех пользователей, постоянно блокируя нормальную работу. Подробности в статье Причины избыточных блокировок.
Кроме ошибок в коде часто встречаются методически неверные решения. Например, партионный учет — он сам по себе подразумевает последовательное проведение документов. Партионный учет можно заменить на РАУЗ — этим Вы серьезно повысите производительность системы.
Как исправить эту ошибку в 1С 8.3?
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Получите понятные самоучители по 1С бесплатно:
В любом случае, появление ошибки «Конфликт блокировок при выполнении транзакции» говорит о необходимости инспекции системы, особенно для средних и крупных информационных систем в клиент-серверном режиме работы (MS SQL, PostgreSQL и т.д.). Если это проигнорировать на раннем этапе, возможны необратимые последствия позже, когда работа системы будет особенно важна (в период сдачи отчетности).
Для аудита и исправления ошибок лучше всего выбрать надежного партнера. Просто позвоните нам, и мы решим любые Ваши задачи в кратчайшие сроки. Подробности на странице услуги по 1С.
Другие статьи по 1С:
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
Abdusamad:
Добрый вечер, у нас появился ошибка:
Конфликт блокировок при выполнении транзакции
ERROR: canceling statement due to statement timeout
1C 8.2
Копал в интернете ничего не нашел, заранее спасибо!
Программист 1С:
А какая СУБД?
Арман:
Если винда на серверной 1С то нужно смотреть «захвачено СУБД» в Administration enterprise Server
>BaseName>Кластеры>Сеансы и если есть захват, «выкинуть» пользователя! Есть такой глюк, что пользователь вышел а «захват» висит!
Арман:
Извиняюсь «если 1С серверный вариант!»)))