Восстановление строки при отмене изменений
Разработка - Работа с интерфейсом
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Начиная с версии 8.2 в функциональности управляемых форм есть недоработка, связанная с частичной отменой изменений строки. Проявляется она следующий образом - если войти в режим редактирования существующей строки, изменить одно поле, перейти к следующему и отменить редактирование, то обработчики событий ПередОкончаниемРедактирования и ПриОкончанииРедактирования получат информацию о редактировании строки, при этом все реквизиты кроме редактируемого будут содержать новые значения. Это поведение не позволяет корректно сделать проверки в указанных обработчиках.
Разработка решает эту проблему сохранением данных редактируемой строки и их восстановлением при отмене изменений. В результате назначенные обработчики будут вызваны только если не происходила отмена редактирования, иначе изменения строки будут восстановлены.
Разработка может использоваться как расширением, так и встраиванием в конфигурацию. Помимо добавления общего модуля ВосстановлениеСтрокиПриОтменеИзменений в модуль каждой формы, для которой необходимо включить данную возможность необходимо добавить следующий код:
#Область ВосстановлениеСтрокиПриОтменеИзменений
&НаКлиенте
Перем ВосстановлениеСтрокиПриОтменеИзменений_СтруктураТекущиеЗначения Экспорт;
&НаКлиенте
Процедура ВосстановлениеСтрокиПриОтменеИзменений_ПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
ВосстановлениеСтрокиПриОтменеИзменений.ПриНачалеРедактирования(ЭтаФорма, Элемент, НоваяСтрока, Копирование);
КонецПроцедуры
&НаКлиенте
Процедура ВосстановлениеСтрокиПриОтменеИзменений_ПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
ВосстановлениеСтрокиПриОтменеИзменений.ПередОкончаниемРедактирования(ЭтаФорма, Элемент, НоваяСтрока, ОтменаРедактирования, Отказ);
КонецПроцедуры
&НаСервере
Процедура ВосстановлениеСтрокиПриОтменеИзменений_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ВосстановлениеСтрокиПриОтменеИзменений.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ВосстановлениеСтрокиПриОтменеИзменений_ВыполнитьДействиеНаКлиенте(ТекстВыполнить, Параметры = Неопределено) Экспорт
Выполнить(ТекстВыполнить);
КонецПроцедуры
&НаСервере
Процедура ВосстановлениеСтрокиПриОтменеИзменений_ВыполнитьДействиеНаСервере(ТекстВыполнить, Параметры = Неопределено) Экспорт
Выполнить(ТекстВыполнить);
КонецПроцедуры
#КонецОбласти
#Если Сервер Тогда
ВосстановлениеСтрокиПриОтменеИзменений.Инициализировать(ЭтаФорма);
#КонецЕсли
Работает на платформе 1С предприятие 8.3.16 и выше.
Для Платформы 8.3.24 и выше отдельно доступна обработка для генерации расширения, которое будет содержать необходимую функциональность для каждой описанной формы. По умолчанию данная возможность активируется для всех форм конфигурации, при этом есть возможность изменить область ее применения. Работа с обработкой описана в публикации Генератор расширения формы
Вступайте в нашу телеграмм-группу Инфостарт