Открыть сервис

Отмена действий

Отмена действия — это прекращение выполнения или аннулирование результата уже совершённого действия, процесса или операции. В зависимости от контекста, отмена может быть физической (отмена нажатия кнопки), юридической (отмена судебного решения), технической (отмена транзакции) или социальной (отмена культурного события). В информатике и пользовательских интерфейсах отмена действия (англ. undo) — это функция, позволяющая вернуть систему к состоянию, предшествовавшему последнему изменению, путём обратного выполнения команды.

История

Концепция отмены действия существовала задолго до появления компьютеров. В юридической практике отмена (аннулирование) договоров, приказов и законов известна с античных времён. В Древнем Риме существовала процедура abrogatio — отмена закона народным собранием. В средневековой Европе короли и папы римские могли отменять свои указы через специальные грамоты.

С развитием техники и промышленности отмена стала применяться в механизмах: например, в ткацких станках с программным управлением Жаккарда (начало XIX века) существовала возможность остановить процесс и вернуть челнок в исходное положение. Однако настоящий прорыв произошёл в середине XX века с появлением компьютеров.

Развитие в вычислительной технике

Первые реализации функции отмены в компьютерных системах относятся к 1960-м годам. В текстовом редакторе RUNOFF (1964 год) для операционной системы CTSS была реализована команда «отменить последнее изменение» путём сохранения копии предыдущего состояния. В 1970-х годах в редакторе Bravo (Xerox PARC) появилась поддержка многоуровневой отмены (undo/redo) с использованием стека команд. В 1980-х годах компания Apple внедрила команду «Отменить» (Cmd+Z) в системное меню Mac OS, что стало стандартом де-факто. В 1990-х годах Microsoft Windows включила аналогичную функцию в свои приложения.

Виды и классификация

Отмена действия может быть классифицирована по нескольким основаниям.

По способу реализации

  • Линейная отмена — отмена последнего действия с возможностью последовательного возврата к предыдущим состояниям (например, в текстовом редакторе Notepad).
  • Многоуровневая отмена — возможность отменить несколько действий подряд, обычно с сохранением истории изменений (например, в Microsoft Word или Adobe Photoshop).
  • Неограниченная отмена — система хранит полную историю всех действий, позволяя отменить любое из них в любой момент (например, в системе контроля версий Git).
  • Отмена с повтором (redo) — после отмены можно вернуть отменённое действие обратно (например, Ctrl+Z и Ctrl+Y в Windows).

По области применения

  • Техническая отмена — отмена работы механизма, остановка процесса (например, аварийная остановка станка, отмена запуска ракеты).
  • Юридическая отмена — аннулирование правового акта, договора, решения суда (например, отмена приговора вышестоящей инстанцией).
  • Финансовая отмена — отмена банковской транзакции, платежа, заказа (например, отмена перевода в системе SWIFT).
  • Социальная отмена — отмена культурного, спортивного или политического мероприятия (например, отмена концерта из-за карантина).
  • Пользовательская отмена — отмена действия в программном обеспечении (например, отмена удаления файла в корзине).

Устройство и принцип работы

В компьютерных системах функция отмены обычно реализуется через стек команд (или историю изменений). Каждое действие пользователя записывается в виде объекта, содержащего информацию о типе изменения, затронутых данных и обратном преобразовании. При вызове отмены система извлекает последний объект из стека и выполняет обратное действие: восстанавливает предыдущее состояние данных.

Пример реализации в текстовом редакторе:

  • Пользователь вводит символ «А» — в стек добавляется запись: «добавлен символ 'А' в позицию 5».
  • При отмене система удаляет символ «А» из позиции 5.
  • Если пользователь повторяет отмену, система переходит к предыдущей записи в стеке.

В более сложных системах (например, в базах данных) отмена транзакций реализуется через журналирование — запись всех изменений в лог, что позволяет откатить базу данных к состоянию на определённый момент времени.

