Звонок по России бесплатный
+7 (800) 511-13-78
РЕГИСТРАЦИЯ15 дней бесплатно

Блокировка данных 1С

Блокировка 1С
25.05.2022г. 15:35
Многие руководители выбирают версии «ПРОФ» программных продуктов 1С для своих предприятий. При таком режиме работы в 1С важная составная часть – блокировка данных.
Подписаться на дайджест Получить консультацию

Многие руководители выбирают версии «ПРОФ» программных продуктов 1С для своих предприятий. Версии «ПРОФ» поддерживают многопользовательский режим работы и предоставляют другие дополнительные возможности. При таком режиме работы в 1С важная составная часть – блокировка данных. Это механизм, который защищает от продажи одной и той же номенклатурной позиции разным покупателям из-за несогласованности действий двух менеджеров по продажам, а также других похожих ситуаций.

Особенности механизма

Общее понятие блокировки рассматривается в качестве сигнала о том, что ресурс кем-то «захвачен» для выполнения определенных операций.  Этот механизм реализован в программе для ограничения определенных действий в заданный временной промежуток.

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

Основные типы


Рассмотрим специфику и особенности каждого типа:

1.       Объектные

Данный механизм реализован на уровне платформы 1С, поэтому не затрагивает систему управления базами данных. Бывает:

  • Пессимистичный вариант

Этот механизм запускается, если два сотрудника компании работают в программе и пытаются одновременно внести изменения в форму справочника.

  • Оптимистичный вариант

Механизм запускает систему сравнения версий объекта. Предположим, один пользователь открыл форму и внес изменения в объект. Второй пользователь при попытке внести запись увидит на мониторе системную ошибку.

2.       Транзакционные

Механизм транзакционных гораздо интереснее. Кроме того, намного функциональнее по сравнению с объектными. Здесь наблюдается блокировка на уровне системы управления базами данных. Ошибки, возникающие в этой части, могут создать проблемы. К наиболее распространенным относятся потерянные изменения, а также грязное чтение.

В категории транзакционных выделяют:

  • Автоматический вариант

За механизм отвечает система управления базами данных. В этом процессе разработчик не участвует. Хоть задача программиста упрощается, есть и отрицательные моменты. Также здесь нежелательно создание информационной системы для большого числа пользователей.

  • Управляемый вариант

 Какие типы блокировок «1С» совместимы?


При управляемом ответственность на разработчике прикладного решения.  Для транзакций система управления БД устанавливает высокий уровень изоляции.

Алгоритм действий следующий: менеджер блокировок, интегрированный в программный продукт, анализирует возможность блокировки ресурса при операциях с базами данных. При этом всегда совместимы блокировки одного и того же пользователя.

Рассмотрим случаи, когда две блокировки не совместимы:

  • у них несовместимые виды;
  • установлены разными сотрудниками компании;
  • установка была выполнена на один и тот же ресурс.

Что еще важно знать?


Детально изучим особенности управляемых блокировок 1С. В отличие от автоматического варианта, управляемый позволяет использовать собственного менеджера блокировок, а также применять не столь строгие правила систем управления БД. Встроенный алгоритм максимально точно и плавно задает ограничения на запись данных, а также чтение. Автоматический не позволяет учитывать бизнес-логику приложения.

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

Недостаток в том, что разработчик вынужден самостоятельно выполнять контроль в части непротиворечивости данных при их вводе, а также обработке. Допускается возникновение ситуации, при которой после запуска управляемого режима возникнет необходимость в большом количестве проверок для достижения прежнего уровня безопасности. Все же многие предприятия предпочитают управляемый вариант, если позволяют ресурсы.

У блокировки управляемого типа есть одна важная особенность – она сохраняется до конца транзакции. Об этом необходимо помнить при разработке ограничений, а также программных проверок. Решение заключается в установке механизма блокировки ближе к концу транзакции. Такой подход позволит минимизировать вероятность ожидания. Например, если нужно произвести расчеты и записать их результат, то наложение блокировки разумнее прописать после расчетов.

Еще одна распространенная проблема, с которой сталкиваются пользователи – импортирование документов. Типовое решение, которое устраивает многих разработчиков – создание, а не проводка документа при загрузке. Далее с помощью простого механизма все загруженные данные проводятся в многопоточном режиме. При этом учитываются основные характеристики (номенклатура и др.).

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

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