Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Баг ОткрытьПлавающуюФорму() (число прочтений - 8133 )
RomanTerra
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 21. Августа 2018
Пол: Мужской
Re: Баг ОткрытьПлавающуюФорму()
Ответ #15 - 04. Февраля 2019 :: 17:14
Печать  
Злоп писал(а) 31. Января 2019 :: 20:08:
А для чего вообще нужна ОткрытьПлавающуюФорму, в чем цимус?


Хочу реализовать нечто схожее как в восьмерке ПоказатьОповещениеПользователя() - всплывающее окно, которое гаснет со временем

вкратце для чего мне это надо...
есть инет-магазин, из которого в 1С синхронизируются заказы
с определенным интервалом с помощью ПлавающейФормы показываю юзерам 1С, что есть необработанные заказы
и при нажатии на ПлавающуюФорму открываю журнал заказов

всем юзерам очень понравилось, что:
- это не "просто сообщение", а при нажатии на него есть "определенное событие"
- ПлавающаяФорма не мешает работать, то есть что она полупрозрачная и находится поверх других окон, и что при ее открытии фокус на нее не переходит

вот бы только решить баг с отображением списка, чтобы он отображался ВОЗЛЕ ЭЛЕМЕНТА (а не возле ПлавающейФормы) при стандартном ВыбратьЗначение(СписокЗначений,,,,2)
то есть выбор маленьким списком (привязанным к позиции элемента диалога)
« Последняя редакция: 04. Февраля 2019 :: 19:39 - RomanTerra »  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 247
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: Баг ОткрытьПлавающуюФорму()
Ответ #16 - 16. Февраля 2019 :: 18:28
Печать  
Народ, SOS! По теме Плавающей формы, никак не могу после открытия программно активировать её. Активизировать() не помогает. Может что-то ещё есть?
Помогите, ПЛЗ.
  
Наверх
 
IP записан
 
RomanTerra
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 21. Августа 2018
Пол: Мужской
Re: Баг ОткрытьПлавающуюФорму()
Ответ #17 - 17. Февраля 2019 :: 08:02
Печать  
recop писал(а) 16. Февраля 2019 :: 18:28:
Народ, SOS! По теме Плавающей формы, никак не могу после открытия программно активировать её. Активизировать() не помогает. Может что-то ещё есть?
Помогите, ПЛЗ.


Если надо активизировать форму ПослеОткрытия, то почему тогда не использовать обычную форму?

как по мне, то это не "недостаток", это как раз "преимущество" Плавающей формы, что фокус после открытия на нее не переходит
юзер как работал в другой форме, то так и работает - Плавающая форма ненавязчиво всплывает поверх других окон в нужной области и при этом не мешает работать
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 247
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: Баг ОткрытьПлавающуюФорму()
Ответ #18 - 17. Февраля 2019 :: 10:44
Печать  
RomanTerra писал(а) 17. Февраля 2019 :: 08:02:
Если надо активизировать форму ПослеОткрытия, то почему тогда не использовать обычную форму?

как по мне, то это не "недостаток", это как раз "преимущество" Плавающей формы, что фокус после открытия на нее не переходит
юзер как работал в другой форме, то так и работает - Плавающая форма ненавязчиво всплывает поверх других окон в нужной области и при этом не мешает работать


Блин, не нравятся мне умники, вместо ответа навязывающие своё мировоззрение. Вот, если бы просто спросить, типа, я не понимаю зачем это тебе нужно? Так вот, умник, каждый выбирает свою дорогу и кажущееся преимущество, при определенных условиях, легко превращается в недостаток. Если бы программистов ограничивали индивидуальными соображениями, то вы, до сих пор, работали в DOS'е, в лучшем случае. Культура и популярность языка программирования и заключается в возможности реализации любых капризов программиста. Постарайтесь больше не комментировать вопросы ответы на которые вы не знаете.
А теперь зачем мне это нужно. А затем, что в модальном окне не работают предопределенные процедуры и мне нужно чтобы окно не имело возможности максимизироваться или после своего открытия сбивать максимизацию. И, соответственно, вопрос к специалистам: Подскажите, если знаете, как после вызова плавающей формы активировать атрибут (в моем случае табличное поле), находящийся на ней, не прибегая к манипуляции мышью? Спасибо.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Баг ОткрытьПлавающуюФорму()
Ответ #19 - 17. Февраля 2019 :: 20:23
Печать  
Окна.НаПереднийПлан() пробовал? http://www.1cpp.ru/docum/html/FormEx.html#id237
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 247
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: Баг ОткрытьПлавающуюФорму()
Ответ #20 - 17. Февраля 2019 :: 23:56
Печать  
alyuev писал(а) 17. Февраля 2019 :: 20:23:
Окна.НаПереднийПлан() пробовал? http://www.1cpp.ru/docum/html/FormEx.html#id237


