helpf.pro
Регистрация
 0 
Распечатать

Управляемый режим блокировки данных

Вопрос: Как использовать управляемый режим блокировки данных?
Ответ: Рассмотрим на примере удаления записей из регистра сведений.
1. В свойствах объекта, для которого используется управляемый режим блокировки данных установить поле «Режим управления блокировкой данных» в значение «Управляемый» (иначе будет сообщение об ошибке «Автоматический режим блокировки недопустим в этой транзакции»). Причем если это делается для документа, то необходимо перевести в этот же режим блокировки все регистры, в которых делает движения этот документ.
2. Пример кода управляемой блокировки регистра при удалении из него записи:
Например:
Код 1C v 8.х
 Процедура ОчиститьЗаПериод()
Пока Истина Цикл
НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый);
Попытка
текЗапрос = новый Запрос;
текЗапрос.Текст =

"ВЫБРАТЬ
| усИсторияОстатковПоПоказателям.Склад,
| усИсторияОстатковПоПоказателям.Поклажедатель,
| усИсторияОстатковПоПоказателям.Показатель,
| усИсторияОстатковПоПоказателям.Период
|ИЗ
| РегистрСведений.усИсторияОстатковПоПоказателям КАК усИсторияОстатковПоПоказателям
|ГДЕ
| усИсторияОстатковПоПоказателям.Период МЕЖДУ &ПериодС И &ПериодПо";

текЗапрос.УстановитьПараметр("ПериодС", ГраницаОчисткиС);
текЗапрос.УстановитьПараметр("ПериодПо", ГраницаОчисткиПо);
тбзЗаписиЖурнала = текЗапрос.Выполнить().Выгрузить();

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

// Заблокировать
текБлокировка.Заблокировать();

Для каждого текЗаписьЖурнала из тбзЗаписиЖурнала цикл
текЗапись = РегистрыСведений.усИсторияОстатковПоПоказателям.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(текЗапись, текЗаписьЖурнала);
текЗапись.Удалить();
КонецЦикла;

КонецЕсли;

ЗафиксироватьТранзакцию();
Прервать;

Исключение // сообщим об ошибке
стрОписаниеОшибки = ОписаниеОшибки();
ОтменитьТранзакцию();
Сообщить("Ошибка блокировки" + ОписаниеОшибки());
Прервать;
КонецПопытки;
КонецЦикла;
КонецПроцедуры // ОчиститьЗаПериод()

Источник
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 9455
 0 
Распечатать
Возможно, вас также заинтересует
1Cv8.1CD - Файл данных достиг максимального размера! 3
1С выдает предупреждение " Файл данных достиг максимального размера" . Подскажите из - за чего это и как можно решить ? Превышен размер файла, обычно это сообщение возникает, когда размер файла 1Cv8.1CD приближается к 10...
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
COM-подключение к базе 7.7 из 8.2 1С 4
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе="...
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 0
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже...
Google maps : вывод точек на карту и режим панорамы 2
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.