Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
02 дек 2021, 07:14

Удаление связанных записей

Автор Anachronizm, 19 дек 2020, 16:02

0 Пользователей и 1 гость просматривают эту тему.

Anachronizm

Здравствуйте! У меня появился вопрос касательно связанных записей.

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

Тогда как мне настроить платформу Предприятие 8.3 на удаление связанных записей?

P.s. я понимаю что это должно быть как при каскадной структуре в тех же базах данных на SQL.

LexaK

для этого есть такое понятие как Пометка удаления
1.сначала ненужные объекты, элементы справочников или документы и т.д.  помечаются на удаление
2.есть встроенная и куча внешних обработок: Удаление помеченных объектов
эти обработки как раз и делают проверку/поиск этих, помеченных на удаление объектов, в других объектах и их реальное удаление
   а. если не найдено вхождений - помеченный объект реально удаляется из базы совсем   
   б. если есть вхождения/ссылки помеченного объекта в других объектах, то он не удаляется и формируется список всех мест где эти помеченные объекты используются   

вы можете:
==вручную исправить объекты содержащие ссылки на удаленные
    -удалить эти ссылки/записи
    -или заменить на новые/нужные
==использовать обработку поиска и замены одних ссылок(помеченных на удаление) на другие(правильные)

после того как вы "почистили" убрали ссылки на удаленные объекты из других, можно повторить обработку Удаления помеченных

если удалить без всяких проверок, то это может приводить к ошибкам, и вы можете увидеть такую запись   
<Объект не найден> (302:80bd003048653dec11e6323714bee244)

а на счет СКЛ вы не правы, там тоже само по себе ни чего не происходит!!!
все ваши каскадные изменения прописаны в констрейнах/настройках таблиц (это тоже программа)
ответ Понравился? (в смысле пригодился?)

Anachronizm

Цитата: LexaK от 19 дек 2020, 19:46
для этого есть такое понятие как Пометка удаления
1.сначала ненужные объекты, элементы справочников или документы и т.д.  помечаются на удаление
2.есть встроенная и куча внешних обработок: Удаление помеченных объектов
эти обработки как раз и делают проверку/поиск этих, помеченных на удаление объектов, в других объектах и их реальное удаление
   а. если не найдено вхождений - помеченный объект реально удаляется из базы совсем   
   б. если есть вхождения/ссылки помеченного объекта в других объектах, то он не удаляется и формируется список всех мест где эти помеченные объекты используются   

вы можете:
==вручную исправить объекты содержащие ссылки на удаленные
    -удалить эти ссылки/записи
    -или заменить на новые/нужные
==использовать обработку поиска и замены одних ссылок(помеченных на удаление) на другие(правильные)

после того как вы "почистили" убрали ссылки на удаленные объекты из других, можно повторить обработку Удаления помеченных

если удалить без всяких проверок, то это может приводить к ошибкам, и вы можете увидеть такую запись   
<Объект не найден> (302:80bd003048653dec11e6323714bee244)

а на счет СКЛ вы не правы, там тоже само по себе ни чего не происходит!!!
все ваши каскадные изменения прописаны в констрейнах/настройках таблиц (это тоже программа)

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

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск