|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
// Возвращает описание блокируемых данных. // // Параметры: // МетаданныеОбъекта - ОбъектМетаданных - метаданные объекта, набор записей которого необходимо получить. // ПоляБлокировки - Строка - имена полей блокировки, разделенные запятыми. // ИсточникДанных - РезультатЗапроса, ТабличнаяЧасть, ТаблицаЗначений, Неопределено - источник данных для блокировки. // // Возвращаемое значение: // Структура - описание блокируемых данных. // * ПространствоБлокировки - Строка - имя поля пространства блокировки. // * ПоляБлокировки - Структура - описание полей блокировки. // ** Ключ - Строка - имя поля блокировки. // ** Значение - Строка - имя поля источника данных блокировки или значение блокировки. // // Варианты вызова: // 1. Установка блокировки записей с помощью явного указания имен полей и их значений // БлокировкаОчереди = ГПН_ОбработкаДанныхВКСервер.ОписаниеБлокируемыхДанных( // Метаданные.РегистрыСведений.ГПН_ОчередьСотрудниковКОтправкеВК, "Сотрудник,Организация"); // БлокировкаОчереди.ПоляБлокировки.Сотрудник = СотрудникИзПорции.Сотрудник; // БлокировкаОчереди.ПоляБлокировки.Организация = СотрудникИзПорции.Организация; // 2. Установка блокировки записей с использованием источника данных // БлокировкаОчереди = ОписаниеБлокируемыхДанных(Метаданные.РегистрыСведений.ГПН_ОчередьСотрудниковКОтправкеВК, // "Сотрудник,Организация", СотрудникиВОчереди); // БлокировкаОчереди.ПоляБлокировки.Сотрудник = "Сотрудник"; // БлокировкаОчереди.ПоляБлокировки.Организация = "Организация"; // Функция ОписаниеБлокируемыхДанных(Знач МетаданныеОбъекта, Знач ПоляБлокировки, Знач ИсточникДанных = Неопределено) Экспорт Описание = Новый Структура("ПространствоБлокировки, ПоляБлокировки, ИсточникДанных"); Описание.ПространствоБлокировки = МетаданныеОбъекта.ПолноеИмя(); Описание.ПоляБлокировки = Новый Структура(ПоляБлокировки); Описание.ИсточникДанных = ИсточникДанных; Возврат Описание; КонецФункции // Вызывается перед обновлением объектов, наборов записей. // В отложенном режиме открывает транзакцию и устанавливает блокировку на обновляемые объекты. // // Параметры: // ОписаниеБлокируемыхДанных - Структура, Массив из Структура - см. ОписаниеБлокируемыхДанных. // // Возвращаемое значение: // Булево - Истина, если блокировки успешно установлены, // либо обновление происходит в монопольном режиме. // // Пример: // БлокировкиУстановлены = УстановитьБлокировкуДанных(ОписаниеБлокировкиПереносаДанных); // Если Не БлокировкиУстановлены Тогда // Возврат; // КонецЕсли; // Функция УстановитьБлокировкуДанных(Знач ОписаниеБлокируемыхДанных) Экспорт НачатьТранзакцию(); Попытка Блокировка = Новый БлокировкаДанных; Если ТипЗнч(ОписаниеБлокируемыхДанных) = Тип("Массив") Тогда Для Каждого ЭлементОписания Из ОписаниеБлокируемыхДанных Цикл ЗаполнитьЭлементБлокировкиДанных(Блокировка, ЭлементОписания); КонецЦикла; Иначе ЗаполнитьЭлементБлокировкиДанных(Блокировка, ОписаниеБлокируемыхДанных); КонецЕсли; Блокировка.Заблокировать(); ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); Возврат Ложь; КонецПопытки; Возврат Истина; КонецФункции |
Функции для установка блокировки данных
Реклама
Ссылки и HTML-разметка в комментариях не поддерживаются.