Имя: Пароль:
1C
 
Как определить что документ не сохранили?
0 break
 
02.02.15
10:33
при закрытии документа у пользователя система спрашивает "Сохранить изменения?", пользователь жмакает "нет". Если пользователь нажал "нет" надо выполнить определенное действие. Как отловить? Форма обычная.
1 ktvladimir
 
02.02.15
10:37
в процедуре ПриЗакрытии проверить на модифицированность
2 break
 
02.02.15
10:51
(1) естественно там будет истина, мне надо определить закрытие без сохранения
3 break
 
02.02.15
11:01
для нового документа не проблема, у нее нет ссылки
4 rinatru
 
02.02.15
11:05
а смысл отлавливать такие вещи? печать невозомжна в таком виде... проблемы не вижу
5 Defender aka LINN
 
02.02.15
11:08
(0) "Если пользователь нажал "нет" надо выполнить определенное действие" - если пользователь нажал "нет", то он решил не сохранять результат своих изменений. Для нахрена что-то там анализировать в этом случае?
6 ИС-2
 
naïve
02.02.15
11:11
(2) в событии ПриЗакрытии делай запись РС. В событии ПриЗаписи удаляй запись из РС для этого документа.
(5) Логичный вопрос, а за чем пользователь вносил изменения?
7 Бубка Гоп
 
02.02.15
11:17
(6) моделирую ситауцию: юзер сначала сохранил документ, в РС этой записи не нашлось и она не удалилась. После этого он закрывает док, и в РС появляется запись, что этот док якобы не сохраняли.
8 break
 
02.02.15
11:19
(6)додумался вот так

Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
    
    Версия = ВерсияДанных;
    
КонецПроцедуры


Процедура ПриЗакрытии()
    
    Если (ЭтоНовый() И Не ЗначениеЗаполнено(Ссылка)) Или (Версия = Ссылка.ВерсияДанных) Тогда

        Сообщить("не сохранили");
        
    КонецЕсли;
    
КонецПроцедуры

Пользователь загружает картинки, связанные с документом, (они сохранятся в другую базу), потом решает не сохранять док, в этом случае картинки удаляю / Понимаю что правильно сохранять все картинки призаписи, т.е. до этого наверное запоминать путь к картинке(а надежнее еще переместить во временную папку, и брать путь отуда)
9 Бубка Гоп
 
02.02.15
11:20
(8) возможность сохранить есть только при закрытии?
10 break
 
02.02.15
11:23
(8) эх..код срабатывает не во всех случаях
11 Бубка Гоп
 
02.02.15
11:26
(8) Понимаю что правильно сохранять все картинки призаписи...
Почему же именно так не сделать?
12 Defender aka LINN
 
02.02.15
11:27
(8) Класс. А потом он решает прикрепить картинку к документу 2-х летней давности...
13 break
 
02.02.15
11:31
(12)ну удаляются не все картинки, а те которые добавлялись

(11)переделаю все же на сохранение при записи

если кому надо определить закрытие без сохранения

Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
    Если Не ЗначениеЗаполнено(Версия) Тогда
        Версия = ВерсияДанных;
    КонецЕсли;
КонецПроцедуры

Процедура ПриЗакрытии()
    
    Если (ЭтоНовый() И Не ЗначениеЗаполнено(Ссылка)) Или (Версия = Ссылка.ВерсияДанных) Тогда

        Сообщить("не сохранили");
        
    КонецЕсли;
    
КонецПроцедуры

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    Версия = ВерсияДанных;
КонецПроцедуры
14 Бубка Гоп
 
02.02.15
11:34
(13) дык как же оно отработает если сначала вручную сохранить, а потом закрыть?
15 Defender aka LINN
 
02.02.15
11:44
(13) Да хрен с ним с удалением. Бухгалтера придут в экстаз, когда выяснится, что чтобы добавить картинку, какая-нибудь граница последовательности сдвигается в ХЗ куда.
Прикрепление картинок и запись документа - 2 никак не связанных события!
16 break
 
02.02.15
11:47
(14) все отрабатывает
(15) немного обманул с документом, используется справочник, самописная конфа, картинки эти чертежи
17 Fish
 
гуру
02.02.15
11:49
(16) Так посмотри, как это реализовано в типовых. Например, в том же документообороте.
18 break
 
02.02.15
12:06
(17)В документообороте создал внутренний документ, добавил файл, создался объект справочника Файлы, закрыл документ не сохраняя, объект справочника с файлом остался
19 kosts
 
02.02.15
12:10
Как вариант, если нельзя сохранить документ "до", то
так можно сделать:
записывая картинки ставим им где-то флаг "временный" (или сохраняем во временное место), при записи документа снимаем флаг или переносим в постоянное хранищище.