Имя: Пароль:
1C
 
вопрос по платформе 8.3
0 ДобрыйПутник
 
22.04.26
16:25
Дорогие форумчане подскажите, если есть реквизит на форме и при нажатии кнопки мне нужно сохранить его старое значение и новое как мне это сделать?
1 Мультук
 
гуру
22.04.26
16:28
(0)

Старое это вчерашние или сегодняшнее, но до обеда ?
2 ДобрыйПутник
 
22.04.26
16:28
до нажатия на кнопку (1)
3 ДобрыйПутник
 
22.04.26
16:28
Типо мы могли много раз его изменять, но отследить надо при нажатии на кнопку и записать его и которое ему предшествовало
4 Мультук
 
гуру
22.04.26
16:40
(3)

Если реквизит на форме

а) Нужно определиться куда вы будете сохранять историю значений реквизита
(например в таблицу значений)
б) открыть конфигуратор, посмотреть на события реквизита на форме, выбрать нужно событие для сохранения НОВОГО значения


Далее пишем немного кода и вуаля.
5 H A D G E H O G s
 
22.04.26
16:40
Добрый путник войди
В славный город Багдад...

Прости, не удержался. Весна - время отъезжать кукухой.
6 ДобрыйПутник
 
22.04.26
16:43
(4) Ну допустим я в тз буду записывать все изменения и по кнопке буду искать по значению которое сейчас какое было предыдущее, я тоже об этом подумал
Но тогда я сталкиваюсь с тем что если изменяли реквизит много раз то я по этому значению буду находить не то которое до него было а которое было давно

К примеру было значение 13, изменили на 10
Тут много изменений
Опять изменили с 13 на 10

Нажали кнопку
И как я тогда по значению 13 найду 10 если записи то уже 2
7 ДобрыйПутник
 
22.04.26
16:45
Типо брать последнее из найденных? Я думал чет попроще все же  можно придумать
8 Мультук
 
гуру
22.04.26
16:47
(6)

16:44:01 10
16:44:01 21
16:45:01 18
16:45:07 16
16:45:27 10

Вот тут пользователь за 1,5 мин поменял значение кучу раз
И снова вернулся к значению 10
Зачем тут что-то искать ?
9 Мультук
 
гуру
22.04.26
16:47
(7)

Проще:

Завести вместо таблицыЗначений переменную ПредыдущееЗначениеРеквизита
10 ДобрыйПутник
 
22.04.26
17:00
(9) вот это тоже была идея, но я не понял как мне его задавать, при изменении если задавать то он всегда будет равен просто тому реквизиту
11 ДобрыйПутник
 
22.04.26
17:39
помогите)
12 ДобрыйПутник
 
22.04.26
17:41
(10) так то старая цена сработает если это реквизит объекта и он постоянно пишется а реквизит то просто на форме
13 ass1c
 
22.04.26
17:44
Два реквизита формы: ТекЗначение, СтароеЗначение. При открытии запоминаешь свой реквизит в ТекЗначение. Потом при изменении - СтароеЗначение = ТекЗначение, а ТекЗначение = ТвойРеквизит. И так до бесконечности...
14 ДобрыйПутник
 
22.04.26
18:08
(13) спс, чето это решение даже голову ломает)
15 ass1c
 
22.04.26
20:45
(14) + простые вещи. Практикуйся больше и такие решения на автомате будут приходить.
16 Garykom
 
гуру
23.04.26
00:11
(13) Насоветуют же хрени

Если реквизит объекта (элемента справочника, документа и т.д.) то старое значение или записано в базе
Или его тупо нет, если объект еще не записан (новый)

Поэтому вплоть до момента записи у тебя и так есть два значения
Одно (старое) получаешь запросом (из базы), второе (новое) с формы/объекта что ввели/изменили
Что с ними делать твое дело, подозреваю писать в некий лог для истории изменений
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой