Удаление помеченных объектов (немонопольное) для управляемых (UPD: и обычных) форм


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

Изнаначально взято из конфигурации 1с Документооборот.

В 1с Документооборот Используются справочники для представления документов и, т.к. для элементов справочников нет понятия проведение, при контроле ссылочной целостности некоторые ссылки исключаются. Далее удаление производится автоматически по ведущему измерению регистра.
Список исключаемых метаданных берется из ОбщегоНазначенияПереопределяемый.ПолучитьИсключенияПоискаСсылок().
Добавлена возможность интерактивной корректировки списка исключаемых типов ссылок.

Используется форма ВыборОбъектовМетаданных, взятая из общих форм 1с Документооборот. Подошла без единого исправления, даже позаимствовал функцию ЗначениеПометкиЭлементов в основную форму обработки.

В встроенной в кофигурацию обработке процедуры расположены в модуле менеджера. Пришлось перенести их в модуль объекта. Возможно вставка в конфигурацию.

Есть аналогичные публикации, например, http://forum.avprog.ru/forum24/topic43769/.
Отличий не знаю, т.к. у меня нет прав на скачивание Cry.

Это есть мои упражнения с управляемыми формами.
Попробовал передать таблицу значений между сервером и клиентом (не очень удачно).
Попытался использовать серверную функцию в процедуре ПриАктивизацииСтроки (не потому, что надо, а потому, что хочетсяSmile).
Замечено, что не совпадает удаление в монопольном и немонопольном режимах (в монопольном, обычно, удаляет больше объектов).
Представляется как есть, без гарантий.

UPD: Добавлена обычная форма. Некоторые изменения, в основном, косметического характера.

UPD2: Исправлена часть ошибок, добавленная при предыдущем обновлении :). Добавлены флажки "Сообщать об удаленных" и "Удалять в транзакции". Количество удаляемых в монопольном и немонопольном режимах, практически, сравнялось.

       

 //Удаляемые = осОбработкаОбъект.ПолучитьПомеченныеНаУдаление();
Удаляемые = осОбработкаОбъект.ПолучитьПомеченныеНаУдаление().Результат;
//ЗначениеВРеквизитФормы(осОбработкаОбъект, "Объект");



UPD3: Исправлены замеченные ошибки.

UPD4: Исправлена ошибка: планы видов расчета не включались в дерево метаданных - ошибка копи-пасты, перенесенная из 1с-Документооборот. Конечно, документообороту виды расчета глубоко параллельны, но мне вот понадобились :).

UPD5: Добавлены ПРОЦЕДУРЫ И ФУНКЦИИ РЕГИСТРАЦИИ обработки в информационной базе

UPD6: Исправлены замеченные ошибки отображения статуса возможности удаления. Замечено, что если установлена дата запрета редактирования и есть ссылки на записи периодическго регистра сведений с более ранним периодом, чем дата запрета редактирования, то статус зеленый (можно удалить), но удалить невозможно. Пока ничего не делал по этому поводу.

UPD7: Добавил планы обмена.

Файлы обработки:

-