--- title: "ksSetCriticalProcess - Установить критический процесс" type: guide api: [api7] tags: [guide, api7, kssetcriticalprocess] sources: - kssetcriticalprocess.html --- *API экспортных функций > Функции работы с документами  > Сервисные функции * ## ksSetCriticalProcess - Установить критический процесс Пример... Аналог данной функции при использовании Automation - метод KompasObject::ksSetCriticalProcess. Синтаксис: ``` int ksSetCriticalProcess (); Возвращаемое значение: 1 - в случае удачного завершения, 0 - в случае неудачи. ``` Примечание: Работа процесса, вызванного прикладной библиотекой (например, Cursor или Placement), может быть принудительно прервана переходом к другому действию (команде). Чтобы запретить возможность принудительного прерывания такого процесса, перед его активизацией требуется вызвать данную функцию. Она сделает следующий за ней процесс "критическим", и при попытке его принудительного завершения будет выдано сообщение о необходимости корректного завершения процесса. После штатного завершения процесса признак "критического" процесса снимается, и для следующих процессов (при необходимости) функцию требуется вызывать заново. ## ksSetCriticalProcess - пример использования reference pObj; RequestInfo info; double x, y; memset(&info, 0, sizeof(info)); info.prompt = "Укажите объект"; int j =1; while(j) { if(YesNo("Включить критический режим?")==1) ksSetCriticalProcess (); j = Cursor(&info, &x ,&y, 0); if(j && ExistObj(pObj = FindObj(x, y, 1e6))){ LightObj(pObj, 1); Message("Выделили объект"); LightObj(pObj, 0); } int rez = ReturnResult(); Message(rez == etLibraryClose ? "принудительное завершение выполнения библиотеки" : "Это не принудительное завершение"); if (rez != etLibraryClose) j = YesNo("Продолжать?")==1; }