Каталог решений - Простое программное решение проблем с блокировками SQL

Простое программное решение проблем с блокировками SQL

Простое программное решение проблем с блокировками SQL

В наличии

Описание одного из способов программного решения проблемы блокировок при проведении документов в клиент-серверной 1С.

Категория:

Описание

О блокировках, причинах их возникновения и решениях этой проблемы информации очень много, поэтому просто опишу одно из  программных решений, которое реально помогло полностью исключить блокировки по номенклатуре при проведении документов в крупной информационной системе. Метод подходит только для клиент-серверных систем 1С. Протестировано на платформе 1С:Предприятие 8.2 (8.2.19.130), обычные формы.

Решение для случая блокировок по номенклатуре:

1. Добавить новый служебный регистр сведений "БлокировкаПроведенияДокументов". Он не будет содержать данных и необходим только как объект наложения управляемой блокировки. Добавить полные права на этот регистр в общедоступную роль.

2. В начало процедуры "ПриЗаписи" модуля проблемного документа добавить код:

Процедура ПриЗаписи(Отказ)
	Если Проведен Тогда
		Попытка
			Блокировка = Новый БлокировкаДанных;
			ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.БлокировкаПроведенияДокументов");
			ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
			ЭлементБлокировки.ИсточникДанных = ТабличнаяЧастьНоменклатура;
			ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
			Блокировка.Заблокировать();
		Исключение
			# Если Клиент Тогда
			Сообщить(СокрЛП(Ссылка) +":"+ Символы.ПС + "	Превышено время ожидания возможности проведения! Повторите попытку проведения.");
			# КонецЕсли
			Отказ = Истина;
			Возврат;
		КонецПопытки;
	КонецЕсли; 
	
	//Исходный текст
	//...
КонецПроцедуры

При возникновении блокировок по полям другого типа, необходимо в регистр "БлокировкаПроведенияДокументов" добавить новое измерение соответствующего типа и в процедуре "ПриЗаписи" указать соответствующий источник данных для элемента блокировки.

Всем удачи!

has been added to your cart:
Оформление заказа