Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выполнение ПриОткрытии не открывая формы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
alik-ZmeY
Подскажите как можно не открывая формы запустить процедуру которая висит на событие ПриОткрытии?? Или как можно открыть и быстренько закрыть форму что бы пользователь не видел ее?? 1с 8.2
alex040269
Процедура ПередОткрытием (Отказ)
Отказ = Истина
КонецПроцедуры
logist
Цитата(alik-ZmeY @ 25.03.14, 15:01) необходимо зарегистрироваться для просмотра ссылки
Или как можно открыть и быстренько закрыть форму что бы пользователь не видел ее??

Форма = ПолучитьКукауютоФорму;
Форма.Открыть();
Форма.Закрыть();

Но тут главное, что бы при открытии не возникала модифицированность. А вообще, я думаю ваша цель не это, скорее всего, то, что вы хотите можно реализовать прямым способом, а не через ж....
pablo
Цитата
Подскажите как можно не открывая формы запустить процедуру которая висит на событие ПриОткрытии??

Форма = ПолучитьКукауютоФорму;
Форма.КакаятоПроцедураПриОткрытии(неопределено);//эта процедура должна быть описана с модификатором экспорт
alik-ZmeY
Цитата(logist @ 25.03.14, 16:04) необходимо зарегистрироваться для просмотра ссылки
Но тут главное, что бы при открытии не возникала модифицированность. А вообще, я думаю ваша цель не это, скорее всего, то, что вы хотите можно реализовать прямым способом, а не через ж....


Совершенно верно. Пишу обработку для заполнения платежных документов. Из текстового файла передаю форме Платежного поручения данные. Форма имеет свои процедуры и функции. которые активируются при вводе вручную.
Так вот при передачи через создатьдокумент(), процедуры которые выполняются при событии по нажатию кнопки не выполняются, и что бы их не переписывать я получаю форму, на форме получаю элементы этой формы и передаю значения. Но нада еще выполнить приОткрытии формы, эта процедура меняет значения документа. Как это сделать??
logist
По правильному необходимо программно заполнить документ без открытия форм, и сложности в этом никакой нет, вы выбираете более сложный вариант - заполнение формы, потом необходимо произвести запись из формы, вдруг возникнут ошибки, то пользователь получит открытую форму не созданного/записанного документа. Учитесь программно заполнять документы, это проще чем кажется.
alik-ZmeY
А процедуры которые выполняются по событию элемента нужно тогда переписывать в обработке?? Это же очень много чего надо переписать в обработку sad.gif
logist
Цитата(alik-ZmeY @ 26.03.14, 8:42) необходимо зарегистрироваться для просмотра ссылки
Это же очень много чего надо переписать в обработку

Нужно не переписывать события из формы, а писать сразу код который запишет в документ нужные данные, чаще это в половину меньше кода чем тот который вызывается при событиях.
alik-ZmeY
Типа вот так

ТекДанные=ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные;
ППИсходящий=Документы.ПлатежноеПоручениеИсходящее.СоздатьДокумент();    
ППИсходящий.Номер=ТекДанные.НомерПП;
ППИсходящий.Дата=Дата("20"+ТекДанные.ДатаПП);
ВидыОперацийППИсходящее=Перечисления.ВидыОперацийППИсходящее;
ППИсходящий.ВидОперации=ВидыОперацийППИсходящее.ОплатаПоставщику;



или так
ФормаППИсходящего=ППИсходящий.ПолучитьФорму();
ФормаППИсходящего.ЭлементыФормы.СчетОрганизации.Значение=Справочники.БанковскиеСчета.НайтиПоРеквизиту("НомерСчета",ТекДанные.СчетПлательщика);
ФормаППИсходящего.ЭлементыФормы.СуммаДокумента.Значение=Число(ТекДанные.СуммаПП); //сумма документа
ППИсходящий.Записать(РежимЗаписиДокумента.Запись);


Какой из этих вариантов лучше?? Я так понимаю что при втором варианте выполняются события элемента при изменении?? или я не прав?
sava1
Цитата(alik-ZmeY @ 27.03.14, 7:37) необходимо зарегистрироваться для просмотра ссылки
или я не прав?

Собітия выполняются при ИНТЕРАКТИВНОМ изменении.
logist
Цитата(alik-ZmeY @ 27.03.14, 7:37) необходимо зарегистрироваться для просмотра ссылки
Какой из этих вариантов лучше??

Первый, он не лучше, а правильный. Не надо работать с формой, надо работать сразу с объектом.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.