Нет, не успел. Решил так:
Код
Выбрать все
Сервис.ОткрытьПлавающуюФорму("Обработка.ОткрытыеДанные",param);
param.Активизировать("ТП_Данные");
 

  
Наверх
 
IP записан
 
RomanTerra
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 21. Августа 2018
Пол: Мужской
Re: Баг ОткрытьПлавающуюФорму()
Ответ #21 - 21. Февраля 2019 :: 12:35
Печать  
Formex 2.0.5.142
Огромное спасибо АЛьФу, что добавил координаты в Сервис.ВыбратьЗначение()

правда, если форма максимизирована, и сделать вот так:
Сервис.ВыбратьЗначение(СписокЗначений, Значение,,0,2,,,КоординатаХ,КоординатаY)
то максимизация слетает (но думаю это поправимо...)

но чтоб использовать ПлавающуюФорму и отказаться от стандартного ВыбратьЗначение(Значение,,,,2), то надо определять координаты:
- реквизита шапки
- текущей ячейки многострочной части
- текущей ячейки табличного поля
бо списки значений у меня во всех вышеперечисленных вариантах...

подскажите это реально?
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 247
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: Баг ОткрытьПлавающуюФорму()
Ответ #22 - 22. Февраля 2019 :: 05:37
Печать  
Реально.
  
Наверх
 
IP записан
 
RomanTerra
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 21. Августа 2018
Пол: Мужской
Re: Баг ОткрытьПлавающуюФорму()
Ответ #23 - 09. Апреля 2020 :: 07:38
Печать  
вот такая задача:
есть на форме реквизит "Реквизит1" и таблица значений колонка "Реквизит2"
так как после использования ОткрытьПлавающуюФорму слетает привязка к элементу диалога штатного ВыбратьЗначение(Значение,,,,2), то думал использовать Сервис.ВыбратьЗначение(СписокЗначений, Значение,,0,2,,,КоординатаХ,КоординатаY)

но вот что получается для реквизита "Реквизит1":
Код
Выбрать все
Процедура  ПриНачалеВыбораЗначения(Элем,ФлагСтандОбр)
	Перем ЛевоОкно,ВерхОкно;
	Перем ЛевоАтрибут,ВерхАтрибут,ШиринаАтрибут,ВысотаАтрибут;
	Если Элем = "Реквизит1" Тогда
		ФлагСтандОбр = 0;
		Окна = СоздатьОбъект("Окна");
		Окна.ПоложениеОкна(Форма,ЛевоОкно,ВерхОкно);
		ФормаР = СоздатьОбъект("РасширениеФормы");
		ТекАтр = ФормаР.ПолучитьАтрибут("Реквизит1");
		ТекАтр.ПолучитьКоординаты(ЛевоАтрибут,ВерхАтрибут,ШиринаАтрибут,ВысотаАтрибут);
		Лево = ЛевоОкно+ЛевоАтрибут;
		Верх = ВерхОкно+ВерхАтрибут;
		Сервис = СоздатьОбъект("Сервис");
		Сервис.ВыбратьЗначение(Сп,Реквизит1,,0,2,,,Лево,Верх);
	КонецЕсли;
КонецПроцедуры
 






и вот что получается для реквизита "Реквизит2":

Код
Выбрать все
Процедура ИзРеквизит()
	Перем Верх,Лево,Низ,Право;
	Если Форма.АктивныйЭлемент() = "Табл" Тогда
		ТекКолонка = Табл.ТекущаяКолонка();
		Если ТекКолонка = "Реквизит2" Тогда
			Рекв2 = "";
			ФормаРасш.ПолучитьКоординатыТекущейЯчейки("Табл",Верх,Лево,Низ,Право,1);
			Сервис = СоздатьОбъект("Сервис");
			Сервис.ВыбратьЗначение(Сп,Рекв2,,0,2,,,Низ,Лево);
			Табл.УстановитьЗначение(1,"Реквизит2",Рекв2);
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры
 





хэлп! научите как "привязать" список значений (СпособВыбора = 2 - выбор маленьким списком) к элементу диалога
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 247
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: Баг ОткрытьПлавающуюФорму()
Ответ #24 - 03. Января 2022 :: 10:41
Печать  
Доброе время суток! С новым 2022 годом!
Возвращаясь к плавающей форме:
Все мы знаем, что однажды открыв плавающую форму уничтожить физически её не получится. После закрытия контекст жив. В связи с этим вопрос к профи: Имеентся ли возможность вернуть её к жизни используя сохранённый контекст? Спасибо.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать