Доброго времени суток, уважаемые посетители! На нашем сайте уже не раз уделялось внимание работе с регистрами сведений. Например уже было написано Как открыть форму записи регистра сведений из строки табличного поля? или Как в регистре сведений обеспечить уникальность каждой записи? Кроме того были написаны небольшие заметки в статье, связанной с примерами работы в 1С здесьтут и здесь.


Заблокировать данные регистра сведений для редактирования

Бывает, что пользователь №1 редактирует запись регистра сведений, и в это же самое время пользователь №2 начинает редактировать ту же запись и сохраняет свои изменения до сохранения изменений пользователем №1. В таком случае запись дублируется, а этого необходимо избежать.

Чтобы запретить доступ к записи, которую уже кто-то редактирует, то её нужно блокировать. Для этого воспользуемся двумя функциями для работы с информационными базами ЗаблокироватьДанныеДляРедактирования и РазблокироватьДанныеДляРедактирования. В форме записи регистра сведений напишем следующий код:

Перем КлючУникальностиФормы, КлючРегистра;
Функция ПолучитьКлючЗаписиРегистраСведений()
	// У вас может быть другой регистр сведений и 
	// соответственно другие измерения
	ТекСтрока = РегистрСведенийМенеджерЗаписи;
	Отбор1 = Новый Структура;
	Отбор1.Вставить("Период", ТекСтрока.Период);
	Отбор1.Вставить("Ответственный", ТекСтрока.Ответственный);
	Отбор1.Вставить("Направление", ТекСтрока.Направление);
	Отбор1.Вставить("Приоритет", ТекСтрока.Приоритет);
	Отбор1.Вставить("Счетчик", ТекСтрока.Счетчик);
	Рег = РегистрыСведений.СписокДел;
	Возврат Рег.СоздатьКлючЗаписи(Отбор1);
КонецФункции

Процедура ПриОткрытии()
	ЗаблокироватьДанныеДляРедактирования(КлючРегистра, , КлючУникальностиФормы);
КонецПроцедуры

Процедура ПриЗакрытии()
	РазблокироватьДанныеДляРедактирования(КлючРегистра, КлючУникальностиФормы);
КонецПроцедуры

КлючРегистра = ПолучитьКлючЗаписиРегистраСведений();
КлючУникальностиФормы = Новый УникальныйИдентификатор;

Теперь, после сохранения кода, если пользователь №1 будет редактировать запись регистра сведений,
пользователь №2 не сможет этого сделать, так как запись будет заблокирована и
появится примерно такое сообщение:

Запрет редактирования заблокированной записи регистра сведений

Пользователь №2 сможет редактировать запись только после закрытия формы записи регистра сведений пользователем №1.



Этот блог читают уже более 3000 человек - читай и ТЫ!

Loading comments...