@keni019

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

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
28 окт. 2024, в 21:59
20000 руб./за проект
28 окт. 2024, в 21:50
2000 руб./в час
28 окт. 2024, в 20:55
10000 руб./за проект