Имя: Пароль:
1C
 
Натолкнулся на непонятную с ситуацию с рабочим столом в 1С и модальными формами
0 Jackman
 
14.05.15
14:23
Сделал рабочий стол в 1С (обычная обработка с опцией "Рабочий стол" в форме). Нужно было проверять из других модулей конфигурации, открыт ли рабочий стол, использовал такой код:

ФормаСтола = Обработки.РабочийСтол.ПолучитьФорму("Форма");
Если  ФормаСтола.Открыта() Тогда
// Делаю, что мне надо
КонецЕсли;

Вроде все работает, однако наткнулся на непонятную вещь: если открыть какое-то модальное окно в 1С, то ФормаСтола.Открыта() выдает значение "Ложь", хотя рабочий стол открыт. Это правильно? Если да, то как обойти?
1 asady
 
14.05.15
14:27
(0) уид формы проверяй
2 Jackman
 
14.05.15
14:57
(1) Так тоже непомогает.

ФормаСтола = Обработки.РабочийСтол.ПолучитьФорму("Форма",,"тест1");


Все работает, кроме момента, когда пользователь открывает какое-то модальное окно, например, полез в настройки отчета.
3 Jackman
 
14.05.15
14:58
*не помогает
4 Jackman
 
14.05.15
16:31
Апну тему. помогите разобраться. Проблема возникает только, если открыто какое-то модальное окно, может это глюк релиза?
5 Гёдза
 
14.05.15
16:36
Если модальное окно открыто, кто же тогда проверяет наличие рабочего стола?
6 samozvanec
 
14.05.15
16:37
ну можно попробовать в окнах поискать
7 Jackman
 
14.05.15
16:46
(5) А разве нельзя? Периодически отрабатывают определенные процедуры, если открыт рабочий стол, то они с ним взаимодействуют. Если в момент отработки этих процедур, пользователь откроет какое-то модальное окно - процедура считает, что рабочий стол у пользователя не запущен. Конечно, можно все нужные мне процедуры впихнуть в форму рабочего стола и запустить в нем обработчик ожидания, но не хотелось бы...
8 Jackman
 
15.05.15
00:59
Вот нашел старую тему, похоже, что ошибка платформы
v8: Почему может не отрабатывать функция Форма.Открыта()
Ошибка? Это не ошибка, это системная функция.