![]() |
![]() |
![]() |
|
Почему может не отрабатывать функция Форма.Открыта() | ☑ | ||
---|---|---|---|---|
0
TDI
19.05.08
✎
14:25
|
строка кода
ДокументОплаты.ПолучитьОбъект().ПолучитьФорму("ФормаДокумента").Открыта() возвращает ЛОЖЬ, хотя именно форма ФормаДокумента этого объекта откраты ... В чём может быть проблемма? Спасибо |
|||
1
Hadgehogs
19.05.08
✎
14:28
|
В
"КлючУникальности" |
|||
2
Живой Ископаемый
19.05.08
✎
14:31
|
Может потому что та которая открыта была открыта с заполенным ключем уникальности?
ПолучитьФорму(<Форма>, <Владелец>, <Ключ уникальности>) |
|||
3
Живой Ископаемый
19.05.08
✎
14:36
|
(1) Кстати, в связи с этим хотел спросить - а почему когда мы выбираем пункт меню "Отчеты\Оборотно-сальдовая ведомость", то каждый раз открывается новая форма? В пункте меню вроде каждый раз ключь уникальности не зается и не перелается в качестве параметра... Чем это регулируется?
|
|||
4
Irbis
19.05.08
✎
14:40
|
(3) Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
НазначитьФормеУникальныйКлючИдентификации(ЭтаФорма); А это что собачачий х...? |
|||
5
Hadgehogs
19.05.08
✎
14:40
|
Процедура НазначитьФормеУникальныйКлючИдентификации(Форма) Экспорт
Если Форма.КлючУникальности = Неопределено Тогда Форма.КлючУникальности = Новый УникальныйИдентификатор(); КонецЕсли; КонецПроцедуры Это в ПередОткрытием() В УПП |
|||
6
Живой Ископаемый
19.05.08
✎
14:42
|
2(4,5) ой, спасибо... :) Опять забыл с глазиков ботиночки снять....
|
|||
7
Stepa86
19.05.08
✎
15:25
|
У меня тоже есть вопрос:
Есть форма, которая открывается при выполнении некоторого условия и если она еще не открыта. открываю без ключа уникальности, открытость проверяю МояФорма.Открыта()... Все в принципе хорошо, но если в момент проверки какое нить окно(другое) открыто модально, то МояФорма.Открыта() = Ложь всегда. Может можно программно узнать, что в 1Ске в данный момент висит модальное окно? |
|||
8
Hadgehogs
19.05.08
✎
15:30
|
(7) Вы умеете работать с потоками в 1С? Научите.. Ну пожалуйста..
|
|||
9
Живой Ископаемый
19.05.08
✎
15:38
|
(8) Может у него процедура по проверке открытости - универсальная, и может вызываться как из обычных оконо, так и из модельных?
|
|||
10
Hadgehogs
19.05.08
✎
15:39
|
А, ну если только внутри модального окна...
|
|||
11
Stepa86
19.05.08
✎
15:44
|
(8) так че? низя? опять придется через одно место делать, чтоб красиво получилось =(
|
|||
12
Живой Ископаемый
19.05.08
✎
15:50
|
(11) Мы просто говорим о том, что если вы проверяете из самого модального окна открыто ли оно - то это не имеет большого смысла, потому что вы и так знаете, что раз этот код выполняется, то модальное окно открыто..
Если же вы пытаетесь этот код выполнить из другого места - например из регламентного задания или обработки ожидания, то он просто напросто не будет выполняться, пока открыто модальное окно... Как только модальное окно будет закрыто, озможно управление получит и ваша процедура проверки - но тогда она не увидит открытых модальных оконо |
|||
13
Hadgehogs
19.05.08
✎
15:54
|
Нуу... Типа... Того...
|
|||
14
Stepa86
19.05.08
✎
15:58
|
хм... видимо не так объяснился...
с помощью обработчика ожидания (глобального) крутится с некоторым интервалом (пользователь задает) процедурка, которая проверяет условия. Если условия выполнены - открывается форма1, если форма1.открыта() - форма1 обновляется данными. Если при открытой форме1 что нибудь открыть модально (форма2), то форма1.Открыта() = ложь и соответственно открывается еще один экземпляр формы1, причем потом форма1.открыта() = Истина. Получилось 2 экземпляра открытой формы1, причем одна из них стала тоже модальной, а вторая недоступна изза модальности формы2. воооооооооооооот |
|||
15
Aprobator
19.05.08
✎
16:01
|
ПолучитьФорму вижу, а где Открыть?
|
|||
16
Живой Ископаемый
19.05.08
✎
16:02
|
(14) Мы не верим, что когда открыта модальная форма, хотя бы одна, ваш глобальный обработчик ожидания получает управление...
Или все-таки получает? Тогда очень и очень странно... попробую |
|||
17
Hadgehogs
19.05.08
✎
16:02
|
ППЦ, задачу в целом обрисуйте..
|
|||
18
Stepa86
19.05.08
✎
16:08
|
(17) а че, в (14) не понятно? мне нужно узнать открыта ли форма1 или нет в любом случае. проверяю в глобальном модуле
|
|||
19
Hadgehogs
19.05.08
✎
16:14
|
(14), (18) - это не задача в целом.. Это ньюансы решения.
Задача в целом, это :"Необходимо организаовать предупреждения юзверам" "Необходиом сделать задачник юзверей" 1-ая форма сообщает то-то... 2-ая форма сообщает что-то... |
|||
20
Stepa86
19.05.08
✎
16:15
|
(16) кстати да, странно что обработчик получает управление, но получает. не получал бы и проблем не было б, версия 8.1.10.50
|
|||
21
Stepa86
19.05.08
✎
16:20
|
Задача в целом: необходимо организовать напоминания юзверям,
напоминание задается: время напоминания, текст и пользователь (регистр сведений) форма напоминания - выводит список всех напоминаний, где текущаяДата() > времени напоминания необходимо, чтобы во время работы у пользователя висела максимум одна форма напоминания не в модальном режиме |
|||
22
Hadgehogs
19.05.08
✎
16:31
|
(21) Хм, забавный эффект...
Глюк платформы, имхо |
|||
23
Hadgehogs
19.05.08
✎
16:37
|
Немодальная форма, открываемая в Глобальном обработчике, при любой другой открытой модальной форме, открывается копией, открывается, несмотря на КлючУникальности, сама себя считает НЕМОДАЛЬНОЙ, фактически является модальной. Своим владельцем считает другую модальную форму...
Глюк-с.. |
|||
24
Hadgehogs
19.05.08
✎
16:38
|
Прошу еще кого-нибудь подтвердить эффект..
|
|||
25
Stepa86
19.05.08
✎
16:42
|
Забавная фича =)
|
|||
26
Живой Ископаемый
19.05.08
✎
16:43
|
(24)
Процедура Тест() Экспорт Сообщить(""+ТекущаяДата()); КонецПроцедуры ПодключитьОбработчикОжидания("Тест",5); === Открываю окно из пункта меню "Сервис\настройки" - оно модальное... Сообщение с текущим временем продолжает выводиться... Меню раскрываются, но правда не отрабатаетвается выбор. если же выбрать пункт меню "Справка\О программе" то тогда меню программы блокируется, но текущее время продалжает выводиться... 8.1.11.67... Наверное все это можно как-то использовать... |
|||
27
Stepa86
19.05.08
✎
16:45
|
*думает как с помощью этой баги захватить мир*
|
|||
28
Hadgehogs
19.05.08
✎
16:54
|
(26) вот так попробуйте:
Процедура ПриНачалеРаботыСистемы() ПодключитьОбработчикОжидания("ОбработкаОжиданияПользователя",1); КонецПроцедуры Процедура ОбработкаОжиданияПользователя() Экспорт Форма=ПолучитьОбщуюФорму("Форма",,"Уникальный_Ключ"); Если НЕ Форма.Открыта() Тогда Форма.Открыть(); КонецЕсли; КонецПроцедуры |
|||
29
Stepa86
19.05.08
✎
16:56
|
(28) если это мне, то уже пробовал, результат тот же
|
|||
30
Hadgehogs
19.05.08
✎
16:57
|
Нет, это я "Живому ископаемому"
|
|||
31
Живой Ископаемый
19.05.08
✎
17:01
|
(30) Открывается одна, не модальная... Если закрыть - открывается опять...
Типа все как ожидается... |
|||
32
Живой Ископаемый
19.05.08
✎
17:02
|
А... а вот если открыть "Помощь\О программе", открывается второй экземпляр без отображении в панели окон
Если открыть "Серивс\Настройки", то все нормально |
|||
33
Живой Ископаемый
19.05.08
✎
17:03
|
После закрытия модального окна ("О программе") остается один экземпляр
|
|||
34
Hadgehogs
19.05.08
✎
17:04
|
Все, как в (23)
|
|||
35
Живой Ископаемый
19.05.08
✎
17:04
|
Чем отличается модальность окон "Помощь\О программе" и "Сервис\Настройки"?
Или во-втором случае не модальное окно? |
|||
36
Hadgehogs
19.05.08
✎
17:06
|
Модальное...
ХЗ |
|||
37
Stepa86
19.05.08
✎
17:23
|
(23) у меня владельца форма, открытая при модальной, не имеет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |