Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 окт 2021, 09:05

Неверно определяется открыта форма или нет

Автор mzybo, 29 июн 2017, 11:03

0 Пользователей и 1 гость просматривают эту тему.

mzybo

Добрый день!
Есть некая обработка, из которой создаётся документ и открывается его форма. По прошествии некоторого время, нужно понять, открыта форма или нет и дозаполнить данные на форме.

УИДФормы – ГУИД созданного документа
СсылкаНаСобытие – Ссылка созданного документа

Нужно понять, открыта эта форма или нет. Если открыта, подставить значение в форму, если нет, то записать в документ. В первом, собственно, и проблема.
&НаКлиенте
Процедура 123   
    ПараметрыФормы = Новый Структура("Ключ",СсылкаНаСобытие);
    Форма = ПолучитьФорму("Документ.Событие.Форма.ФормаДокумента",ПараметрыФормы, ЭтаФорма, УИДФормы);
    Если Форма.Открыта() Тогда !!!!! – Здесь ошибка. Неверно определяется. Форма по факту открыта.

КонецПроедуры


Ошибка один раз на несколько сотен документов

ilyay

Это проверит, что форма открыта у вас в том же приложении. А если кто-то другой открыл форму документа?
Еще, получить форму не значить открыть ее.

Лучше проверять, что наложена объектная блокировка - вызывать метод Заблокирован(). Если документ заблокирован, значит где-то открыта форма. Если форма имеет ключевой реквизит документ, то такая блокировка накладывается автоматически при открытии формы с возможностью записи (не ТолькоПросмотр). Если вы получите объект и обновите данные для заблокированного объекта, то из открытой формы данные записать будет нельзя, т.к. будет несоответствие версий. Здесь нужно решить, можете подождать, или срочно надо обновить данные в объекте, даже если с ним кто-то работает.

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск