Выполнение процедуры после открытия формы

1. BAMPER 21.06.13 06:57 Сейчас в теме
День добрый!

Пытаюсь подчинить одну компоненту, пока не сдается....

Есть процедура(в ней вызывается функция) назначена на кнопку, после запуска обработки и открытия формы нажимаю кнопку, все ок, все работает.

Вешаю код ПриОткрытии, фиг не дает запустить, говорит "Значение не является значением объектного типа".

Вопрос такой: Можно ли в 8-ке оформить процедуру которая бы запускалась после открытия формы?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. turbo232 21.06.13 07:19 Сейчас в теме
(1) BAMPER, поставь вызов процедуры в конец обработчика ПриОткрытии. И да, на что конкретно ругается?
2. PhoenixAOD 62 21.06.13 07:07 Сейчас в теме
А по точнее можно? Что именно хотите?
3. BAMPER 21.06.13 07:11 Сейчас в теме
(2) PhoenixAOD, Там долго рассказывать про саму компоненту! Если в двух словах она работает с веб камерой.
Я хочу чтобы при запуске он автоматом находил камеру и включал ее, чтобы не нажимать кнопку.

Если процедура на кнопке, все работает. Если ПриОткрытии, вываливает ошибку...
Вот и подумал может есть возможность вызвать ее ПослеОткрытия, фактически такой процедуры нет в 8.
Форма НЕ управляемая!
4. Stormicon 8 21.06.13 07:15 Сейчас в теме
А какую ошибку вываливает? Просто по идее, процедура ПриОткрытии() выполняется уже в присутствии объекта, т.е. работать должно.
5. PhoenixAOD 62 21.06.13 07:18 Сейчас в теме
Ну вообще должно работать
Процедура ПриОкрытии()
кнНАжатиеВебка()
Конецпроцедуры
7. BAMPER 21.06.13 07:23 Сейчас в теме
Это ругается на код в функции:
Значение не является значением объектного типа (Выгрузить)
Если CamList.Выгрузить().Количество() > 0 Тогда

Эту функцию вызывает процедура:
CamList = ЭлементыФормы.ЭлементУправления1.CamList;
СписокКамер = СформироватьСписокКамер(CamList);
19. turbo232 21.06.13 09:06 Сейчас в теме
(7) BAMPER,
Это ругается на код в функции:
Значение не является значением объектного типа (Выгрузить)
Если CamList.Выгрузить().Количество() > 0 Тогда

Эту функцию вызывает процедура:
Код
CamList = ЭлементыФормы.ЭлементУправления1.CamList;
СписокКамер = СформироватьСписокКамер(CamList);


CamList из
СформироватьСписокКамер(CamList)
и CamList из
CamList.Выгрузить().Количество()
это одно и то же? Если так, то разве у элемента управления CamList может быть метод Выгрузить() ?
8. BAMPER 21.06.13 07:27 Сейчас в теме
Разницы нет в конце или в начале, это актив икс, в процедуре ПриОткрытии ничего к ней не обращается
9. PhoenixAOD 62 21.06.13 07:31 Сейчас в теме
Ты сам писал, что по кнопке эта беда выполняется. и у тебя проблема, что при открытии эта процедура не выполняется. правильно?
10. BAMPER 21.06.13 07:36 Сейчас в теме
11. turbo232 21.06.13 07:40 Сейчас в теме
Возможно, ошибка из-за того, что ПриОткрытии выполняется до показа формы пользователю.
Как вариант:

Перем ЭтоОткрытие;

Процедура ОбновлениеОтображения()
	Если ЭтоОткрытие Тогда
                //Вызов процедуры
		ЭтоОткрытие = Ложь;
	КонецЕсли;
КонецПроцедуры

Процедура ПриОткрытии()
	ЭтоОткрытие = Истина;
КонецПроцедуры
Показать
vidar_vv; freeek; kimskiysanya; ne_en; +4 Ответить
12. BAMPER 21.06.13 07:46 Сейчас в теме
(11) turbo232, фиг тоже самое говорит "Значение не является....."
За ответ спасибо!
22. vidar_vv 18.10.23 18:08 Сейчас в теме
13. PhoenixAOD 62 21.06.13 07:48 Сейчас в теме
Процедура ПриОткрытии()
ОбновлениеОтображения()
КонецПроцедуры

Вот так попробуй,и значие ИСтина поставь качо
14. BAMPER 21.06.13 08:29 Сейчас в теме
(13) PhoenixAOD, так тоже нет...
Все это все равно выполняется при открытии, может можно запустить процедуру например после того, как форма открылась и какой-нибудь элемент получил фокус?
15. PhoenixAOD 62 21.06.13 08:38 Сейчас в теме
Так даже может получится много проще, поробуй
16. SamNeSvoy 8 21.06.13 08:51 Сейчас в теме
Как вариант:

Процедура ПриОткрытии()
  ПодключитьОбработчикОжидания("ПодключитьВебку", 3, Истина); 
КонецПроцедуры

Процедура ПодключитьВебку()
  Попытка
    //твой код подключения
  Исключение
    Сообщить("Не удалось подключение!");
  КонецПопытки;
КонецПроцедуры
Показать

в таком случае процедура отработает после открытия формы

ЗЫ задержку 3 сек поставил на вскидку.. думаю можно меньше
shard; ch1mera; kimskiysanya; +3 Ответить
17. alex_sear 21.06.13 08:59 Сейчас в теме
А если вот так:

Процедура ПриОткрытии()
	Сообщить("При открытии");
	ПодключитьОбработчикОжидания("Проверка", 1);
КонецПроцедуры

Процедура Проверка()
	Если ЭтаФорма.ВводДоступен() Тогда
		ОтключитьОбработчикОжидания("Проверка");
	КонецЕсли;
	Сообщить("Запускаем действие");
КонецПроцедуры;
Показать
bird21; Kazaams; shard; ch1mera; alex-l19041; freeek; kimskiysanya; Garstag; +8 Ответить
18. SamNeSvoy 8 21.06.13 09:02 Сейчас в теме
(17) alex_sear, чуть-чуть не успел ))
20. BAMPER 21.06.13 09:26 Сейчас в теме
(18) SamNeSvoy, Слушай спасибо тебе огромноЕ!!!! Все работает даже с 1-ой секундой =)
У меня кстати ни разу не получилось обработчиком ожидания воспользоваться... =)

(19) turbo232, Спасибо тебе тоже за ответы!
Там не одно и тоже, в функции он разбирает параметры камеры и запихивает в массив, т.е ее разрешение и имя!
Всем спасибо за ответы =)
21. Antyp 3 20.03.17 16:07 Сейчас в теме
&НаКлиенте
Процедура ЭтаФорма__ПриОткрытии(Отказ)
	ПодключитьОбработчикОжидания("ПроверкаДоступностиВводаНаФорме", 1);
КонецПроцедуры

&НаКлиенте
Процедура ПроверкаДоступностиВводаНаФорме();
	Если ЭтаФорма.ВводДоступен() Тогда
		ОтключитьОбработчикОжидания("ПроверкаДоступностиВводаНаФорме");
		
....
		
	КонецЕсли;	
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот