Имя: Пароль:
1C
1С v8
Как поймать ответ на вопрос "Данные были изменены. Сохранить изменения?"?
0 Birmingem
 
24.10.19
12:18
При закрытии формы элемента справочника появляется вопрос "Данные были изменены. Сохранить изменения?".
Как программно отследить, что пользователь нажал "Нет"? В каком модуле, в каком событии, по какому признаку?
1 Жан Пердежон
 
24.10.19
12:22
ПередЗакрытием()

СтандартнаяОбработка = Ложь;

Если Модифицированность тогда
  ПоказатьВопрос(ОповещениеГдеВсёОтследишь, "Данные были изменены. Сохранить изменения?")
КонецЕсли;
2 Birmingem
 
24.10.19
12:30
(1)Это понятно, что можно заменить на свой вопрос-ответ.
А сам штатный вопрос-ответ как-то отловить можно?
3 Андроны едут
 
24.10.19
12:53
(0) Если пользователь нажал Нет, логично предположить что событие Перед записью не сработает.
4 catena
 
24.10.19
12:58
(3)Сложно отлавливать событие, которое не срабатывает))
5 Fragster
 
гуру
24.10.19
12:58
т.е. получается - надо ловить Модифицироавнность ПередЗакрытием
6 Андроны едут
 
24.10.19
13:01
(4) элементарно, в обработчике ПередЗаписью должен быть заполнен какойто параметр, который затем анализируется дальше по цепочке событий
7 pechkin
 
24.10.19
13:13
А какова вся задача?
8 Birmingem
 
24.10.19
13:46
Задача такая.
В форме справочника пользователь выполняет какие то действия, в результате которых программно помечается на удаление элемент другого, подчиненного справочника. Тут все хорошо.
Но потом, пользователь передумал и отказывается сохранять свои изменения.
Соответственно, нужно вернуть взад пометку на удаление другого справочника...
И вот вопрос, как и где узнать что пользователь нажал "Не сохранять"?
9 Birmingem
 
24.10.19
14:27
Ответа на вопрос так и не нашел.
А свою задачу решил пересмотрев алгоритм. Пометку на удаление делаю после записи.
10 vova1122
 
24.10.19
14:29
(8) тут думаю лушше задачу поменять. Манипуляции с другим справочником делать в момент записи
11 Жан Пердежон
 
24.10.19
16:04
(9) ответ был дан в самом начале, но применительно к твоей задаче - в любом случае было б убого;
в твоем случае для поддержания целостности правильно делать всё в одной транзакции во время записи (а не после).