Имя: Пароль:
1C
1С v8
Как запретить открывать документ дважды?
0 napagokc
 
07.02.13
12:54
Есть кнопка, которая открывает определенные документы. Все хорошо работает, но при повторном нажатии на эту кнопку открываются дубликаты ранее открытых документов.
Пример: по кнопке открывается сразу три документа. Один документ я случайно закрыл и, чтобы не искать его в общем журнале, опять нажимаю кнопку. В результате получаю не три документа, а пять (два открытых изначально и три открытых только что), два из которых дублируют открытые ранее документы.
Как сделать так, чтобы дублирующиеся документы не открывались?
Мне кажется, что я где-то читал об этом и решение на поверхности, но не могу вспомнить и поиск не помог :(
1С8.2, конфа собственной разработки.
1 1C-band
 
07.02.13
12:55
(0) Блокировки?
2 jenny_tea
 
07.02.13
12:56
ставить для формы документа владельца а при открытии
Если ФормаДок.Открыта() Тогда
ФормаДок.Активировать();
Иначе
ФормаДок.Открыть()
КонецЕсли;
3 napagokc
 
07.02.13
13:01
(1) можно чуть подробнее? Для чайников =)
(2) Почему-то не работает. Может что-то не так делаю...

ФормаДок = док.ПолучитьФорму();
Если НЕ ФормаДок.Открыта() Тогда
   ФормаДок.Открыть();
КонецЕсли;
4 Reset
 
07.02.13
13:02
(0) По моему, такая ситация возможна, только если кто-то намеренно вредил в базе (получая формы для объектов). По ссылке всегда открывается та же форма.
5 Reset
 
07.02.13
13:02
ситуация*
6 Reset
 
07.02.13
13:03
Т.е. на кропку открытия кто-то повесил код вида ПолучитьОбъект().ПолучитьФорму().Открыть()
7 napagokc
 
07.02.13
13:04
(6) Так и есть, так запрограммированно. Кнопка не стандартная
8 fisher
 
07.02.13
13:04
(6) И не просто, а с другим ключом уникальности формы.
9 Reset
 
07.02.13
13:04
(7) Ну и что тогда не устаивает? :)
10 fisher
 
07.02.13
13:05
(7) Достаточно убрать ключ уникальности.
11 Reset
 
07.02.13
13:05
(8) ну нужен ключ. Экземпляр объекта другой - будет открыта другая форма
12 Reset
 
07.02.13
13:05
+(11) НЕ нужен*
13 Defender aka LINN
 
07.02.13
13:05
(8) Это формы разных экземпляров объекта, там ключ уникальности нафиг не нужен.
(7) Тебе уже написали, что делать.
14 napagokc
 
07.02.13
13:09
что-то либо я вас не понимаю, либо вы меня как-то не так поняли...
Допустим у нас есть три документа: Накл1, Накл2 и Накл3.
Они созданы, сохранены, проведены (или не проведены - не важно)
Кнопка находит запросом все эти три документа и открывает их. То есть, если документ найден, то

док = Выборка.Ссылка.ПолучитьОбъект();

Дальше открываем форму у этих документов.
15 Reset
 
07.02.13
13:14
(14) Форму у ссылки получай, а не у объекта.
Грубо Выборка.Ссылка.ПолучитьФорму()
16 napagokc
 
07.02.13
13:16
(15) Да! Все получилось! Спасибо!!!