модально не устраивает, Блокировка не отрабатывает
Док = СоздатьОбъект("Документ");
Док.НайтиДокумент(Форма.Параметр.ТекущийДокумент());
Сообщить(Док.Блокировка());
Если Док.Блокировка(1)<>1 Тогда
Сообщить("Документ " + Форма.Параметр + " уже открыт");
Возврат;
Форма.Закрыть();
Иначе
ДокументВтаблицуПодбора(Форма.Параметр);
КонецЕсли;
+ (8) На просмотр и встроенная блокировка не работает. Только пилить свой механизм оповещения. Например через константу. И в каждом ПриОткрытии() проверять и либо не открывать форму, либо открывать в режиме ТолькоПросмотр(1). Но второй вариант и блокировка обеспечит.
(10) Блокировка(1) если заблокировала документ, то не даёт его открыть для редактирования - в режиме просмотра можно открыть документ даже если он открыт для редактирования в другой сессии.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший