Имя: Пароль:
1C
1С v8
v8: Как программно нажать кнопку формы или выполнить интерактивное действие записать
0 ATverdikov
 
15.01.12
14:35
На интерактивное действие "записать" повешаны опред обработки в модуле формы. Создаю обработку по импорту данных. Нужно программно обратится к форме справочника конкретной номенклатуры и сэмулировать нажатие кнопки "Записать". Как можно сделать?
Получаю форму

Ном - ссылка на конкретную номенклатуру

Форма = Ном.ПолучитьОбъект().ПолучитьФорму("ФормаЭлемента");

А дальше?
1 Asmody
 
15.01.12
15:04
ЗаписатьВФорме()
3 asady
 
16.01.12
09:25
(0) самое простое
копируй эти процедуры из модуля формы номенклатуры в модуль формы своей обработки
и вызывай их при импорте данных

Будь проще.
4 ATverdikov
 
18.01.12
07:32
(3) Это далеко не проще! Более того обновил конфигурацию и опять изменяй свою доработку!
(1) Спасибо!
Сделал так:
Форма = Ном.ПолучитьОбъект().ПолучитьФорму("ФормаЭлемента");
Форма.Открыть();
Форма.ЗаписатьВФорме();
Форма.Закрыть();

все работает, а можно какнибудь сделать безвизуального открытия формы?
5 ATverdikov
 
19.01.12
07:45
?
6 Поpyчик-4
 
19.01.12
09:36
(4) Подход неверный. Перенеси свои "опред обработки в модуле формы" в модуль объекта.
7 1с-кин
 
19.01.12
09:57
(0) если вы засунули свои обработки в форму справочника на "Записать", и поэтому теперь нужно "эмулировать" это нажатие, чтобы выполнилось все - то (6) прав.
А если надо из какой-то другой формы обратится к Справочнику, создать там Элемент - то у него есть метод Записать.
Вообще, событие ПриЗаписи - для проверки и сопутствующих действий одновременно с Записью (идут в одной транзакции), но не для правки этого же объекта или вызова рекурсивных функций.