Имя: Пароль:
1C
 
Как получить список открытых форм в 8-ке?
0 SYS-eva
 
23.09.09
16:55
Собственно вопрос уже задан в заголовке, подскажите плиз есть ли другой вариант кроме как самому следить за тем какие окна открыты.
1 Defender aka LINN
 
23.09.09
16:59
никак
2 SYS-eva
 
23.09.09
16:59
Ясно, жаль, СПС.
3 Ц_У
 
23.09.09
17:19
Можно через ВК
4 H A D G E H O G s
 
23.09.09
17:23
(3) Как??
5 Stepa86
 
23.09.09
17:26
(0) тебе зачем?
6 Федя Тяпкин
 
23.09.09
17:30
так можно или нельзя?
7 Ц_У
 
23.09.09
17:32
(4) Можно ..
MDI-окно
8 Ц_У
 
23.09.09
17:33
где тут валялась кусок кода... сам видел
9 H A D G E H O G s
 
23.09.09
17:36
(7) Мва-ха-ха..
10 Ц_У
 
23.09.09
17:39
(9) что?
11 H A D G E H O G s
 
23.09.09
17:42
(10) Все хорошо.
Продолжай.
12 Ц_У
 
23.09.09
17:46
13 Гений 1С
 
гуру
23.09.09
17:48
можно разослать широковещательное сообщение. но это надо код каждой формы дорабатывать (ответ на сообщение делать)
14 Stepa86
 
23.09.09
17:51
(13) проще тогда уж в какой нить глобальный массив скидывать форму при открытии и вынимать при закрытии
15 H A D G E H O G s
 
23.09.09
17:52
(12)
ППЦ,

                   Менеджер = Вычислить((ТипОбъекта.Ключ + "[Объект.Имя]"));
                   Выборка = Менеджер.выбрать();
                   пока Выборка.Следующий() Цикл

На 60 моих гектарах "это" уснет навечно.
16 Salvador Limones
 
23.09.09
17:54
(15) У тебя украли кнопку Reset? :-))))
17 Stepa86
 
23.09.09
17:54
(15) жестоко...
18 H A D G E H O G s
 
23.09.09
17:56
(16) Не.
а что, реально.
Во франче выковыривал отверткой кнопку "Suspend", которую какой-то дятлообразный дизайнер поместил под клавишей Delete.
19 Гений 1С
 
гуру
23.09.09
18:05
(15) окна с уникальным GUID не откроет
20 Гений 1С
 
гуру
23.09.09
18:05
(18) Я тоже выковирывал
21 Ц_У
 
23.09.09
18:10
да с МДИ я чет пролетел :))))) пошел учить мат часть по 1С
22 H A D G E H O G s
 
23.09.09
18:15
(21) Че МДИ.
Ну получишь дескрипторы окон, их элементов.
И?

Сушить их будешь?
23 Ц_У
 
23.09.09
18:20
(22) ну список окон то получить можно открытых, другое дело для чего это делать, так что ответ на (0) можно
24 SYS-eva
 
24.09.09
08:59
(22) Хочу вынести форму объекта во внешнюю обработку - модуль объекта я вынес без проблем а вот с формой немножко лажово работает метод ВнешниеОтчеты.ПолучтиФорму("ИмяФормы",,Ссылка) - он не ищет среди открытых форм форму с индентификатором а каждый раз создает новую... ну видно делать нечего придется ручками контролить список. Я думал может метод какой нить есть.
25 asady
 
24.09.09
09:01
(24) уверен?
26 SYS-eva
 
24.09.09
09:02
(24) уверен в чем? в том что не работает метод - да уверен.
27 SYS-eva
 
24.09.09
09:03
(24) во всяком случае в 1С:Предприятие 8.1 (8.1.12.101) точно)))
28 simol
 
24.09.09
09:08
(13) И ответили все 15 открытых форм....
29 Aprobator
 
24.09.09
09:13
(24) как то верится с трудом. Вообще то первым параметром там идет имя файла, а уже вторым имя формы.
30 Aprobator
 
24.09.09
09:16
+(29) может еще из за владельца открываться другая форма.
31 SYS-eva
 
24.09.09
09:18
(29)Сори я имел ввиду такой расклад
Объект = ВнешниеОтчеты.Создать("ИмяФайла");
Объект.ПолучитьФорму("Имя",,Ссылка);
- а владельца исползовать не могу так как оригинальную форму объекта нужно закрыть а в место нее показать из внешнего файла.
32 SYS-eva
 
