(4)это не подходит. Возможно сделать так что бы из самого документа по нажатию кнопки документ закрылся и удалился? Как прописать что бы текущий документ был удален?
(3) Я так понимаю, что заказчик требует, чтобы при удалении документ не отображался в списке документов, т.е. был "реально удален". Возможно достаточно будет подправить ФормуСписка и ФормуВыбора, т.е. не отображать документы с пометкой на удаление.
(1)При нажатии кнопки - пишите в регистр "УдалениеДоковНапрямуюПоСтраннойЗаявкеОтПользователя" - ссылку на док. Потом в ПодпискеНаСобытия или в рег задании - читаете эти ссылки и удаляете объекты.
Да, и скорее всего - не забудьте написать заявление по собственному.
(1)
1. УстановитьПривилегированныйРежим (либо дать права Интерактивного удаления)
2. Использовать метод "Удалить" у объекта документа. Т.е. возможно, что нужно будет использовать ПолучитьОбъект()
Помечаете на удаление как в примере (8) В модуле документа в обработчик "При закрытии" допишите
Если Объект.ПометкаУдаления = истина тогда
Объект.ОбменДанными.ЗагрузкаДанных = истина;
Объект.Удалить();
КонецЕсли;
У пользователя может быть недостаточно прав для исполнения кода. Если не сработает, может потребоваться дополнительно расширить права пользователя (интерактивное удаление на документ, а лучше все права что есть на документ) и привилегированный режим установить.
Как писали, может возникнуть проблема с ссылочной целостностью, если документ упоминается в других объектах в качестве свойства или реквизита, тогда будут битые ссылки.
Я бы дополнительно перед физическим удалением выполнял проверку на наличие ссылок на объект.
Фрагмент из БСП
// Проверяет наличие ссылок на объект в базе данных
ОбщегоНазначения.ЕстьСсылкиНаОбъект(Знач СсылкаИлиМассивСсылок, Знач ИскатьСредиСлужебныхОбъектов = Ложь, ДругиеИсключения = Неопределено)
Пример:
Если ОбщегоНазначения.ЕстьСсылкиНаОбъект(Контрагент) Тогда
Продолжить;
КонецЕсли;