Имя: Пароль:
1C
1С v8
УП, СообщениеПользователю: как привязать к другой форме?
0 andrewks
 
17.01.12
22:28
свойство ИдентификаторНазначения вижу, вопрос - как получить идентификаторы текущих открытых форм? и можно ли привязать к "главному" окну предприятия?
1 H A D G E H O G s
 
17.01.12
22:36
ОкнаКлиентскогоПриложения()
ОкноКлиентскогоПриложения.ПолучитьСодержимое()
ОкноКлиентскогоПриложения.Основное
2 H A D G E H O G s
 
17.01.12
22:38
А, ну и сама функция
ПолучитьОкна()

Но только в Управляемом,
3 andrewks
 
17.01.12
22:39
(2) ну да, в УП и надо. спасибо! надо было сразу в СП лезть, а я ступил, гуглить начал, ничо не нашёл :)
4 filh
 
17.01.12
22:40
(3) ДенисЧ и в снеговиках СП все поворовал...
5 andrewks
 
17.01.12
23:02
чё-то туплю. а как всё-таки идентификатор выдрать?

ТекИД="";
   Окна=ПолучитьОкна();
   Для каждого ТекОкно из Окна Цикл
       Если ТекОкно.Основное Тогда
           ТекИД=ТекОкно.ПолучитьСодержимое().УникальныйИдентификатор;
       КонецЕсли;
   КонецЦикла;


ТекОкно.ПолучитьСодержимое() возвращает Неопределено
6 GenV
 
17.01.12
23:08
(5) Наверное потому что окно не вспомогательное.
Вот такой пример есть в БСП, может быть пригодится:

// Используется для открытия формы присоединенного файла, из "естественной"
// формы присоединенного файла (формы элемента справочника).
// Параметры
//  Форма - форма справочника присоединенных файлов (будет закрыта)
//
Процедура ПерейтиКФормеПрисоединенногоФайла(Форма) Экспорт
   
   ПрисоединенныйФайл = Форма.Ключ;
   
   Форма.Закрыть();
   
   Для Каждого ОкноКП Из ПолучитьОкна() Цикл
       
       Содержимое = ОкноКП.ПолучитьСодержимое();
       
       Если Содержимое = Неопределено Тогда
           Продолжить;
       КонецЕсли;
       
       Если Содержимое.ИмяФормы = "ОбщаяФорма.ПрисоединенныйФайл" Тогда
           Если Содержимое.Параметры.Свойство("ПрисоединенныйФайл")
              И Содержимое.Параметры.ПрисоединенныйФайл = ПрисоединенныйФайл Тогда
               ОкноКП.Активизировать();
               Возврат;
           КонецЕсли;
       КонецЕсли;
       
   КонецЦикла;
   
   ОткрытьФормуПрисоединенногоФайла(ПрисоединенныйФайл);
   
КонецПроцедуры
7 andrewks
 
17.01.12
23:10
(6) это всё понятно, вопрос - как получить ИД основного окна?
8 filh
 
17.01.12
23:11
(7) Эх, а как просто было в v7)))
9 andrewks
 
17.01.12
23:17
(8) да вообще атас какой-то. вроде простого хочу - привязать сообщения к основному окну.
неужели никто не пользуется?
10 GenV
 
17.01.12
23:19
(9) Можно затухающее сообщение сделать на рабочем столе через ПоказатьОповещениеПользователя
11 andrewks
 
17.01.12
23:26
(10) блин, тут уже спортивный интерес появился. и гугль молчит, как назло
12 filh
 
17.01.12
23:28
(11) ТекИД=ТекОкно.УникальныйИдентификатор; ? не?
13 andrewks
 
17.01.12
23:38
(12) нет у ОкноКлиентскогоПриложения такого атрибута
14 andrewks
 
18.01.12
08:17
апаньки
15 andrewks
 
18.01.12
11:45
есть мысли?
16 andrewks
 
18.01.12
20:43
^
17 filh
 
18.01.12
20:47
а просто глянуть что дает

ТекИД="";
   Окна=ПолучитьОкна();
   Для каждого ТекОкно из Окна Цикл
       Сообщить(ТекИД=ТекОкно.ПолучитьСодержимое().УникальныйИдентификатор);
   КонецЦикла;
18 andrewks
 
18.01.12
20:52
(17) что оно может давать, если оно = Неопределено для основного окна (даже в СП это закреплено). получается патовая ситуация - сама система может прикрепить сообщения к основному окну, а вот программер - никак. хотя, может кто-то всё-таки знает хитрый способ получения ИД основного окна, просто пока мимо не пробегал
19 andrewks
 
19.01.12
20:33
всё лелею надежду
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn