TGViewer
1С:БСП 1С:БСП @learn_ssl1c · 1.47K subscribers
Post #10 2.73K
Как правильно записывать данные с учетом блокировки транзакций

По просьбе @PlugFox, тут нет ничего от БСП, но тут есть порядок действий, которые надо использовать при ответственной записи в базу данных.

// Безответственное чтение - доверять данным нельзя
Ссылка = Запрос.Выполнить.БлаБла.Ссылка;

НачатьТранзакцию();
Попытка
// Надо ставить исключительную блокировку на изменяемые данные.
// Чтобы никто их не мог прочитать до конца транзакции.
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.Изменяемый");
ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка);
Блокировка.Заблокировать();

// Надо ставить разделяемую блокировку на читаемые данные.
// Чтобы никто их не мог записать до конца транзакции, но все могли читать.
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.Читаемый");
ЭлементБлокировки.УстановитьЗначение("ИзменяемыйВИзмерении", Ссылка);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
Блокировка.Заблокировать();

// Ответственное чтение - доверять данным можно.
Объект = Ссылка.ПолучитьОбъект();
Читаемый = РегистрНакопления.Читаемый.СуперПуперВыборка();

// Выполнить установку пессимистической блокировки объекта от изменения другими режимами или пользователями.
Объект.Заблокировать();

// Изменение объекта
Объект.Реквизит = Читаемый;

// Запись измененного объекта и снятие объектной пессимистической блокировки.
Объект.Записать();

// Фиксация Транзакции и снятие блокировок на изменение и на чтение данных
ЗафиксироватьТранзакцию();

Исключение
// Отмена транзакции в случае ошибки в блоке транзакции.
ОтменитьТранзакцию();
// Проброс исходного исключения выше по стеку.
ВызватьИсключение;
КонецПопытки;
More from @learn_ssl1c
  1. Nov 28, 2025Поддерживаемые варианты интерфейса - Версия 8.5 и Такси ОбщегоНазначенияКлиентСервер.ЭтоВа…
  2. Nov 28, 2025БСП 3.2 Вышла только что в публичную бету Список изменений тут https://dl03.1c.ru/content/…
  3. Nov 24, 2025🔌 Схема порядка событий, регистрируемых в ТЖ Технологический журнал в 1С это инструмент а…
  4. Aug 18, 2025Настройка IIS При использовании веб публикации на IIS, с переходом на версию платформы 8.3…
  5. Jul 31, 2025Новые возможности программной работы с архивами
  6. Jul 10, 2025Для удобного дополнения текста и установки более подходящей категории ошибки при перевызов…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →