Блокировка для изменений списка документов из запроса. Как?

1. chakaka1 06.08.18 11:08 Сейчас в теме
Здравствуйте. Подскажите пожалуйста как заблокировать или несколько документов "Реализация Товаров и Услуг", получаемых из запроса, или заблокировать регистр накопления для записи(желательно первое), из формы произвольного документа на время: Начиная с использования команды "Заполнить" до моей команды Разблокировать.
т.е.
1. Есть РегистрНакопления.МойРегистр
2. Документ "Реализация Товаров И Услуг" делает в нем движения.
3. Есть "Мой документ" в котором есть кнопка (наФорме) заполнить:
&НаСервере
Процедура ЗаполнитьНаСервере()
Запрос = Новый Запрос;
Запрос.Текст = 
		"ВЫБРАТЬ
		|	МойРегистр.Регистратор КАК Ссылка
		|ИЗ
		|	РегистрНакопления.МойРегистр КАК МойРегистр
		|ГДЕ
		|	МойРегистр .Период МЕЖДУ &НачалоПериода И &КонецПериода";
	
Запрос.УстановитьПараметр("НачалоПериода ", НачалоПериода );
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);	
	
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	Попытка
	    //тут идет проверка не заблокирован ли объект.
            ЗаблокироватьДанныеДляРедактирования(ВыборкаДетальныеЗаписи.Ссылка);
	Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
//Идет код
КонецЦикла;

КонецПроцедуры
Показать


Вопрос. КАК Заблокировать для изменений или все документы из выборки до тех пор, пока я не укажу разблокировать объекты,
или на крайний случай, заблокировать весь регистр накопления, что бы на время моей работы с МоимДокументом, никто не смог провести документ "Реализация Товаров и Услуг".
Предпочтительнее первый вариант. Спасибо.

p.s. перечитал за 2 дня кучу тем и форумов, но найти ответ не смог. Так же приветсвуется ссылки по теме, где можно найти ответ.
По теме из базы знаний
Найденные решения
6. chakaka1 06.08.18 12:07 Сейчас в теме
Вопрос решен, нужно было добавить УникальныйИдентификатор в
ЗаблокироватьДанныеДляРедактирования(<Ключ>, <ВерсияДанных>, <ИдентификаторФормы>)

Спасибо.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Boneman 301 06.08.18 11:22 Сейчас в теме
(1) а вообще, интересно, скажи зачем это нужно ? Если какую-то обработку запускаешь, по работе с документами - то можно просто это в одной транзакции делать. Если что не так то оно откатится, и пользователи ничего не смогут провести - будет конфликт блокировок, пока у тебя это выполняется.
4. chakaka1 06.08.18 11:48 Сейчас в теме
(3)
то можно просто это в одной транзакции делать. Если что не так то оно откатится, и пользователи ничего не смогут провести - будет конфликт блокировок, пока у тебя это выполняется.


Вопрос написан в очень кратком варианте, а по факту у документа РТиУ добавлены движения в 6 новых регистрах.
Суть в том, пока я работую в МоёмДокументе, те документы, которые отобрались в выборке, не должны быть изменены другими пользователями, пока я не закрою МойДокумент.

ЗаблокироватьДанныеДляРедактирования(ВыборкаДетальныеЗаписи.Ссылка); - блокирует документ только на время окончания процедуры, что меня не совсем устраивает.
5. Boneman 301 06.08.18 12:00 Сейчас в теме
(4) так чем не устраивает использование механизма даты запрета изменения данных ?
Его просто немножко доработать, сделать доп регистр, для хранения ссылок запрещенных к проведению документов и все.
Во всех документах, этот механизм должен быть. Остается только придумать ему какой-то доп источник данных и все.
2. Boneman 301 06.08.18 11:18 Сейчас в теме
воткни в событие "ПриЧтенииНаСервере" свою проверку.
И если там запрещено, то Форма.ТолькоПросмотр = Истина;


вообще, там скорее всего дата запрета изменения данных проверяется, поэтому есть вызов общего модуля во всех документах. Для универсальности чтобы не менять каждый документ можно вклинится туда.
6. chakaka1 06.08.18 12:07 Сейчас в теме
Вопрос решен, нужно было добавить УникальныйИдентификатор в
ЗаблокироватьДанныеДляРедактирования(<Ключ>, <ВерсияДанных>, <ИдентификаторФормы>)

Спасибо.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот