Мастер-группа. Тема №10. Объектные блокировки
Продолжаем тематические сессии мастер-группы.
Сегодня говорим об объектных оптимистических и пессимистических блокировках.
Эта тема не заслуженно оставляется специалистами “на потом”. Хотя сложного ничего нет, а знать этот материал важно.
Представляем вам 14 видео-уроков:
1. Введение.
2. Предназначение. Объектные и транзакционные блокировки.
3. Объектная пессимистическая блокировка.
4. Блокировка объекта при изменении реквизита формы, не являющегося реквизитом объекта. Управляемые формы.
5. Блокировка объекта при изменении реквизита формы, не являющегося реквизитом объекта. Обычные формы.
6. Объектная оптимистическая блокировка.
7. Программная работа с блокировками. Синтаксис методов.
8. Программная установка блокировки в обычной форме.
9. Проверка блокировки объекта.
10. Сложности установки блокировки в управляемых формах.
11. Синтаксис методов блокировки для управляемых форм.
12. Установка блокировки в управляемых формах.
13. Практическое применения свойства “Версия данных”.
14. Применимость объектных блокировок на практике.
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.
Здравствуйте!
На протяжении занятий вы вначале сказали что существуют такие виды блокировок:
– транзакционная;
– писсеместическая;
– оптиместическая.
Уточните тогда, следующие моменты:
1. в пункте “7. Программная работа с блокировками. Синтаксис методов.” там написано что просто выполняется блокировка объекта, но не указано как называется данный вид блокировки?
2. существует класс “БлокировкаДанных”. А как называется вид блокировки, которая устанавливается при использовании данного класса?
3. А подскажите, какие вообще существуют разновидности блокировок? Т.е. я понимаю что более подробно с ними будем работать в продвинутом курсе, но хотелось бы в общих чертах понимать, какие существуют ВСЕВОЗМОЖНЫЕ виды блокировок, и о каких было расказано в текущих уроках. Т.е. некая классификация видов блокировок.
4. существует такой темин как “Управляемая блокировка”. Под ним понимается пессимистическая, оптимистическая или транзакционная? или вообще что-то другое?
БлокировкаДанных
Добрый день, Дмитрий!
Правильнее сказать, что используется следующая классификация.
2 класса:
– Транзакционные блокировки
– Объектные блокировки.
При этом объектные делятся на 2 вида:
– Оптимистические
– Пессимистические.
Во вопросам.
1. Речь идет о наложении объектной блокировки.
2. Это транзакционная блокировка.
3. Других блокировок на уровне 1С нет.
4. Транзакционная блокировка.
Правильно ли я тогда понял. Что транзакционные блокировки это блокировки самого низкого уровня, т.е. когда проверка идёт средствами самой СУБД в момент записи данных в базу данных, а объектная блокировка – это блокировка которая делается самой платформой, в момент события изменения реквизита формы (в случае пессиместической блокировки) и в момент события записи расширения формы (в случае оптиместической блокировки)
>> Во вопросам.
>> 1. Речь идет о наложении объектной блокировки.
Т.е. Объектной – оптиместической, или объектной писсиместической? Или в данном случае это понятие не имеет места быть?
>> 3. Других блокировок на уровне 1С нет.
А на уровне например СУБД есть? в случае работы 1с в клиент-серверном режиме?
И транзакционные и объектные блокировки накладываются платформой.
В клиент-серверном варианты их работу обеспечивает сервер приложений.
Грубо их можно описать так:
– Транзакционные блокировки не позволяют двум транзакциям (программному коду) выполнять несогласованные действия;
– Объектные блокировки не позволяют двум пользователям внести несогласованные изменения в базу данных.
>Т.е. Объектной – оптиместической, или объектной писсиместической? Или в данном случае это понятие не имеет места быть?
Речь идет здесь в целом о наложении объектной блокировки.
>А на уровне например СУБД есть? в случае работы 1с в клиент-серверном режиме?
В разных СУБД по разному. Рассмотрим, например, MS SQL Server.
На уровне СУБД есть уровни изоляции транзакций (для каждой базы данных может быть выбран какой-либо уровень), которые в различной степени не позволяют появиться несогласованным данным.
То есть по сути это тоже механизм блокировок.
В зависимости от выбранного уровня система может вести себя по-разному. Если выбран наименьший уровень, то несогласованные данные вполне могут появиться в БД.
Но именно такой режим работы СУБД использует 1С. Ведь “руление” блокировками осуществляется на уровне кластера 1С.
Все вышесказанное относится к управляемому режиму блокировки данных.
Более детально эту тему рассматриваем в продвинутом курсе.
Хорошо, не буду Вас мучить детальными вопросами до прохождения продвинутого :))
Но по поводу объектных всё таки уточните….
>> Речь идет здесь в целом о наложении объектной блокировки.
Объектная блокировка – это самостоятельный вид блокировок или объектная блокировка всегда делится на оптимистическую и пессимистическую?
В данном случае (программная установка) объектная блокировка выступает как самостоятельный “субъект”.
При наложении объектной блокировки при работе пользователей можно выделить оптимистическую и пессимистическую.
Ничего не понял, и ещё больше запутался:((
Пока воспринимаю это так:
* объектная-пессимистическая – это блокировка реквизитов формы,
* объектная-оптимистическая – это блокировка, которая сработатывает при записи объекта из формы, и проверяет соответствие версии данных записываемого объекта и записанного в БД уже.
* объектная-самостоятельная – что блокирует или проверяет эта блокировка?????
Давайте расставим все по полочкам.
Цитирую Вас, немного изменив пункт 3.
Виды объектных блокировок.
* объектная-пессимистическая – это блокировка реквизитов формы,
* объектная-оптимистическая – это блокировка, которая сработатывает при записи объекта из формы, и проверяет соответствие версии данных записываемого объекта и записанного в БД уже.
* объектная-программная – накладывается с помощью метода объекта (справочника, документа, …) Заблокировать(). Проверка установки данной блокировки происходить с помощью метода Заблокирован().
Поэтому данный вид блокировки имеет смысл только при написании программного кода, в пользовательском режиме никакого эффекта от применения этого метода мы не заметим.
Здравствуйте, я описывал 2 проблемы с Модулем управляемого приложения и ошибками при возврате из общего модуля массивов в модуль управляемого приложения. Обещали в этой теме это раскрыть, однако смотрю тут только про блокировки :(
Их будем раскрывать в сессии ответов на вопросы, а это тематическая сессия – разные вещи.