Свяжитесь с нами:

Взаимоблокировки в 1С

Программа 1С Бухгалтерия и типовые конфигурации на базе 1С Предприятие являются многопользовательскими приложениями. Поэтому с базами данных одновременно может работать большое количество людей. Если две или более транзакции будут обращаться к одной и той же базе данных, последняя будет заблокирована, что приведет к неправильному завершению процесса. Рассмотрим, как избежать взаимной блокировки в приложениях версии 1С 8.3.

Как появляется блокировка

Типовые конфигурации 1С разработаны и отлажены таким образом, что в них не могут возникнуть взаимные блокировки, как бы долго вы не использовали приложения 1С Предприятие. Особенно в том случае, если количество одновременно работающих с базами данных пользователей небольшое.

Взаимные блокировки могут возникнуть в случае, если вы решили купить 1С и самостоятельно оптимизировать некоторые процессы и модули под собственные нужды. В этом случае возможно возникновение указанных ошибок. Причин подобной ситуации может быть несколько:

  1.  Установка изоляции данных для их последующего изменения. Эта ошибка возникает в случае, если 2 сессии захватывают 1 ресурс. Однако после этого они не могут внести изменения в базу данных из-за того, что эта возможность заблокирована другой сессией. Следовательно, программа попадает в режим постоянного ожидания.
  2. Захват ресурсов одной БД в разных участках кода. Например, при одновременном проведении документов по покупке и продаже ТМЦ они оба вносят изменения в базу остатков. База данных заблокируется одновременно двумя запросами, что приведет к невозможности внести изменения.
  3. Избыточные блокировки. Это происходит в случае, когда программист в коде не обращает внимания на количество данных, которые использует скрипт. Следовательно, ресурсы захватываются, но не осввобождаются. Что приводит к блокировке работы.

Причины возникновения блокировки можно узнать с помощью специального события TDEADLOCK. Он возвращает информацию, которая позволяет определить название ресурса, тип блокировки, имена баз данных и т.п.

Избежать взаимных блокировок и устранить их можно с помощью следующих способов:

  • При обращении к базе для записи необходимо использоваться исключительную блокировку, что предотвратит двойное обращение к базе;
  • Предусматривать очередь для захвата данных и использовать базы данных по очереди;
  • Оптимизировать запросы в скриптах;
  • Не блокировать новые базы для записи до того, как скрипт освободит блокировку с предыдущих;
  • Устанавливать расписание работы с базами данных во избежание двойного захвата.

Услуги специалистов

Внесение серьезных изменений в типовые конфигурации программ 1С должны делать только специалисты. Поэтому, если вам не хватает стандартных возможностей 1С Бухгалтерия или других приложений на базе 1С Предприятие, обращайтесь за помощью к специалистам компании «ГК в Приоритете». Они помогут внести необходимые изменения без возникновения ситуации со взаимными блокировками.

Download WordPress Themes
Premium WordPress Themes Download
Premium WordPress Themes Download
Download Nulled WordPress Themes
udemy course download free
download mobile firmware
Premium WordPress Themes Download
online free course

Leave a Comment

Сервис обратного звонка RedConnect