|
|
|
Диалог "Не удалось начать редактирование" для самописного документа | ☑ | ||
|---|---|---|---|---|
|
0
trewikz
naïve
08.10.24
✎
13:04
|
Всех приветствую.
Появилась нужда ограничить совместную работу с новым документом. Как внедрить типовой функционал по ограничению? Пробовал методы: .Заблокировать(); .ЗаблокироватьДанныеДляРедактирования(Параметры.Ключ); .ЗаблокироватьДанныеФормыДляРедактирования(); Пробовал в следующих обработчиках: ПриОткрытии() ПриСозданииНаСервере() Нужного результата не добился. |
|||
|
1
saaken
08.10.24
✎
15:46
|
А откуда есть уверенность, что можно совместно редактировать документ
|
|||
|
2
trewikz
naïve
08.10.24
✎
15:55
|
(1) Мне наоборот надо убрать эту возможность. Если первый пользователь уже работает с документом, то второму выводить всплывающее окно "Не удалось начать редактирование"
|
|||
|
3
trewikz
naïve
08.10.24
✎
15:57
|
(1) Сейчас два пользователя могут зайти в документ и одновременно вносить в него правки. А хочу добиться блокировки работы позднего пользователя. Чтобы внести хоть какие-либо правки было невозможно. https://wonderland.v8.1c.ru/blog/vzaimodeystvie-pri-redaktirovanii-odnikh-i-tekh-zhe-dannykh/?sphrase_id=986426
|
|||
|
4
arsik
гуру
08.10.24
✎
16:00
|
Попробуй так
&НаСервере
&Вместо("ПриСозданииНаСервере")
Процедура кмн_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Попытка
ЭтотОбъект.ЗаблокироватьДанныеФормыДляРедактирования();
Исключение
Сообщить(ОписаниеОшибки());
ЭтаФорма.ТолькоПросмотр = Истина;
КонецПопытки;
ПродолжитьВызов(Отказ, СтандартнаяОбработка);
|
|||
|
5
trewikz
naïve
08.10.24
✎
16:25
|
(4) Не работает. ЭтотОбъект.ЗаблокироватьДанныеФормыДляРедактирования(); отрабатывает без ошибок у двоих пользователей. С тем учетом, что сначала документ открыл первый пользователь, потом второй. Наличие модифицированности на результат так же не повлияло.
|
|||
|
6
osa1C
08.10.24
✎
16:38
|
(4) Почему при создании на сервере? Документ уже создан, значит ПриЧтенииНаСервере
|
|||
|
7
arsik
гуру
08.10.24
✎
16:43
|
(5) Очень странно. У нас все работает. Вы делаете что то не то.
Возможно вы что то намудрили с ключами формы. Что у вас основной реквизит формы? (6) Ну и создан и чего? |
|||
|
8
trewikz
naïve
08.10.24
✎
16:43
|
(7) Ключи не трогал. Документ примитивный, является объектом расширения.
|
|||
|
9
arsik
гуру
08.10.24
✎
16:46
|
(8) Покажите что у вас тут
|
|||
|
10
trewikz
naïve
08.10.24
✎
16:51
|
||||
|
11
arsik
гуру
08.10.24
✎
16:55
|
(10) 🤦
|
|||
|
12
trewikz
naïve
08.10.24
✎
17:01
|
||||
|
13
arsik
гуру
08.10.24
✎
17:22
|
(12) Ну что сказать. Ебанная мистика. Может от того что у вас объект в расширении. Мы так не делаем.
|
|||
|
14
Шурик71
08.10.24
✎
22:06
|
(0) я сейчас уже не помню детали, давно это было, но вот так у меня работает
Процедура ПриОткрытии()
//... тут куча кода
Если НЕ ТолькоПросмотр тогда
Если ЗначениеЗаполнено(Объект.Ссылка) тогда
Если НЕ ЗаблокироватьОбъект(Объект.Ссылка, УникальныйИдентификатор) Тогда
ВключитьРежимТолькоПросмотр(Истина);
КонецЕсли;
КонецЕсли;
Иначе
//кнопки тоже надо..
ВключитьРежимТолькоПросмотр(Истина);
КонецЕсли;
//... тут куча кода
КонецПроцедуры
Функция ЗаблокироватьОбъект(Ссылка, УникальныйИдентификатор)
Результат = Истина;
Попытка
ЗаблокироватьДанныеДляРедактирования(Ссылка,, УИД);
Исключение
ОшИнфо = ИнформацияОбОшибке();
Ош = ОшИнфо.Причина.Описание;
Результат = Ложь;
Сообщить("Объект заблокирован! ("+Ош+").
|Открываем документ в режиме просмотра!");
КонецПопытки;
Возврат Результат;
КонецФункции |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |