Автоматическое сохранение редактируемого документа
Если пользователь работает сразу в n-документах или набивает большую накладную, и обрывается связь с сервером или происходит обновление базы, то велика вероятность, что он (пользователь) будет не очень счастлив, когда поймёт, что теперь придётся делать всё заново.
- Описание
- Подробнее
Описание
Добавляем в текст модуля формы документа следующие строки:
&НаКлиенте
Перем ПоследнееСохранение;
// ...
&НаКлиенте
Процедура АвтосохранениеДокумента() Экспорт
Если ПоследнееСохранение = Неопределено Тогда
ПоследнееСохранение = ТекущаяДата();
ИначеЕсли Не Объект.Проведен И Модифицированность И ( Объект.Товары.Количество() Или Объект.ВозвратнаяТара.Количество() )
И ТекущаяДата() - ПоследнееСохранение >= 30
Тогда
ПоследнееСохранение = ТекущаяДата();
Попытка
Записать(Новый Структура("Автосохранение", Истина));
Исключение
Сообщить(ОписаниеОшибки());
ОтключитьОбработчикОжидания("АвтосохранениеДокумента");
КонецПопытки;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключитьОбработчикОжидания("АвтосохранениеДокумента", 1, Ложь);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если ПараметрыЗаписи.Свойство("Автосохранение") И ПараметрыЗаписи.Автосохранение Тогда
ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Запись;
КонецЕсли;
КонецПроцедуры
Если нужно не всем пользователям, можно добавить настройку в хранилище настроек пользователя. Благо сейчас (в 8.3) это сделать просто, используя встроенный объект платформы «ХранилищеНастроек».
Реализовывать этот механизм для всех документов конфигурации определённо не стоит, т.к. с ростом числа активных пользователей в системе растёт и количество запросов на обновление данных, что накладывает блокировку на записи таблиц, что обязательно приведёт к задержкам и, возможно, взаимоблокировкам. Подробнее об этом можно узнать в настольной книге 1С: Эксперта по технологическим вопросам.
Также этот метод без модификации кода не подойдёт для конфигураций, использующих механизм версионирования объектов.

