Записки программиста 1с

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

Блокировка данных обязательна на экзамене 1с-специалист.

Блокировка – это информация о том, что данный ресурс захвачен «кем-то», для выполнения какого-то действия.

Создавать Блокировки будем по схеме. Блокировка данных в 1с в экзаменационных билетах используется в Оперативном и Бухгалтерском учете.

блокировка данных в 1с
Блокировка в 1с : Предприятие

В системе 1С:Предприятие 8 существуют два механизма, при работе которых используется термин блокировка.

блокировка данных в 1с
Два механизма блокировок

Объектные и транзакционные блокировки

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

Механизм объектных блокировок

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

Блокировка данных при проведении документа “Расходная накладная”

Во-первых создадим объект Блокировка.

БлокировкаДанных = Новый БлокировкаДанных;

Во-вторых добавляем объект Блокировок. Для задач экзамена 1С:Специалист это Регистр Накопления “ОстаткиНоменклатуры”

ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");

В-третьих установим Реквизит документа “Расходная накладная”, для которого будем использовать Блокировку.

ЭлементБлокировки.УстановитьЗначение("Партия", Партия);

В четвертых в “Источник данных” поместим табличную часть документа “Расходная накладная”.

ЭлементБлокировки.ИсточникДанных = СписокНоментклатуры;

На пятом шаге укажем какие поля, мы будем использовать из табличной части документа. Практические для всех задач экзамена 1С:Специалист нужно использовать параметр “Номенклатура”. Если в табличной части указывается еще какое-то Измерение Регистра, то его тоже добавляем в источники. Например может быть склад.

ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");

Полный код Блокировки указан ниже:

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *