Универсальная обработка выборочного удаления элементов справочника, документов

Публикация № 935146

Администрирование - Чистка базы

1С 8 обработка универсальная выборочное удаление без проверки ссылочной целостности элемента справочника документа объекта базы

1
Выборочное удаление элементов справочников или документов без проверки ссылочной целостности. Сама по себе обработка проста и была сделана для очень крайнего случая, с которым встретился на практике и который описан в публикации ниже. Поэтому кому-то может пригодиться и столь простая реализация.

Случилось как-то, что в одной базе при выполнении "Тестирования и исправления..." в режиме "Реструктуризация таблиц базы данных" столкнуться мне с ошибкой со страшной формулировкой:

В процессе обновления информационной базы произошла критическая ошибка
по причине:
Ошибка СУБД:
Microsoft SQL Server Native Client 11.0: Не удалось вставить значение NULL в столбец "_Fld888", таблицы "Торговля.dbo._Reference66NG"; в столбце запрещены значения NULL. Ошибка в INSERT.
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=2, Severity=10, native=515, line=1

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

Штатным способом пометить на удаление элементы с кодом типа "F0000000N" не представлялось возможным.

универсальная обработка для 1С 8 удаление без проверки ссылок для справочника документа

Если кто-то сталкивался с такой ситуацией, то значет, что платформа в подобнос случае не позволит открыть элемент для дальнейшего заполнения, чтобы потом уже можно было пометить на удаление. 

1С 8 как удалить объект базы без проверки ссылочной целостности

Но факт состоял в том, что было точно известно, что эти элементы лишние и ничего от них не зависит. А следовательно их можно удалить. Тем более если их не удалить, то "критическая ошибка" не была бы устранена.

Тестировалась в 1С: Бухгалтерия предприятия, ред. 2.0, релиз 2.0.66.39; ред. 3.0, релиз 3.0.64.28. Подойдет к любым конфигурациям.

1

Скачать файлы

Наименование Файл Версия Размер
Обработка удаления элементов справочника, документов (обычный интерфейс)
.epf 6,73Kb
02.11.18
1
.epf 6,73Kb 1 Скачать
Обработка удаления элементов справочника, документов (управляемый интерфейс)
.epf 9,53Kb
01.11.18
2
.epf 9,53Kb 2 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. mr.Samuelson 02.11.18 09:29 Сейчас в теме
4. apostal86 208 02.11.18 11:28 Сейчас в теме
(1) извините, но наш мир так переполнен аббревиатурами, что не понимаю, что Вы имели ввиду под "ИР"?
6. mr.Samuelson 06.11.18 09:26 Сейчас в теме
(4) Инструменты разработчика - это такая подсистема с большим набором самых разнообразных обработок для 1С.
7. apostal86 208 06.11.18 11:13 Сейчас в теме
(6) суть расшифровки ясна. Вы имеете ввиду эту разработку https://infostart.ru/public/15126/ ?
8. mr.Samuelson 06.11.18 11:16 Сейчас в теме
9. apostal86 208 06.11.18 11:26 Сейчас в теме
(8) Я даже к своему стыду как-то и не знал о существовании таковой. Бегло посмотрел описание. Там прямо всего-всего так много. По описанию кажется, что вроде есть, но не внятно расписано. Ровно такой формулировку, под которой опубликовал свою обработку в описании "инструментов", не нашел. Но, даже если и есть, то кажется, можно заблудиться во всем функционале обработки, прежде чем найти функцию.
2. alex_4x 80 02.11.18 10:22 Сейчас в теме
Удаляется прямым запросом к SQL базе?
3. apostal86 208 02.11.18 11:25 Сейчас в теме
(2) не спорю, конечно можно и запросом к SQL-базе, но это когда у Вас есть доступ к SQL. Конкретно в данной ситуации, связанной с публикацией, у клиента доступ к SQLю админом сервера не был предоставлен заранее. А проблему надо было решать оперативно, точнее уже в нерабочее время, когда админ не доступен. К тому же еще вопрос эргономики. Запрос кончено можно составить. Но его же еще нужно составить и правильно, чтобы чего нужного вследствии неудачно составленного запроса не удалить. А так обработку открыл, предварительно идентифицировав объект базы и удалили - эргономика)))
5. alex_4x 80 02.11.18 11:59 Сейчас в теме
(3) Я просто подумал, что штатной командой 1С Объект.Удалить() - платформа не давала это сделать. Такое теоретически может быть.
Оставьте свое сообщение