Суть вопроса:
Платформа 8.3.20
Программно меняется реквизит документа (по определенной логике), но если у пользователя открыт документ на редактирование, то у него выскакивает сообщение - "Данные изменены - перечитать..."

Пробовал и через "Заблокировать()"
и через Новый БлокировкаДанных
И через ЗаблокироватьДанныеДляРедактирования()

ничего не помогает - блокировка якобы устанавливается даже при открытом документе
я так подозреваю что это связанно с особенностями управляемых форма
подскажите как программно проверить - открыт ли где-то документ на редактирование ?
---
Этот код блокирует документ ПриСозданииНаСервере, там же проверка в попытка исключение

Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
  Попытка
   ЗаблокироватьДанныеДляРедактирования(Объект.Ссылка, Объект.ВерсияДанных, ЭтаФорма.УникальныйИдентификатор);
  Исключение
      Ошибка = ОписаниеОшибки();
      ОбрезанаОшибка = Сред(Ошибка, Найти(Ошибка, "сеанс:")+6);
      НомерСеанса = Число(Сред(ОбрезанаОшибка, 0 , Найти(ОбрезанаОшибка,", начат:")-1));
   УстановитьПривилегированныйРежим(Истина);
   АктивныеСеансы = ПолучитьСеансыИнформационнойБазы();
   УстановитьПривилегированныйРежим(Ложь);
   ИмяПользователяЗаблокировавшегоДок = "";
      Для Каждого Элемент Из АктивныеСеансы Цикл
          Если Элемент.НомерСеанса = НомерСеанса Тогда
              ИмяПользователяЗаблокировавшегоДок = Элемент.Пользователь.ПолноеИмя;
              Прервать;
          КонецЕсли;
      КонецЦикла;
      Сообщить("Объект заблокирован пользователем: " + ИмяПользователяЗаблокировавшегоДок + "" + Сред(ОбрезанаОшибка, Найти(ОбрезанаОшибка,", начат:")));
   ЭтаФорма.ТолькоПросмотр = Истина;
  КонецПопытки;
КонецЕсли;
---
Платформа 8.3.20 Ценная информация. А конфигурация не имеет значения?
как программно проверить - открыт ли где-то документ на редактирование ? Вот тут обсуждалось - читайте и делайте выводы.
---
А конфигурация не имеет значения?
Конфигурация не имеет значения - самописная
---
Конфигурация не имеет значения - самописная Как раз имеет значение то, что самописная: в типовой возможен вариант, когда ее нельзя/нежелательно модифицировать, это сильно ограничивает методы решения проблемы.

А в самописке руки у разработчика развязаны... что и доказывает ваш выбор решения.
---
мало информации. что именно не работает?

1) В форме объекта выполняется ЗаблокироватьДанныеДляРедактирования(Ссылка)
2) В обработке перед редактированием реквизита выполняется ЗаблокироватьДанныеДляРедактирования(Ссылка). Если без ошибок, то записать().

так организовано?
---
Этот код блокирует документ ПриСозданииНаСервере, там же проверка в попытка исключение

Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
  Попытка
   ЗаблокироватьДанныеДляРедактирования(Объект.Ссылка, Объект.ВерсияДанных, ЭтаФорма.УникальныйИдентификатор);
  Исключение
      Ошибка = ОписаниеОшибки();
      ОбрезанаОшибка = Сред(Ошибка, Найти(Ошибка, "сеанс:")+6);
      НомерСеанса = Число(Сред(ОбрезанаОшибка, 0 , Найти(ОбрезанаОшибка,", начат:")-1));
   УстановитьПривилегированныйРежим(Истина);
   АктивныеСеансы = ПолучитьСеансыИнформационнойБазы();
   УстановитьПривилегированныйРежим(Ложь);
   ИмяПользователяЗаблокировавшегоДок = "";
      Для Каждого Элемент Из АктивныеСеансы Цикл
          Если Элемент.НомерСеанса = НомерСеанса Тогда
              ИмяПользователяЗаблокировавшегоДок = Элемент.Пользователь.ПолноеИмя;
              Прервать;
          КонецЕсли;
      КонецЦикла;
      Сообщить("Объект заблокирован пользователем: " + ИмяПользователяЗаблокировавшегоДок + "" + Сред(ОбрезанаОшибка, Найти(ОбрезанаОшибка,", начат:")));
   ЭтаФорма.ТолькоПросмотр = Истина;
  КонецПопытки;
КонецЕсли;