Задать вопрос
@keni019

Как заблокировать документ от редактирования, если там уже находится другой пользователь?

если у одного пользователя открыт документ, то другой пользователь может его открыть только для чтения без возможности внесения изменений, сохранения, или проведения документа.
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если ЭтаФорма.ТолькоПросмотр = Ложь Тогда
Попытка
ЭтаФорма.Заблокировать();
Исключение
Ошибка = ОписаниеОшибки();
// Извлечение информации о сеансе
ИмяПользователя = Сред(Ошибка, Найти(Ошибка, "сеанс:") + 7, СтрДлина(Ошибка));
ИмяПользователя = Сред(ИмяПользователя, 1, Найти(ИмяПользователя, ",") - 1);

// Формирование текста вопроса
ТекстВопроса = "Документ уже открыт пользователем " + ИмяПользователя + ". Открыть для просмотра?";

Если Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
Отказ = Истина;
Иначе
ЭтаФорма.ТолькоПросмотр = Истина;
КонецЕсли;
КонецПопытки;
КонецЕсли;
КонецПроцедуры
671f369813a5c323576678.png
даже если в документе никого нет, выходит вот что.
  • Вопрос задан
  • 88 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
fosihas
@fosihas
Автоматизации учета на 1С.
встали на Заблокировать( и нажали ctrl+f1

и получил описание:

Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Пример:
Попытка
НовДокумент.Заблокировать();
Исключение
Предупреждение(НСтр("ru = 'Невозможно заблокировать документ.';"
+ " en = 'Can't lock the document.'"));
КонецПопытки;

А из описание понял, что ты открываешь на Клиенте хотя надо на Сервере. И загнал это в ПриСозданииНаСервере
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы