Имя: Пароль:
1C
1С v8
Где правильнее хранить временное значение при работе с формой документа
,
0 Scorp1985
 
02.08.13
14:25
Всем приятного времени суток!

При открытии документа мне необходимо сохранить до конца работы с ним значение его реквизита. Т.е. значение, которому реквизит был равен при открытии, а в процессе работы его могли менять. Где правильнее его хранить и в какой момент записывать туда?
1 hhhh
 
02.08.13
14:35
Ссылка.<Имя реквизита>
2 vde69
 
модератор
02.08.13
14:39
Объект.ДополнительныеДанные.СтарыеРеквизиты
3 Serg_1960
 
02.08.13
14:39
(1) Если документ не новый, иначе логика может(должна) быть другой.
4 wladimir90
 
02.08.13
14:41
(0) Все просто - можно в форме обозначить переменную формы, например структуру, и туда скопировать пары имя реквизита - значение реквизита. При закрытии/сохранении сверять текущие данные со старыми. А записывать в эту переменную однозначно при открытии.
5 Crush
 
02.08.13
14:41
(1) +1
А проверяй в процедуре перед записью. Там:
Объект.Рекв1 = "Новое значение"
Ссылка.Рекв1 = "Исходное значение"

В ПриЗаписи данные ссылки будут равны данным объекта
6 wladimir90
 
02.08.13
14:52
(5) Если имеется ввиду реквизит объекта, вполне. А если реквизит формы, который заполняется при открытии (ну там, из регистра допустим подтягивается)? ТЗ более универсальна.
7 Scorp1985
 
02.08.13
14:56
(1) (5) Я правильно понял. что хранить ничего не надо, оно итак есть?
Если да, то при попытке вернуть исходное значение реквизиту путём

Объект.Рекв1= Ссылка.Рекв1;

получаю:

{Документ.Накладная.Форма.ФормаДокумента.Форма(79,20)}: Переменная не определена (Ссылка)
        Объект.Рекв = <<?>>Ссылка.Рекв1; (Проверка: Тонкий клиент)
8 wladimir90
 
02.08.13
15:00
Вместо ссылка ТекущийОбъект, ТекущийДокумент попробуй
9 vde69
 
модератор
02.08.13
15:04
советчики блин... а если ссылки нет?

или например сработало автозаполнение или как работать с реквизитом ПоследнийКтоЗаписывалДокумент
10 vde69
 
модератор
02.08.13
15:04
(7) реквизиты через ссылку доступны только на сервере
11 Serg_1960
 
02.08.13
15:27
(7) Это хорошо что сообщил о тонком клиенте - все предыдущие посты теперь можно проигнорировать :)
12 wladimir90
 
02.08.13
15:32
(11) Позвольте, почему же мой вариант нельзя использовать в управляемых формах? Переменная формы вполне доступна из клиента, туда же можно записать все данные на начало работы.
Может конечно, я и не прав, давно не работал с ним.
13 Scorp1985
 
03.08.13
14:07
И всё же, хотелось бы получить конкретный пример...
14 Scorp1985
 
05.08.13
06:41
ап :(
15 Defender aka LINN
 
05.08.13
07:49
(7) Для таких вещей есть специально обученное событие
16 Scorp1985
 
05.08.13
08:03
(15) Нельзя ли поподробнее, что за событие?
17 Defender aka LINN
 
05.08.13
08:06
(16) А логику включить, не?
Намекаю: оно перед записью и оно на сервере
18 Scorp1985
 
05.08.13
08:45
(17) Где оно я понял) осталось понять что за событие)))
19 m-serg74
 
05.08.13
09:08
(18) перечитай (17) раз 20 )))
20 Scorp1985
 
05.08.13
09:12
(19) Сделал))) дальнейшие инструкции какие?)
21 m-serg74
 
05.08.13
09:26
[Намекаю: оно перед записью и оно на сервере] разбей на две части до и после буквы "И" и читай еще раз 20 первую часть
22 Scorp1985
 
06.08.13
12:13
(17) (21) Кажется начал понимать о чём вы, но смысл в том, что данное значение мне необходимо использовать при изменении реквизитов документа на форме. Ну, например, есть сумма документа, а мне надо в отдельное поле выводить разницу между суммой до открытия документа  и текущей суммой.
23 Defender aka LINN
 
06.08.13
14:04
(22) Заведи реквизит формы и не тилипи нам моск тогда
24 Жан Пердежон
 
06.08.13
14:18
(22) "выводить разницу" -> реквизит формы
25 Scorp1985
 
06.08.13
22:04
(23) (24) Спасибо, так и сделал =)