---
title: "Проследяване на промените в документ C++"
---

Функцията за проследяване на промени, известна също като преглед, ви позволява да проследявате промени в съдържанието и форматирането, направени от вас или други потребители. Тази функция за проследяване на промените с Aspose.Words поддържа проследяване на промените в Microsoft Word. С тази функционалност можете да получите достъп до отделни ревизии в документа си и да приложите различни свойства към тях.

Когато разрешите функцията за проследяване на промени, всички вмъкнати, изтрити и модифицирани елементи на документа ще бъдат визуално осветени с информация за това кой, кога и какво е променено. Обектите, които носят информация за това, което е променено, се наричат "проследяване на промените". Да предположим например, че искате да прегледате документ и да направите важни промени - това може да означава, че трябва да направите корекции. Също така може да се наложи да вмъкнете коментари, за да обсъдите някои от промените. Това е мястото, където проследяването на промените в документите идва.

Тази статия обяснява как да управлявате и проследявате промени, създадени от много проверяващи в един и същ документ, както и свойствата за проследяване на промени.

```

Обърнете внимание, че функцията за коментар в Aspose.Words, както и в Microsoft Word, може да бъде свързана с проследяване на промените. Не забравяйте обаче, че коментарите са напълно независими от проследяването на промените.

```

## Какво е ревизия

Преди да се потопим в ревизии, нека обясним значението на ревизиите. [revision](https://reference.aspose.com/words/cpp/aspose.words/revision/) е промяна, която се случва в един възел на документ, докато група ревизии, представена от клас [RevisionGroup](https://reference.aspose.com/words/cpp/aspose.words/revisiongroup/), е група от последователни ревизии, които се случват в много възли на документ. Ревизията е инструмент за проследяване на промените.

Ревизиите се използват в функцията за проследяване на промени и в функцията за сравняване на документи, където ревизиите се появяват в резултат на сравнението. Така че ревизиите в функцията за проследяване на промените показват от кого и какво е променено.

```

Обърнете внимание, че Microsoft Word не ви позволява да преглеждате отделни ревизии, а само последователни ревизии като едно цяло. Но Aspose.Words решава това ограничение с **RevisionGroup** класа.

```

Aspose.Words поддържа различни типове ревизии, както и в Microsoft Word, като Вмъкване, Изтриване, FormatChange, StyleDefinitionChange и преместване. Всички видове ревизии са представени с изброяването [RevisionType](https://reference.aspose.com/words/cpp/aspose.words/revisiontype/).

```

Имайте предвид, че ревизиите имат резултат, подобен на Microsoft Word, но Aspose.Words не открива форматиране по време на проследяване на промените.

```

## Стартиране и спиране на проследяването на промените

Редактирането на документ обикновено не се счита за ревизия, докато не започнете да го проследявате. Aspose.Words позволява автоматично проследяване на всички промени във вашия документ с прости стъпки. Можете лесно да започнете процеса на проследяване на промените, като използвате метода [StartTrackRevisions](https://reference.aspose.com/words/cpp/aspose.words/document/starttrackrevisions/). Ако трябва да спрете процеса на проследяване на промените, така че всички бъдещи редакции да не се считат за ревизии, ще трябва да използвате метода [StopTrackRevisions](https://reference.aspose.com/words/cpp/aspose.words/document/stoptrackrevisions/).

```

Обърнете внимание, че методът `StartTrackingRevisions` не променя състоянието на свойството [TrackRevisions](https://reference.aspose.com/words/cpp/aspose.words/document/set_trackrevisions/) и не използва неговата стойност за целите на проследяването на ревизиите. Освен това, ако даден възел е бил преместен от едно място на друго вътре в проследявания документ, ще бъдат създадени промени за преместване, включително преместване от и преместване в диапазон.

```

В края на процеса на проследяване на промените във вашия документ ще имате възможност дори да приемете всички ревизии или да ги отхвърлите, за да върнете документа в първоначалния му вид. Това може да се постигне чрез използване на [AcceptAllRevisions](https://reference.aspose.com/words/cpp/aspose.words/document/acceptallrevisions/) или [RejectAll](https://reference.aspose.com/words/cpp/aspose.words/revisioncollection/rejectall/) Метод. Освен това можете да приемете или отхвърлите всяка редакция поотделно, като използвате метода [Accept](https://reference.aspose.com/words/cpp/aspose.words/revision/accept/) или [Reject](https://reference.aspose.com/words/cpp/aspose.words/revision/reject/).

Всички промени ще бъдат проследени за една итерация от момента, в който започнете процеса, до момента, в който го спрете. Връзката между различните итерации е представена като следния сценарий: завършвате процеса на проследяване, след това правите някои промени и отново започвате да проследявате промените. При този сценарий всички промени, които не сте приели или отхвърлили, ще се покажат отново.

```

Обърнете внимание, че методът `AcceptAllRevisions` е подобен на "приеми всички промени" в Microsoft Word.

```

Следният пример за код показва как да работите с проследяване на промени:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Programming-Documents-Document-WorkingWithRevisions-AcceptAllRevisions.cpp" >}}

Следващият пример за код показва как се генерират ревизии, когато възел се премества в проследяван документ:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Programming-Documents-Document-WorkingWithRevisions-MoveNodeInTrackedDocument.cpp" >}}

## Управление и съхраняване на промените като ревизии

С предишната функция за проследяване на промените можете да разберете кои промени са направени във вашия документ и кой е направил тези промени. Докато използвате функцията [TrackRevisions](https://reference.aspose.com/words/cpp/aspose.words/document/get_trackrevisions/), вие принуждавате всички промени във вашия документ да се съхраняват като ревизии.

Aspose.Words ви позволява да проверите дали даден документ има редакция или не, като използвате свойството [HasRevision](https://reference.aspose.com/words/cpp/aspose.words/document/get_hasrevisions/). Ако не е необходимо автоматично да проследявате промените в документа си чрез методите StartTrackRevisions и StopTrackRevisions, можете да използвате свойството `TrackRevisions`, за да проверите дали промените се проследяват, докато редактирате документ в Microsoft Word и се съхраняват като корекции.

Функцията `TrackRevisions` прави ревизии вместо реални DOM промени. Но самите ревизии са отделни. Например, ако изтриете някой абзац, Aspose.Words Направете го като ревизия, като го маркирате като изтриване, вместо да го изтриете.

В допълнение Aspose.Words ви позволява да проверите дали даден обект е вмъкнат, изтрит или променен форматиране с помощта на [IsDeleteRevision](https://reference.aspose.com/words/cpp/aspose.words/inline/get_isdeleterevision/), [IsFormatRevision](https://reference.aspose.com/words/cpp/aspose.words/inline/get_isformatrevision/), [IsInsertRevision](https://reference.aspose.com/words/cpp/aspose.words/inline/get_isinsertrevision/), [IsMoveFromRevision](https://reference.aspose.com/words/cpp/aspose.words/inline/get_isformatrevision/), и [IsMoveToRevision](https://reference.aspose.com/words/cpp/aspose.words/inline/get_ismovetorevision/) свойства.

```

Имайте предвид, че няма връзка между самите ревизии и имота `TrackRevisions`. Освен това можете да приемате/отхвърляте ревизии, независимо от функцията за проследяване на промените.

```

Следният пример за код показва как да прилагате различни свойства с ревизии:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Programming-Documents-Document-WorkingWithRevisions-ShapeRevision.cpp" >}}
