Имя: Пароль:
1C
 
Как отследить закрытие формы?
Ø
0 DalaiLama
 
07.10.06
09:43
В функции ОткрытьФорму(Параметр1,КонтекстФормы,Параметр3..) есть параметр КонтекстФормы, который равен -100, если форма открыта. Можно ли отловить момент, когда форма закроется и параметр станет равным 0?
1 Sasha
 
07.10.06
09:55
Вообще-то, выполнение процедуры дойдет до своего логического конца после открытия формы )
Что надо-то объясни подробнее что-ли )
2 DalaiLama
 
07.10.06
10:06
Элементы справочника А, показывают в ТЗ значения, которые извлекаются из элементов справочника Б.
На форма элемента справочника А есть кнопка, которая создаёт документ. В данном документе вводятся значения, и при записи документа значения реквизитов помещаются в элементы справочника Б.
Таким образом, поле закрытия документа необходимо обновить ТЗ, элемента, из которого вызвано создание документа(т.к. данные в ТЗ уже не актуальны).
Создание документа делаю пока через ОткрытьФормуМодально(...)..
в этом случае могу отследить момент закрытия формы документа и обновить ТЗ.. Но модально меня не устраивает, т.к. нужно печатать бланки из документа, а они оказываются под формой документа.
3 Sasha
 
07.10.06
10:13
Попробуй через глобальную переменную, а на форме повесь невидимую функцию, которая будет отслеживать изменение это переменной и при необходимости обновлять таблицу
4 DalaiLama
 
07.10.06
10:20
По по какому событию впринципе активизируется функция, отслеживающая значение константы?
не крутить же цикл по проверка константы...
5 Мимохожий Однако
 
07.10.06
10:22
(2)Метод ОткрытьФормуМодально(...).. заменить на
 Док =СоздатьОбъект("Документ...")
Док. Новый();
...
Док. Записать()
А после вновь считать записи справочника Б
и не нужны дополнительные глобальные переменные
6 DalaiLama
 
07.10.06
10:32
(5) ссори.. забыл сказать... в документ данные вносит пользователь. т.е. необходимо открыть форму документа для ввода данных.
Процедура Новый() к сожалению не открывает форму документа.
7 Sasha
 
07.10.06
10:38
(4)если функция висит на форме в невидимом текстовом реквизите, то она выполняется каждый раз при обновлении формы.
Можешь также вместо этого сделать в форме списка справочника обработку ожидание:
Форма.ОбработкаОжидания("ПроверитьИОБновитьТаблицу",5);
8 Мимохожий Однако
 
07.10.06
10:41
(6)Для создания документа можно создать обработку с необходимыми реквизитами, а при закрытии формы (и создания документа) вызывать форму с таблицей значений из справочника Б
9 DalaiLama
 
07.10.06
10:52
(7) на сколько я знаю, обновление происходит когда изменяется реквизит на форме или пользователем нажимается закладка к примеру...
во всяком случае когда я пытался реализовать подобным образом, у меня возникала такая ситуация.. пробовал неделю назад ;(
(8) "а при закрытии формы (и создания документа) вызывать форму с таблицей значений из справочника Б"
собственно какая разница отследить закрытие формы обработки или закрытие формы документа.. в этом то и состоит проблема.. если Вы объясните как "вызывать форму с таблицей значений из справочника Б" по закрытии формы обработки, буду премного благодарен.
10 AlexNew
 
07.10.06
10:59
А сразу на печать?
11 DalaiLama
 
07.10.06
11:07
(10) Что сразу на печать?
Если имеется ввиду бланки документа, то они модифицируюся в зависимости от вводимых пользователем данных.. ну и в общем-то надо чтобы именно из документа.. такова постановка..
12 Мимохожий Однако
 
07.10.06
11:08
(9)
//в форме обработки
ПриЗакрытии()
ОткрытьФорму("Справочник._А",Параметры)
13 DalaiLama
 
07.10.06
11:13
(12)если всё же отойти от обработки, а работать сразу с документом получаем:
в момент создания документа закрывать форму элемента справочника А и открывать форму документ.. пользователь вводит всё что хочет, нажимает Закрыть и в момент закрытия формы документа открывается форма элемента справочника А с актуальными данными...
не совсем так как хочется, но возможно придётся сделать так.. если не будет других идей....
дайте пожалуйста ещё идей!! :)
14 pit
 
07.10.06
11:36
Нравятся мне одноЭсники тем, что с упорством маньяков и от великой грамотности изобретают трехпедальные велосипеды с семиугольными колесами и долбят бетонные столбы...
.
P.S. наверное, вера не позволяет в форме2 снова открыть форму1 с передачей параметров...
15 2Green
 
07.10.06
12:06
 по нажатию кнопки "Ввести док" ввода документа делать ТЗ невидимой(надпись какую-нить выводить на её месте), заголовок кнопки менять на "Показать ТЗ" и понажатии на неё переформировывать ТЗ.
16 Stive
 
07.10.06
12:21
Можно при закрытии документа через принятый контекст справочника А обновить форму этого справочника, и таким образом сработает та самая навешенная на этот справочник невидимая формула
17 DalaiLama
 
07.10.06
14:50
(16) большое спасибо. наверно так и сделаю.
(14) наверно я что-то упустил...
если у меня открыта форма1, из неё я открываю форму2.. пользователь что-то делает.. при закрытии формы2, вызывать открытие формы1(надеюсь я правильно понял)... но если форма1 уже открыта, то я никак не могу отследить этот момент.. процедура ПриОткрытии() в форме1 не срабатывает..
т.е. либо надо закрывать форму1 в момент открытия формы2 либо...?
18 2Green
 
07.10.06
15:16
//там можно обновление вставить и никакой скрытой функции
Процедура ПриПовторномОткрытии()
КонецПроцедуры
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший