Имя: Пароль:
1C
1C 7.7
v7: Форма документа 1С 7.7
0 mirror1982
 
16.01.17
08:12
1С 7.7 Как узнать в выборке документов открыта ли форма документа каким-нибудь пользователем?
1 mehfk
 
16.01.17
08:16
2 Это_mike
 
16.01.17
08:17
в общем случае - никак.
можно попытаться заблокировать - при отказе, значицца, открыто для редактирования. а открытие на просмотр вообще не поймать.
можно формексом ОбработкаБлокировкеОбъекта
3 mirror1982
 
16.01.17
08:26
А как заблокировать?
4 Это_mike
 
16.01.17
08:28
(3) СП украли?
Блокировка(<?>);
Синтаксис:
Блокировка(<ВклВыкл>)
Назначение:
Установить/прочитать режим блокировки. Если при вызове метода параметр <ВклВыкл> не задан, то возвращается режим блокировки до выполнения метода. Число: 1 - заблокирован; 0 - свободен. Если при вызове метода параметр <ВклВыкл> задан, то возвращается результат выполнения метода блокировки. Число: 1 - успешно; 0 - не получилось.
Параметры:
<ВклВыкл> - необязательный параметр. Число: 1 - включить; 0 - выключить.
------
правда, оно работает как-то не совсем верно, но я уже не помню, в чем проблемы
5 Aleksey
 
16.01.17
08:41
У меня сделано так

Перем ДокБлокировка;

Процедура ВводНаОсновании(ДокументОснование)
...
ДокБлокировка=СоздатьОбъект("Документ");
    ДокБлокировка.НайтиДокумент(ДокументОснование);
    Если ДокБлокировка.Блокировка(1)=0 Тогда
               //Так делать нельзя
        Предупреждение("Невозможно заблокировать "+ДокументОснование+"
                            |Ввод на основании невозможен");    
           СтатусВозврата(0);
        Возврат;
    КонецЕсли;
    
...
КонецПроцедуры // ВводНаОсновании()

Процедура ПриЗакрытии()  

    Если ПустоеЗначение(ДокБлокировка)=0 Тогда
        Если ДокБлокировка.Блокировка()=1 Тогда
            ДокБлокировка.Блокировка(0);//снимим блокировку
        КонецЕсли;
    КонецЕсли;        
КонецПроцедуры
6 Это_mike
 
16.01.17
08:45
(5) не лучший способ.
7 Sserj
 
16.01.17
08:49
(2) Если есть FormEx то не совсем понятно зачем блокировки.
Им же можно получить список всех окон через СписокВсехОткрытыхОкон из этого списка отобрать те у которых есть ТекущийДокумент, и смотреть по этому списку. Тут же можно и закрыть нужные окна.
8 mehfk
 
16.01.17
08:51
(6) И то верно. Лучший способ - перейти на 8.3.
9 Это_mike
 
16.01.17
08:51
(7) А если открыто кем-то другим?
10 Это_mike
 
16.01.17
08:52
(8) из-за миски холодца всю свинью колоть?
11 mehfk
 
16.01.17
08:53
(10) Ключевое слово "лучший".
12 Масянька
 
16.01.17
08:54
(11) Чем бы дитя не тешилось - лишь бы не плакало (С)
13 mehfk
 
16.01.17
08:56
(12) Расскажи еще каких-нибудь крылатых выражений, да выпей яду :)
14 Aleksey
 
16.01.17
08:57
(6) почему?
15 Это_mike
 
16.01.17
08:59
(14) ручное управление.
16 Это_mike
 
16.01.17
09:00
(12) "Чем бы дитя не тешилось - лишь бы не забеременело"©
17 Cool_Profi
 
16.01.17
09:00
(16) юююлишь бы своих не заводило
18 Aleksey
 
16.01.17
09:01
(15) не понял?
19 Масянька
 
16.01.17
09:03
(16) Это - современная трактовка. Хотя, в свете (13) - более подходящая.
20 Это_mike
 
16.01.17
09:03
(13) "а Вас, мил человек, в одном из райцентров Гомельской области ожидает горшочек с полонием, и бетонная стена (с асфальтированной дорожкой для разбега)..."©
21 Это_mike
 
16.01.17
09:04
(18) если кто-то открыл док, Блокировка автоматически не ставится. нужно ей шевелить руучную.
22 Это_mike
 
16.01.17
09:16
к (20) : пардон, "...Могилевской области..."
23 АЛьФ
 
16.01.17
09:21
2(21) Чойта?
24 Это_mike
 
16.01.17
09:28
(23) та блокировка, которая штатным методом Блокировка из (4).
25 Aleksey
 
16.01.17
09:28
(21) при вводе на основании я блокирую док основание. Если он уже открыт, то блокировка не пройдет и я отменяю ввод. При закрытии я снимаю блокировку. Соответсвенно никто не может зайти в докоснованик
26 Aleksey
 
16.01.17
09:29
Что и когда откосит?
27 Это_mike
 
16.01.17
09:31
(25) ну ч и говорю - "ручное управление"