Имя: Пароль:
1C
1С v8
Как программно вызвать событие элемента формы?
,
0 Tester
 
28.11.14
13:25
Всем привет.
1С 8.2 обычное приложение (не управляемое).
На форме есть поле ввода с обработкой события НачалоВыбора.
Мне нужно по нажатию на определенную кнопку на форме вызвать событие поля ввода НачалоВыбора.
1 Господин ПЖ
 
28.11.14
13:26
вызывай то что внутри
2 Cube
 
28.11.14
13:26
(0) Ну так и пиши: НазваниеПроцедуры()
3 olegves
 
28.11.14
13:28
так и пиши ПолеНачалоВвода(Неопределено)
4 Tester
 
28.11.14
13:28
Помимо того, что в обработчике, мне нужно вызвать само событие, т.к. после обработки НачалоВыбора открывается диалог выбора типа значения.
5 ColonelAp4u
 
28.11.14
13:29
(0) Процедура Кнопка1Нажатие(Элемент)
    НачалоВыбора();
    КонецПроцедуры
6 ColonelAp4u
 
28.11.14
13:30
(4) понимаю что открытие диалога вызывается в процедуре НачалоВыбора()
7 ColonelAp4u
 
28.11.14
13:31
(4)  если да то этот диалог вызовется как сработает событие
8 Tester
 
28.11.14
13:33
Нужна примерно такая фишка:

Процедура ТипРеквизитаНачалоВыбора(Элемент, СтандартнаяОбработка)    
    // Отсекаем выбор значения, оставляя лишь выбор типа
    Если ТипЗнч(ТипРеквизита) <> Тип("Неопределено") Тогда
        СтандартнаяОбработка = Ложь;    
    КонецЕсли;
КонецПроцедуры

Процедура ПолеВвода1НачалоВыбора(Элемент, СтандартнаяОбработка)
    Если ТипЗнч(ТипРеквизита) = Тип("Неопределено") Тогда
        // Так вызывается только обработчик события
        ТипРеквизитаНачалоВыбора(ЭлементыФормы.ТипРеквизита, Истина);
        // А мне нужно вызвать само событие,
        // чтобы после отбработчика открылся диалог выбора типа данных
    КонецЕсли;
КонецПроцедуры
9 Tester
 
28.11.14
13:44
Что нельзя никак программно вызвать событие элемента формы с его оработчиком?
10 Господин ПЖ
 
28.11.14
13:45
ты какие-то автотесты изобретаешь?
11 Tester
 
28.11.14
13:47
(10) Какие автотесты? :)
Просто хочу программно открыть диалог выбора типа для поля ввода составного типа данных.
12 Tester
 
28.11.14
14:12
Ладно, всем спасибо. Извратом получил такую шляпу.

Процедура ТипРеквизитаНачалоВыбора(Элемент, СтандартнаяОбработка)    
    // Отсекаем выбор значения, оставляя лишь выбор типа
    Если ТипЗнч(ТипРеквизита) <> Тип("Неопределено") Тогда
        СтандартнаяОбработка = Ложь;    
    КонецЕсли;
КонецПроцедуры


Процедура ТипРеквизитаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    ТипРеквизитаСтрока = Строка(ВыбранноеЗначение);
КонецПроцедуры


Процедура ПриОткрытии()
    ТипРеквизитаСтрока = ТипЗнч(ТипРеквизита);
КонецПроцедуры


Процедура ТипРеквизитаОчистка(Элемент, СтандартнаяОбработка)
    ТипРеквизитаСтрока = "Не определено";
КонецПроцедуры


Процедура ПередЗаписью(Отказ)
    Если ТипЗнч(ТипРеквизита) = Тип("Неопределено") Тогда
        Предупреждение("Выберите тип реквизита!");
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры
13 Господин ПЖ
 
28.11.14
14:17
извраты какие-то
14 Defender aka LINN
 
28.11.14
14:23
(12) А прикладной смысл *этого* в чем вообще?
15 Domovoi
 
28.11.14
14:49
(0)В 1с ничего нельзя. Некоторые вещи косвенно велосипедами можно, но на прямую вроде нельзя вызвать событие.
16 Tester
 
28.11.14
14:51
(14) В справочнике ВидыДопРеквизитыДоговоровКонтрагентов устанавливается Наименование и Тип значения реквизита.
В справочнике ДопРеквизитыДоговоровКонтрагентов добавляется любой реквизит определенного вида и соответственно типа и устанавливается его значение.
Хотел в спр. ВидыДопРеквизитыДоговоровКонтрагентов на форму вывести ПолеВвода ТипРеквизитаСтрока типа Строка и уже в нем организовать в обработчике события НачалоВыбора() выбор типа значения реквизита ТипРеквизита, чтобы возвращало в ТипРеквизитаСтрока тип реквизита.
17 Tester
 
28.11.14
14:52
Писать свой диалог выбора типа мне впадлу, вот и хотел его вызывать из обработчика другого события.
18 Defender aka LINN
 
28.11.14
16:05
(16) Кажется, самое время кому-то закрыть 1С, выключить компьютер и прочитать, наконец, хоть что-нибудь про систему, в которой ты пытаешься программировать. Например, рекомендую главу про Планы Видов Характеристик. Лихо закрученный сюжет, неожиданная развязка.
Ну и еще можно про связь по типу прочитать. И про формы тоже будет не лишним.
19 Tester
 
28.11.14
16:21
(18) Ну я согласен, что скорее всего мой вариант логически не правильный. Но он уже готов и работает.
Читать начну досконально, когда наконец решимся перейти с дремучей 7.7. А пока сойдет и так.
P.S. Но все равно спасибо за пинок в нужную сторону!
20 Defender aka LINN
 
28.11.14
16:29
(19) Та я вижу, как он работает...