Применение

В программном обеспечении

Функция отмены является стандартной для большинства приложений:

  • Текстовые редакторы (Microsoft Word, LibreOffice Writer, Google Docs) — отмена ввода, форматирования, вставки.
  • Графические редакторы (Adobe Photoshop, GIMP) — отмена рисования, фильтров, слоёв.
  • Электронные таблицы (Microsoft Excel, Google Sheets) — отмена ввода данных, формул, диаграмм.
  • Системы управления версиями (Git, Mercurial) — отмена коммитов, слияний, изменений.
  • Операционные системы (Windows, macOS, Linux) — отмена удаления файлов, перемещения, переименования.

В промышленности и технике

  • Аварийная остановка оборудования (например, отмена запуска конвейера при обнаружении неисправности).
  • Отмена выполнения программы в станках с ЧПУ (числовым программным управлением).
  • Отмена подачи топлива в двигателях внутреннего сгорания (например, при срабатывании датчика детонации).

В юриспруденции

  • Отмена судебного решения (апелляция, кассация).
  • Отмена административного акта (например, отмена постановления о штрафе).
  • Отмена договора (расторжение по соглашению сторон или в судебном порядке).

В финансах

  • Отмена банковского перевода (до момента его исполнения).
  • Отмена заказа в интернет-магазине (до начала отгрузки).
  • Отмена подписки на сервис (до истечения пробного периода).

Примеры

  • В текстовом редакторе Microsoft Word команда «Отменить» (Ctrl+Z) отменяет последнее действие, а команда «Повторить» (Ctrl+Y) возвращает отменённое.
  • В системе контроля версий Git команда git revert создаёт новый коммит, который отменяет изменения предыдущего коммита, не удаляя его из истории.
  • В операционной системе Windows удаление файла в корзину является отменяемым действием: файл можно восстановить. Окончательное удаление (Shift+Delete) не отменяется стандартными средствами.
  • В юридической практике Верховный суд РФ может отменить решение нижестоящего суда и направить дело на новое рассмотрение.

Критика и ограничения

Несмотря на широкое распространение, функция отмены имеет ряд ограничений:

  • Необратимость некоторых действий — физические процессы (например, сварка, резка, сжигание) невозможно отменить.
  • Потеря контекста — отмена может нарушить логику работы системы (например, отмена удаления файла, который уже был перезаписан).
  • Проблемы с памятью — хранение полной истории изменений может потребовать значительных ресурсов (особенно в графических редакторах с большими файлами).
  • Юридические риски — отмена судебного решения может быть оспорена, если она нарушает права третьих лиц.
  • Социальные последствия — отмена культурного мероприятия может вызвать общественное недовольство и финансовые потери.

В некоторых системах (например, в банковских) отмена транзакции возможна только до момента её подтверждения; после этого требуется ручное вмешательство оператора.

Интересные факты

  • В ранних версиях текстового редактора vi (1976 год) отмена была доступна только для последнего действия; многоуровневая отмена появилась только в vim (1991 год).
  • В операционной системе MS-DOS (1981 год) не было встроенной функции отмены удаления файлов; для восстановления требовались сторонние утилиты.
  • В системе управления версиями Git отмена коммита через git revert не удаляет сам коммит, а создаёт новый, отменяющий изменения, что позволяет сохранить историю.
  • В некоторых графических редакторах (например, Adobe Photoshop) можно отменить до 1000 последних действий (настраиваемый параметр).

Источники

  • Таненбаум Э., Остин Т. «Архитектура компьютера». — СПб.: Питер, 2013.
  • Керниган Б., Пайк Р. «Практика программирования». — М.: Вильямс, 2005.
  • ГОСТ 34.003-90 «Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Термины и определения».
  • Федеральный закон от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации».
  • История развития текстовых редакторов: материалы музея вычислительной техники (ВЦ РАН).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →