Добрый день.Нужно запретить открывать документ, если он уже открыт у кого-то из пользователей. УТ-11. Подскажите, пожалуйста, как можно проверить, открыт у кого-нибудь документ, или нет. В темах форума искал похожий вопрос, но все они без ответа.
---
Рабочий вариант
Вот так работает - у себя делал
---
```1c
    Процедура ПриОткрытии()

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

В ПриОткрытии

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

    &НаСервере
    Функция Заблокирован()
    ДокОбъект = Объект.Ссылка.ПолучитьОбъект();
    Попытка
    ДокОбъект.Заблокировать();
    Возврат Ложь;
    Исключение
    Сообщить("Документ уже открыт другим пользователем.");
    Возврат Истина;
    КонецПопытки;
    КонецФункции
```
.
Заблокирован(), Заблокировать(), ничего не работает из этих методов. Заблокирован() = Ложь всегда, Заблокировать() в исключение не уходит.
---
Вместо Заблокировать Вы можете попробовать использовать метод формы ЗаблокироватьДанныеФормыДляРедактирования.
---
Узнать, что документ просто открыт у другого пользователя - нельзя.
---
получается, единственный выход это создавать регистр сведений, и туда данные записывать?
---
Рабочий вариант
Вот так работает - у себя делал
---
Спасибо!
---
надо перестать этого хотеть, объяснить, зачем это надо, и найти другое решение
---
объяснить, зачем это надо чтоб несколько кладовщиков не могли одновременно работать в одном документе
---
Открытие документа блокировать плохой вариант.
Лучше сделать дополнительную кнопку на форме - Редактирование.
Когда пользователь открывает документ - он открывается в режиме только просмотр.
Доступны только кнопка Редактировать, Печать и вот это вот все. Не связанное с изменениями данных документа.

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

То есть код по сути тот же самый.
---
предложил Ваш вариант. Им лень лишние телодвижения делать с нажатием дополнительных кнопок....
---
Открытие документа блокировать плохой вариант. но для себя мне интересно, почему это плохой вариант?
---
Открытие документа не всегда означает, что данные документа пользователь будет править.
Документ могут открыть чтобы посмотреть какие в нем данные.

Пример ситуации, когда блокировать плохо:
Один пользователь открыл документ для просмотра, закрыть забыл, ушел.
А другому пользователю как раз потребовалось в это время править этот документ.
Или даже не править, а просто посмотреть данные документа, чтобы найти какую-нибудь ошибку в учете.
Не обязательно даже в этом документе, но его данные нужны для расследования.
А пользователь даже открыть его не может.
---
1 - при открытии "заблокированного документа" пишется кто его блокирует ( какой пользователь)
2 - уже больше года так работают все ок - все знают что нужно делать и что будет если не сделать - все зависит от мотивации)))
---
Угу, создаем себе проблемы чтобы героически их преодолевать.