Обычный пример с конкретными собственными метаданными и корректной границей readonly / изменяемых объектов.
Где и как запускать
Основной блок — тело отдельной серверной процедуры своей учебной обработки. Используются только собственные метаданные / учебные данные; рабочую конфигурацию не изменяйте.
Подготовка
Основной блок — тело отдельной серверной процедуры своей учебной обработки. Используются только собственные метаданные / учебные данные; рабочую конфигурацию не изменяйте.
Свой независимый непериодический регистр сведений УчебныеЦеныБлокировки: измерение КодКниги Строка 20, ресурс Цена Число 12.2. Управляемый режим блокировки; заранее вручную одна собственная запись BOOK-1, Цена=250.
Код — отдельная серверная команда вне транзакции вызывающего кода. Она начинает и отменяет только собственную транзакцию; записи / изменения цены нет. Для опыта нужны права чтения своего регистра.
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Запустите отдельную учебную команду вне чужой транзакции";
КонецЕсли;
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
Область = Блокировка.Добавить("РегистрСведений.УчебныеЦеныБлокировки");
Область.Режим = РежимБлокировкиДанных.Разделяемый;
Область.УстановитьЗначение("КодКниги", "BOOK-1");
Блокировка.Заблокировать();
Цена = РегистрыСведений.УчебныеЦеныБлокировки.Получить(Новый Структура("КодКниги", "BOOK-1"));
Сообщить("Своя прочитанная цена: " + Строка(Цена.Цена));
ОтменитьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;Разбор по шагам
Подготовьте указанную собственную модель / форму.
Поместите блок в указанный модуль.
Сравните фактическое поведение с назначением режима.
Как проверить результат
Разделяемая блокировка допускает другие совместимые чтения и конфликтует с исключительной блокировкой этой области. Это не отключение блокировок и не гарантия общей согласованности всех регистров. Собственная транзакция завершается в обеих ветках.
Код 1С, блокировки, формы, записи и внешние подключения при сборке HTML не выполнялись.
Ожидаемый результат
Есть настоящий собственный контекст применения значения.
На что обратить внимание
Не заменяйте собственные метаданные рабочими объектами без отдельной оценки последствий.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.