// Автоматическая регистрация документа при запуске обработки
// Если документ уже зарегистрирован вручную — процесс не останавливаем
ДокументСсылка = Параметры.ОбработкаОбъект.Владелец;
Если НЕ ЗначениеЗаполнено(ДокументСсылка) Тогда
ВызватьИсключение "Не найден документ для регистрации.";
КонецЕсли;
ОписаниеОшибки = "";
// Пытаемся зарегистрировать документ штатным методом
Если НЕ Делопроизводство.ЗарегистрироватьПредмет(ДокументСсылка, ОписаниеОшибки) Тогда
ТекстОшибки = НРег(ОписаниеОшибки);
ДокументУжеЗарегистрирован = Ложь;
// Проверяем, что ошибка связана именно с тем,
// что документ уже был зарегистрирован ранее
Если СтрНайти(ТекстОшибки, "уже зарегистр") > 0 Тогда
ДокументУжеЗарегистрирован = Истина;
КонецЕсли;
Если СтрНайти(ТекстОшибки, "зарегистрирован ранее") > 0 Тогда
ДокументУжеЗарегистрирован = Истина;
КонецЕсли;
Если СтрНайти(ТекстОшибки, "уже был зарегистр") > 0 Тогда
ДокументУжеЗарегистрирован = Истина;
КонецЕсли;
Если СтрНайти(ТекстОшибки, "повторная регистрация") > 0 Тогда
ДокументУжеЗарегистрирован = Истина;
КонецЕсли;
// Если документ уже зарегистрирован — это не ошибка,
// просто продолжаем выполнение процесса
Если НЕ ДокументУжеЗарегистрирован Тогда
Если ПустаяСтрока(ОписаниеОшибки) Тогда
ОписаниеОшибки = "Не удалось зарегистрировать документ.";
КонецЕсли;
ВызватьИсключение ОписаниеОшибки;
КонецЕсли;
КонецЕсли;