Имя: Пароль:
1C
1С v8
Как сделать, так чтобы второй человек не входил в документ, пока первый в нем находится?
0 Nysha1210
 
02.09.20
10:39
Всем привет. Стоит 1С:Підприємство 8.3 (8.3.15.1489) Конфа УТП 1.2 переделанная под нас. Столкнулась с такой проблемой - в один и тот же документ спокойно могут войти 2 пользователя одновременно и работать с ним (пробовала сама под разными пользователями). Войти можно и по клику мышки и по Enter на клаве. До сих пор реально думала, что такое невозможно, но, как оказалось, можно((( Как это исправить? Всем спасибо.
1 Волшебник
 
02.09.20
10:41
Может он открыл просто посмотреть... При начале редактирования нужно проверять и накладывать блокировку.
2 BeerHelpsMeWin
 
02.09.20
10:41
ЗаблокироватьДанныеДляРедактирования(), что-то такое вроде было
3 BeerHelpsMeWin
 
02.09.20
10:42
но это в УФ
а в ОФ вроде ЭтотОбъект.Заблокировать()
4 Nysha1210
 
02.09.20
10:44
Это нужно прописывать для всего? Для справочников, документов? Это какой-то баг в 1С? Раньше всё по умолчанию было заблокировано(((
5 Василий Алибабаевич
 
02.09.20
10:48
(4) Это не баг. Это реализация оптимистической блокировки. А вдруг после редактирования вы нажмете esc и скажете ничего не записывать? Если у вас есть необходимость одновременно изменять данные существующих документов - нужно поменять филармонию.
6 Очевидно
 
02.09.20
10:52
7 ASU_Diamond
 
02.09.20
11:22
(4) с 7.7 путаете
8 fisher
 
02.09.20
11:26
(0) Смотреть одновременно могут сколько угодно людей. Но как только один из пользователей попробует начать изменять документ, который уже изменяет другой пользователь - платформа выдаст соответствующее сообщение. Если этого не происходит, значит платформа не знает, что документ начал изменяться. Это может быть в случаях, например, когда меняется ТЗ на форме, для которой не установлена галка "Изменяет данные" или как оно там. Или нажимает кнопку без установленного этого свойства, которая тоже меняет данные.
9 Nysha1210
 
02.09.20
11:37
Всем спасибо. Нашла решение. Вопрос закрыт.
В процедуре При Открытии() - заблокировала документ:

    //блокируем доступ 2 пользователю
    Попытка
        ЭтотОбъект.Заблокировать();
    Исключение
        Сообщить("Документ редактируется другим пользователем");
        ЭтаФорма.ТолькоПросмотр = Истина;
    КонецПопытки;
В процедуре ПриЗакрытии() - его разблокировала.

В итоге 1-й открывший работает в в режиме Редактирования с документов, а остальные - просто его просматривают. Конфликтов не возникает.
10 fisher
 
02.09.20
11:40
Интересное решение. Но штатное поведение платформы тоже не позволяет одновременное редактирование двумя пользователями и при этом еще сообщает кто именно редактирует сейчас документ.
11 Bigbro
 
02.09.20
11:40
(0) переходите на 7.7, там это реализовано (с) ))
12 Волшебник
 
04.09.20
07:18
(11) Семёрка ещё сырая...
13 Ёпрст
 
04.09.20
11:17
(10) в ОФ то ? еще как позволяет и ничего не пишет. Ты это узнаешь потом, при записи объекта..что данные изменились и облом, амиго, все твои правки документа коту под хвост
14 Ёпрст
 
04.09.20
11:19
(9) не информативное сообщение, из ОписаниеОшибки вырежи, каким именно пользователем открыт документ и покажи это в сообщении
2 + 2 = 3.9999999999999999999999999999999...