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