Доброго всем времени суток. Иногда (может и частенько) возникает потребность в автосохранении документа. Бывают ситуации, когда набили кучу инфы в документ и бац... вырубили электричество, а у вас нет ИБП (источник бесперебойного питания). И вот начинается ВЕЛИКИЙ и МОГУЧИЙ РУССКИЙ ЯЗЫК! Возможны конечно другие, прочие потребности в автосохранении, но это уже у каждого свое. Итак,... приступим.
Мне была поставлена задача написать автосохранение документа на 1С 7.7 (Сельхозка). Имеется документ: Продажа товаров в розницу, его мы и будем автосохранять. (принцип одинаков, практически для всех конфиг на 7.7, возможны некоторые отличия, но не значительные).
Все выполняется в форме документа. Код изменненного документа:
//Общая переменная
Перем НадоЗаписать;
//Изменения в предопределенную процедуру, для сохранения
Процедура ПриЗакрытии()
Если НадоЗаписать=1 Тогда
Записать();
СтатусВозврата(0);
ОчиститьОкноСообщений();
Сообщить("Документ Автосохранен "+ТекущееВремя());
Возврат;
ИначеЕсли
НадоЗаписать=0 Тогда
ОчиститьОкноСообщений();
глОткрытьЖурнал(Контекст, Новый);
КонецЕсли;
КонецПроцедуры // ПриЗакрытии()
// Для корректного закрытия документа
Процедура ЗакрытьДокумент()
НадоЗаписать=0;
Форма.Закрыть(1);
КонецПроцедуры
//Процедура проверки на модификацию
Процедура АвтоЗапись()
Если (Модифицированность()=1) Тогда
НадоЗаписать=1;
Форма.Закрыть(0);
Иначе НадоЗаписать=0;
КонецЕсли;
Конец
Процедуры
//Вызов процедуры, через определнный интервал времени
Форма.ОбработкаОжидания("АвтоЗапись",180); //время в секундах 180 секунд
Повторюсь, в других конфигурациях аналогичные действия, может за исключением нескольких ньюансов, если таковые имеются!