Проверить открытие документа

1. user1619761 15.12.23 17:01 Сейчас в теме
Добрый день.Нужно запретить открывать документ, если он уже открыт у кого-то из пользователей. УТ-11. Подскажите, пожалуйста, как можно проверить, открыт у кого-нибудь документ, или нет. В темах форума искал похожий вопрос, но все они без ответа.
По теме из базы знаний
Найденные решения
7. Agapov_Stas 1 18.12.23 10:36 Сейчас в теме
Рабочий вариант
Вот так работает - у себя делал
user1619761; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Vladimir-R 168 15.12.23 17:35 Сейчас в теме
(1)
Процедура ПриОткрытии()

    Попытка
        Заблокировать();
    Исключение
        ЭтаФорма.ТолькоПросмотр = Истина;
        Ошибка_Содержание = ОписаниеОшибки();
        Сообщить("Документ используется другим пользователем!"+Символы.ПС+Сред(Ошибка_Содержание,Найти(Ошибка_Содержание,"Объект уже заблокирован")));
    КонецПопытки;
Показать
user1481466; +1 Ответить
4. user1619761 18.12.23 10:10 Сейчас в теме
(2) Пробовал в ПриСозданииНаСервере
ДокОбъект = Объект.Ссылка.ПолучитьОбъект();
	Попытка 
		ДокОбъект.Заблокировать();
	Исключение
		Сообщить("Документ уже открыт другим пользователем.");
		Отказ = Истина;
	КонецПопытки;

В ПриОткрытии
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Если Заблокирован() Тогда
		Отказ = Истина;		
	КонецЕсли;
КонецПроцедуры

&НаСервере
Функция Заблокирован() 
	ДокОбъект = Объект.Ссылка.ПолучитьОбъект();
	Попытка
		ДокОбъект.Заблокировать();
		Возврат Ложь;
	Исключение
		Сообщить("Документ уже открыт другим пользователем.");
		Возврат Истина;
	КонецПопытки;
КонецФункции
Показать
.
Заблокирован(), Заблокировать(), ничего не работает из этих методов. Заблокирован() = Ложь всегда, Заблокировать() в исключение не уходит.
6. Sashares 35 18.12.23 10:33 Сейчас в теме
(4)Вместо Заблокировать Вы можете попробовать использовать метод формы ЗаблокироватьДанныеФормыДляРедактирования.
3. Sashares 35 15.12.23 22:44 Сейчас в теме
(1)Узнать, что документ просто открыт у другого пользователя - нельзя.
5. user1619761 18.12.23 10:11 Сейчас в теме
(3)получается, единственный выход это создавать регистр сведений, и туда данные записывать?
7. Agapov_Stas 1 18.12.23 10:36 Сейчас в теме
Рабочий вариант
Вот так работает - у себя делал
user1619761; +1 Ответить
9. user1619761 18.12.23 10:51 Сейчас в теме
8. Snowbridge 18.12.23 10:48 Сейчас в теме
(0) надо перестать этого хотеть, объяснить, зачем это надо, и найти другое решение
10. user1619761 18.12.23 10:53 Сейчас в теме
(8)
объяснить, зачем это надо
чтоб несколько кладовщиков не могли одновременно работать в одном документе
11. Sashares 35 18.12.23 11:56 Сейчас в теме
(10)Открытие документа блокировать плохой вариант.
Лучше сделать дополнительную кнопку на форме - Редактирование.
Когда пользователь открывает документ - он открывается в режиме только просмотр.
Доступны только кнопка Редактировать, Печать и вот это вот все. Не связанное с изменениями данных документа.

По кнопке Редактирование включается блокировка и документ становится доступным для редактирования этому пользователю. Другие же пользователи не смогут включить редактирование - будет сообщение, что документ уже заблокирован.

То есть код по сути тот же самый.
user1619761; +1 Ответить
12. user1619761 18.12.23 13:51 Сейчас в теме
(11)предложил Ваш вариант. Им лень лишние телодвижения делать с нажатием дополнительных кнопок....
13. user1619761 18.12.23 13:52 Сейчас в теме
(11)
Открытие документа блокировать плохой вариант.
но для себя мне интересно, почему это плохой вариант?
14. Sashares 35 18.12.23 14:10 Сейчас в теме
(13)Открытие документа не всегда означает, что данные документа пользователь будет править.
Документ могут открыть чтобы посмотреть какие в нем данные.

Пример ситуации, когда блокировать плохо:
Один пользователь открыл документ для просмотра, закрыть забыл, ушел.
А другому пользователю как раз потребовалось в это время править этот документ.
Или даже не править, а просто посмотреть данные документа, чтобы найти какую-нибудь ошибку в учете.
Не обязательно даже в этом документе, но его данные нужны для расследования.
А пользователь даже открыть его не может.
user1619761; +1 Ответить
15. Agapov_Stas 1 18.12.23 18:32 Сейчас в теме
(14)
1 - при открытии "заблокированного документа" пишется кто его блокирует ( какой пользователь)
2 - уже больше года так работают все ок - все знают что нужно делать и что будет если не сделать - все зависит от мотивации)))
user1619761; +1 Ответить
16. Sashares 35 18.12.23 19:42 Сейчас в теме
(15)Угу, создаем себе проблемы чтобы героически их преодолевать.
Оставьте свое сообщение

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