При открытии или повторном чтении объекта состояние формы фиксируется, и после этого начинается запись каждого нового состояния после изменений. Учитываются изменения сохраняемых реквизитов, а также результат вызова подчиненных форм открываемых по кнопкам и гиперссылкам.
Записываются все реквизиты формы, в том числе добавленные в табличную часть объекта.
Разработка может использоваться как расширением, так и встраиванием в конфигурацию. Помимо добавления общего модуля ОтменаВозвратИзменений в модуль каждой формы, для которой необходимо включить данную возможность необходимо добавить следующий код:
#Область ОтменаВозвратИзменений
&НаКлиенте
Процедура ОтменаВозвратИзменений_ПриИзменении(Элемент)
ОтменаВозвратИзменений.ПриИзменении(ЭтаФорма, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ОтменаВозвратИзменений_Нажатие(Элемент, СтандартнаяОбработка)
ОтменаВозвратИзменений.Нажатие(ЭтаФорма, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ОтменаВозвратИзменений_ДействиеКоманды(ИмяКоманды)
ОтменаВозвратИзменений.ДействиеКоманды(ЭтаФорма, ИмяКоманды);
КонецПроцедуры
&НаКлиенте
Процедура ОтменаВозвратИзменений_ОбработчикОжидания()
ОтменаВозвратИзменений.ОбработчикОжидания(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ОтменаВозвратИзменений_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ОтменаВозвратИзменений.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
КонецПроцедуры
&НаСервере
Процедура ОтменаВозвратИзменений_ПриЧтенииНаСервере(ТекущийОбъект)
ОтменаВозвратИзменений.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура ОтменаВозвратИзменений_ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
ОтменаВозвратИзменений.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ОтменаВозвратИзменений_ВыполнитьДействиеНаКлиенте(ТекстВыполнить, Параметры = Неопределено) Экспорт
Выполнить(ТекстВыполнить);
КонецПроцедуры
&НаСервере
Процедура ОтменаВозвратИзменений_ВыполнитьДействиеНаСервере(ТекстВыполнить, Параметры = Неопределено) Экспорт
Выполнить(ТекстВыполнить);
КонецПроцедуры
#КонецОбласти
#Если Сервер Тогда
ОтменаВозвратИзменений.Инициализировать(ЭтаФорма, "ПриЧтенииСозданииНаСервере");
#КонецЕсли
В качестве второго параметра процедуры ОтменаВозвратИзменений.Инициализировать необходимо указать процедуру, которая будет вызываться после каждого применения изменений, чтобы были правильно настроены свойства элементов формы.
В файле с разработкой для примера добавлено расширение формы документа ЗаказКлиента конфигурации 1С:ERP
Работает на платформе 1С предприятие 8.3.16 и выше.
Вступайте в нашу телеграмм-группу Инфостарт