24.09.09
09:26
Вобщем проблема решается так:
в модуле приложения пишем вот такой код
Перем СписокОткрытыхФорм Экспорт;
Процедура СписокОткрытыхФорм(Форма,Ключ) Экспорт
   Строка = СписокОткрытыхФорм.Найти(Ключ,"Ключ");
   Если Строка =Неопределено тогда
   Строка =  СписокОткрытыхФорм.Добавить();
   Строка.Форма=Форма;
   Строка.Ключ=Ключ;
   Форма.Открыть();
   Иначе
   Строка.Форма.Активизировать();    
   КонецЕсли;
КонецПроцедуры
СписокОткрытыхФорм = Новый ТаблицаЗначений;
СписокОткрытыхФорм.Колонки.Добавить("Форма");
СписокОткрытыхФорм.Колонки.Добавить("Ключ");

всем спасибо за внимание!!!
33 asady
 
24.09.09
09:31
(32) сдаётся мне очередная "нетленко" рождается у сережи - удачи тебе коллега!

девиз "вперед на мины"
34 Aprobator
 
24.09.09
09:54
(32) а что мешает форму получить так:

ФормаОтчета = ВнешниеОтчеты.ПолучитьФорму(ИмяФайла, ИмяФормы)


Если нужны для работы реквизиты объекта, то их можно достать через
ФормаОтчета.ОбработкаОбъект.
35 Aprobator
 
24.09.09
09:56
(31) в таком случае зачем пихать ссылку в качестве ключа уникальности формы?
ИМХО - извращение.
36 SYS-eva
 
24.09.09
10:05
(32) а причем сдесь форма отчета??
Речь идет о замене формы объекта к примеру  формы Документа из конфы формой хранящейся во внешнем файле, отсюда и ссылка в качестве ключа уникальности.
37 Aprobator
 
24.09.09
10:33
(36) не вижу связи. Выдержка из СП:

<Ключ уникальности> (необязательный)
Тип: Произвольный. В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм.
При поиске учитываются значения свойств открытых форм соответствующим значениям параметров метода. Если найдена открытая форма (по совпадению всех параметров), то она будет возвращена вместо новой формы.
ЕСЛИ ИЗ НЕКОЕЙ ФОРМЫ(один и тот же владелец) требуется открывать новые экземпляры другой формы, то при каждом вызове метода значение данного параметра должно быть уникально (в рамках соответствующих значений свойств открытых форм).
Значение параметра присваивается свойству открываемой формы КлючУникальности.

Убери его.
38 SYS-eva
 
24.09.09
10:44
(36) Если ты пытаешься открыть документ форма которого уже открыта при таком раскладе у тебя откроется новое окно вместо того чтобы активизировать открытое.
39 Aprobator
 
24.09.09
10:45
(38) уверен?
40 Fynjy
 
24.09.09
10:46
Ээээ, а можно поинтересоваться зачем афт ару список открытых окон?
41 SYS-eva
 
24.09.09
10:47
(39) я впринципе закончил тестовый вариант конфы хочеш скину сам посмотришь, я не претендую на звание мега папы 1С а только учусь и хорошая критика мне бы не помешала.
42 Aprobator
 
24.09.09
10:47
(40) ищет уже открытое окно, чтобы использовать его. Но как то с тыла.
43 Aprobator
 
24.09.09
10:49
(41) я тоже учусь. Но с таким не сталкивался. У меня если форма уже открыта и при ее открытии не использовался ключ, то при попытке открыть форму без указания ключа - находилась всегда уже открытая форма.
44 SYS-eva
 
24.09.09
10:55
(41)Наверное я не совсем ясно объяснил то что я делаю:
есть конфа модули которой - а именно модули объектов и общих модулей вынесенны во внешние отчеты, также вынесенны во внешние отчеты формы справочников доков ит.д. иными словами весь код и формы находятся вне конфы а сама конфа задает только информационную структуру.
45 Aprobator
 
25.09.09
11:23
(44) и зачем все это надо?
46 asady
 
25.09.09
11:28
(45) видимо интересует "горячая замена" - типа обновление на лету.
47 Aprobator
 
25.09.09
11:42
(45) может быть.
48 asady
 
25.09.09
11:47
(47) я когда эту тему обдумывал (давно это было ) - забил на такой расклад - гораздо проще оказалось хранить код в объектах конфигурации - (справочники, РС) и тупо когда надо обновлять их содержимое.
49 asady
 
25.09.09
11:49
(48) таким образом можно было хранить динамические обработчики событий форм например.
50 Гений 1С
 
гуру
25.09.09
13:29
(48) В 2is все равно круче. Поспрошайте тормоза IT. Там все хранится в справочниках - и формы, и алгоритмы.