Имя: Пароль:
1C
1C 7.7
v7: Программно активизировать элемент формы
0 Snik_666
 
15.12.11
17:22
Добрый день! Задача чтобы на форме ввел номер нажал энтер, нашло заказ отчистило поле для ввода нового номера и встал курсор для ввода нового номера, т.е. чтобы пользователь не задумываясь вводил номера заказа: ввел-энтер, ввел-энтер и т.д.

Процедура Поиск()
   ЗаказНайден = 0;
   Для Ии = 1 По спКальк.РазмерСписка()  Цикл
       Док = спКальк.ПолучитьЗначение(Ии);
       Если СокрЛП(Док.НомерЗаказаСтр) = СокрЛП(ВыбНомерЗаказа) Тогда
            спКальк.Пометка(Ии,1);
            спКальк.ТекущаяСтрока(Ии);
            ЗаказНайден = 1;
            ВыбНомерЗаказа = "";
            Форма.Активизировать("ВыбНомерЗаказа",0);
            Прервать;
       КонецЕсли;
   КонецЦикла;
   
   Если ЗаказНайден = 0 Тогда
       Сообщить("Не могу найти заказ "+СокрЛП(ВыбНомерЗаказа),"!");
   КонецЕсли;
КонецПроцедуры


ошибка следующая:
Форма.Активизировать("ВыбНомерЗаказа",0);
{D:\1C_BASE\ИТ.ERT(11)}: Поле агрегатного объекта не обнаружено (Активизировать)
1 Rie
 
15.12.11
17:24
(0) Используй фиктивное закрытие.
2 Snik_666
 
15.12.11
17:25
(1) это как ?
3 Ёпрст
 
15.12.11
17:25
4 FN
 
15.12.11
17:25
Перем Незакрывать;
Процедура ПриЗакрытии()
   Если пустоеЗначение(Незакрывать)=0 тогда
       Активизировать(Незакрывать,0);
       Незакрывать="";
       СтатусВозврата(0);
       Возврат;
   КонецЕсли;
КонецПроцедуры


в нужном месте

Незакрывать="ИмяРеквизитаФормы";
Форма.Закрыть();
5 Snik_666
 
15.12.11
17:36
Спасибо!  век живи - век учись!
6 PZh
 
15.12.11
17:37
(4)
Только если неверный порядок обхода стоит, то этот метод может вызывать открытие всяких нежелательных окон для выбора документов или справочников
7 FN
 
15.12.11
17:42
(5) Добавь еще звук (Сервис.Воспроизвести(<ИмяФайла>)) - типа найдено/ненайдено.
А то они тебе вслепую наколбасят...
8 Злопчинский
 
16.12.11
04:28
а можно вроде и без ложного закрытия,трюк с открытьформумодально с нулевымстатусомвозратаприоткрытии
9 VoditelKobyly
 
16.12.11
10:50
SendKey() нельзя использовать?
Рядом с полем ввода на форме вешаешь кнопку ВВОД, назначаешь ей горячую клавишу. В поле ввода пишешь формулу SendKey(КодГорячейКлавиши). В кнопке ввода уже можешь написать Активизировать("ВыбНомерЗаказа").