|
Как в процедуре док ПриЗаписи узнать что она вызвана при закрытой форме? | ☑ | ||
---|---|---|---|---|
0
SerGa
10.10.12
✎
13:19
|
т.е. нужно при записи почистить некоторые реквизиты документа в случае запись вызвана не из фомы..
|
|||
1
zak555
10.10.12
✎
13:20
|
это какие реквизиты нужно почистить и зачем ?
|
|||
2
5 Элемент
10.10.12
✎
13:21
|
Никак
|
|||
3
Fragster
гуру
10.10.12
✎
13:22
|
алгоритм при программном и интерактивном действии не должен отличаться.
|
|||
4
1Страх
10.10.12
✎
13:22
|
в событии ПередЗаписью формы заполни какое-нибудь доп свойство и анализируй его
но подход неверный, имхо |
|||
5
Fragster
гуру
10.10.12
✎
13:22
|
а вообще - в форме устанавливать в ДополнительныеСвойства что-нибудь, а в ПриЗаписи - анализировать.
|
|||
6
SerGa
10.10.12
✎
13:22
|
(1) это не суть важно... априори считаем это необходимым...
|
|||
7
Нуф-Нуф
10.10.12
✎
13:22
|
в процедуре перед записью модуля формы добавлять дополнительно свойство. и по его наличию в модуле объекта определять откуда вызвана запись
|
|||
8
Fragster
гуру
10.10.12
✎
13:22
|
только менять надо ПередЗаписью, а не ПриЗаписи
|
|||
9
Фрэнки
10.10.12
✎
13:23
|
я в таких случаях ПриОткрытии формы добавляю дополнительное свойство объекту.
ПриЗаписи или ПередЗаписью в модуле объекта смотрю было установлено дополнительное свойство или нет. |
|||
10
1Страх
10.10.12
✎
13:23
|
(7) ты опоздун, смотри (4)
|
|||
11
zak555
10.10.12
✎
13:23
|
(6) херня а не "априори"
объект он и в африке объект и ему пофигу откуда его пишут --- прграммно или интерективно |
|||
12
SerGa
10.10.12
✎
13:24
|
Всем спасибо. путь ясен...!!
|
|||
13
Фрэнки
10.10.12
✎
13:25
|
(10) в чем неверность такого подхода, если другого применения для ДополнительноеСвойство нету
|
|||
14
1Страх
10.10.12
✎
13:25
|
(13) см (3)
|
|||
15
olegves
10.10.12
✎
13:27
|
(0) при записи из формы передавай свой параметр записи, а в модуле объекта проверяй этот свой параметр. Если параметра нет, значит запись не из формы
|
|||
16
Classic
10.10.12
✎
13:32
|
(3)
Зачем тогда ОбменДанными.Загрузка ? |
|||
17
Рэйв
10.10.12
✎
13:33
|
(0)Сделай экспортную переменную модуля объекта и ставь ее в истина в ПриЗаписи в форме.
Но лучше бы ты прислушался к (3) |
|||
18
Fragster
гуру
10.10.12
✎
13:34
|
(13) применение - передача данных по цепочке событий.
|
|||
19
pumbaEO
10.10.12
✎
13:35
|
УФ ?
|
|||
20
Fragster
гуру
10.10.12
✎
13:35
|
(16) алгоритм в таком случае выполнился в другом узле РИБ (по хорошему). а "мальчики, которые могут поменять задним числом без проверок" - это неправильно.
|
|||
21
SerGa
10.10.12
✎
13:38
|
(15) Как передавать параметр?
(17) а ведь точно.... самый простой вариант. к мнению (3) прислушался, там особый случай на логику записи движений никак не влияет... |
|||
22
Aprobator
10.10.12
✎
13:38
|
(0) экспортная переменную модуля объекта. В модуле формы в событии ПриЗаписи ставишь ей какое нибудь значение. Ну и в модуле объекта ПриЗаписи выполняешь анализ ее значения.
|
|||
23
Classic
10.10.12
✎
13:39
|
(20)
Не факт, что такой же алгоритм, как при интерактивном проведении. |
|||
24
Fragster
гуру
10.10.12
✎
13:40
|
(23)->(3). ОбменДанными.Загрузка сделан для того, чтобы повторно не взывать все алгоритмы проверок, формирования движений и т.д.
|
|||
25
Фрэнки
10.10.12
✎
13:51
|
(21) (22) Ну и в чем прописанная в тексте модуля объекта экспортная переменная отличается от прописывания в модуле формы добавления элемента в структуру ДополнительныеСвойства ?
|
|||
26
SerGa
10.10.12
✎
13:54
|
(25) по большому счету не чем наверно в данном случае.. на мой взгляд чуть проще и прозрачней код...
|
|||
27
Aprobator
10.10.12
✎
13:54
|
(25) дело вкуса. Право на жизнь имеет и то и то. Просто экспортная переменная - первое что пришло в голову. Такая задача ни разу не возникала.
|
|||
28
hhhh
10.10.12
✎
13:56
|
(14) у меня задача была: выгрузка оплат в эксель. Как раз надо выгружать только измененные интерактивно. А если главбух запустила групповое перепроведение за год, то выгружать документы не надо.
|
|||
29
pumbaEO
10.10.12
✎
13:57
|
(27) На УФ не сильно прокатит.
|
|||
30
Aprobator
10.10.12
✎
13:57
|
интерактивные проверки должны вызываться из событий формы, только и всего.
|
|||
31
Aprobator
10.10.12
✎
13:58
|
(29) экспортные переменные в модуле объекта запрещены?
|
|||
32
ssh2006
10.10.12
✎
14:00
|
На УФ с доп свойствами может не сработать
|
|||
33
Aprobator
10.10.12
✎
14:02
|
(32) почему? ДополнительныеСвойства - свойство объекта. Правда писать в него можно только на стороне сервера.
|
|||
34
ssh2006
10.10.12
✎
14:08
|
Как-то пробовал из обработки заполнения в модуле объекта поместить в доп свойства значение, а в при создании формы на сервере считать их. Разные объекты получались, исходный объект со своими доп свойствами уже не был жив. Могу ошибаться, но кажется так было.
|
|||
35
Aprobator
10.10.12
✎
14:13
|
скорей всего не с того объекта форму получал.
|
|||
36
Лефмихалыч
10.10.12
✎
14:13
|
(0) с некоторыми оговорками и ограничениями может подойти вот эта метода:
Но проще и правильнее перестать хотеть так делать: различное поведение при открытой форме и закрытой - это быдлокодинг в чистом виде |
|||
37
ssh2006
10.10.12
✎
14:19
|
Q: "Можно ли изменить ДополнительныеСвойства у документа из управляемой формы в режиме тонкого клиента, а затем поймать в обработчике события ПриЗаписи() объекта "документ"?"
A: "Теоретически можно, но практического смысла в этом мало. На клиенте нет объектов. Поэтому чтобы изменить свойство ДополнительныеСвойства вам нужно пойти на сервер, там реквизит формы преобразовать в объект и тогда уже менять его свойство ДополнительныеСвойства. Воспользоваться тем, что вы изменили, можно будет только в этом же серверном вызове и до тех пор, пока жив ваш программный объект. Т.е. где-то тут рядом вам нужно будет его записывать. Если же вы поменятете таким образом ДополнительныеСвойства и решите обратно преобразовать объект в данные формы и вернуться на клиента, то ваши изменения пропадут, т.к. форма "не запоминает" это свойство программного объекта." http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=563290 |
|||
38
Aprobator
10.10.12
✎
14:39
|
(37) пасиб - буду знать теперь.
|
|||
39
olegves
10.10.12
✎
17:32
|
(21) в процедуре ПередЗаписьюНаСервере
ПараметрыЗаписи - это структура, куда можно вставлять свои параметры |
|||
40
Mort
10.10.12
✎
17:49
|
(37) Не верю что Радченко ТАК ответил...
В параметрах процедур передЗаписьюнаСервере и ПриЗаписиНаСервере есть ТекущийОбъект. Это и есть тот самый записываемый объект, которому можно назначить доп. свойства. |
|||
41
ssh2006
10.10.12
✎
18:25
|
(40) Да вроде устанавливать доп свойства в передЗаписьюнаСервере, чтобы потом их получить в ПередЗаписьюОбъекта - это как раз в этой схеме: [Воспользоваться тем, что вы изменили, можно будет только в этом же серверном вызове и до тех пор, пока жив ваш программный объект.].
|
|||
42
Mort
10.10.12
✎
18:28
|
(41) В той, только имелось в виду другое: "Т.е. где-то тут рядом вам нужно будет его записывать"
|
|||
43
ssh2006
10.10.12
✎
18:30
|
(42) ну без записи же не обойтись...
|
|||
44
Mort
10.10.12
✎
18:36
|
(43) С чего бы?
Процедура ПередЗаписьюНаСервере(...) ТекущийОбъект.ДополнительныеСвойства.Вставить("Ж*ПА"); // Ловим в модуле объекта КонецПроцедуры; |
|||
45
Aprobator
10.10.12
✎
18:46
|
запись то тут не при чем. Имелось ввиду, что если после изменения допсвойств объекта будет использован метод ЗначениеВДанныеФормы, то допсвойства сотрутся. Проверять, имхо, надо.
|
|||
46
ssh2006
10.10.12
✎
18:48
|
(44) да, тут вопросов нет.
Сбегать на сервер, поменять доп свойства и продолжить дальше смотреть на форму, с тем, чтобы позже нажав кнопку записать отловить их в ПриЗаписи не получится. Я так это понимаю. Чтобы эти доп свойства попали в ПриЗаписи объекта, нужно, чтобы они устанавливались в том же серверном вызове, что и сама процедура ПриЗаписи. Установка в ПередЗаписьюНаСервере как раз это решает. Но для вызова этой процедуры нужно вызвать запись. Т.е. можно установить доп св-ва и следом Записать() или устанавливать их уже ПередЗаписьюНаСервере. Противоречий не вижу. (45) как раз причем. Чтобы эти доп свойства попали в ПриЗаписи объекта, нужно, чтобы они устанавливались в том же серверном вызове, что и сама процедура ПриЗаписи - я так понимаю. |
|||
47
Aprobator
10.10.12
✎
18:50
|
(46) проверяй (44) и все увидишь сам. Объект один, но измененный. И не за что не поверю, что модуль объекта видит другой объект без изменений сделанных в модуле формы.
|
|||
48
ssh2006
10.10.12
✎
18:53
|
(47) что проверять-то, я написал [да, тут вопросов нет.]. Это и в СП написано
|
|||
49
Фрэнки
11.10.12
✎
09:36
|
Можно подвести резюме по всему обсуждению:
- при использовании "толстых форм из толстого клиента" - допсвойства или экспортные переменные модуля объекта дают возможность увидеть, что открытой формы нет. - при использовании управляемых форм прежнее дефолтное использование экспортной переменной или дополнительного свойства слишком затруднительно и уже практически теряет всякий смысл, поскольку события для объектов в УФ расширены и содержат ПараметрыЗаписи в виде структуры, куда вставляются дополнительные непосредственно в коде для инициации записи объекта. Т.е. все отличия в ПараметрыЗаписи, которых в режиме совместимости с версией 8.1 просто нет. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |