Удалить пустые ссылки из регистров

30.06.10

База данных - Чистка данных

Поиск и удаление неопределенных ссылок (<Объект не найден>) в регистрах

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
УдалитьПустыеСсылкиИзРегистров
.epf 6,70Kb
606
606 Скачать (1 SM) Купить за 1 850 руб.
УдалитьПустыеСсылкиИзРегистров версия 2
.epf 10,77Kb
329
329 Скачать (1 SM) Купить за 1 850 руб.

Иногда случается так, что в движениях регистров, подчиненных регистратору, теряется ссылка на регистратор "<Объект не найден>".

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

Подобная обработка уже есть: //infostart.ru/public/14510/

Но представленная мной обработка написана гораздо изящнее и перебирает все виды регистров (РегистрБухгалтерии, РегистрНакопления, РегистрРасчета, РегистрСведений), кроме того она проста в использовании.

Может она вам и не пригодится, но код стоит посмотреть.

Должна работать на любой конфигурации. Проверялась на УПП 1.2 и Бухгалтерии.

 

UPD: Прислушался к советам sergeypv. И сделал обработку более функциональной.

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

Добавлен индикатор (не точный) процесса. В строке состояния отображаются производимые операции.

После выполнения обработки выводится отчет в виде табличного документа с группировками.

Кроме того, обработка выполняется с транзакциями, а это значит, чтобы отменить действия обработки нужно нажать комбинацию клавиш Ctrl+Break до завершения выполнения обработки.

Основная функция по удалению битых ссылок в регистрах подчиненных регистратору осталась неизменной.

См. также

SALE! 15%

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7888    59    23    

69

Чистка данных Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Позволяет удалить организации из любых из информационных баз 1С на управляемых формах (БП 3.0, УТ 11, КА 2, ERP 2, ЗУП 3.0, УНФ, Розница 2.0 и пр.). Главное требование - программа должна содержать справочник "Организации". Реализован самый быстрый алгоритм непосредственного удаления объектов. Работает даже на базах большого размера. Для ускорения работы алгоритма не запускается проверка контроля ссылочной целостности. Проверку учета можно запустить отдельно с помощью дополнительной обработки. Необходимо перед удалением самостоятельно проверить базу на наличие перекрестных ссылок разных организаций в одном документе. Эту дополнительную обработку проверки перекрестных ссылок по запросу предоставляем бесплатно нашим покупателям.

3582 руб.

16.03.2015    172452    209    81    

244

Чистка данных Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 10 1С:Управление торговлей 11 Платные (руб)

Данные обработки помогут Вам легко и, главное быстро, выполнить удаление любых данных в Ваших базах 1С на платформах 8.1-8.3. Обработки помогут легко просмотреть связи ссылок в виде дерева, выбрать что удалять, а что нет, используя любые отборы. Это позволит уменьшить объем лишней и не нужной информации в справочниках и документах, планах видов характеристик и др. объектах и облегчит работу с данными пользователям и Вам. Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. (Обновление от 29.06.2023, версия 4.2)

9600 руб.

22.02.2013    138416    258    144    

429

Чистка данных Программист Пользователь Платформа 1С v8.3 Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

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

3350 руб.

28.11.2019    25862    59    16    

74

Оптовая торговля Логистика, склад и ТМЦ Чистка данных Программист Бухгалтер Пользователь Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Если вы начали работать в программном продукте Управление Торговлей, редакция 11 или Комплексная Автоматизация редакция 2 и включили механизм учёта серий, то перейти обратно в учёт без серий будет не так-то просто. Сложность заключается в том, что нужно очистить серии в табличной части документа, например, Реализация Товаров и услуг. Предлагаем алгоритм перехода на учет без серий для программного продукта УТ11. (Очистка серий.)

2400 руб.

09.04.2019    29061    43    14    

45

Чистка данных Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Если в вашей информационной базе крутится очень много данных, или база должна быть доступна 24/7 (как в моем случае), или же вы боитесь запускать тестирование и исправление, НО существует потребность удалить битые ссылки, тогда эта обработка сможет Вам помочь. Обработка выявляет битые ссылки как в самих объектах метаданных, так и в их табличных частях(!), а так же может их удалить.

2400 руб.

23.08.2021    9931    19    3    

25

Чистка данных Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

21.01.2022    7704    1    dmbal    6    

12

Чистка данных Инструментарий разработчика Системный администратор Программист Платформа 1С v8.3 Абонемент ($m)

Очередная вариативная очистка кэша 1С с помощью Исполнителя 3.0.2.2.

1 стартмани

25.10.2023    5345    5    SerVer1C    26    

22
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. overdriver 30.06.10 01:21 Сейчас в теме
Спасибо. Работает. Как раз появилась одна ничейная запись по взаиморасчетам. Успешно была удалена этой обработкой.
2. Alav 13 30.06.10 06:23 Сейчас в теме
А ТиИ уже не подходит?
3. 79044970523 934 30.06.10 06:50 Сейчас в теме
Работает быстрее, чем ТиИ. Да и ТиИ не всегда помогает.
36. bimy22 01.04.19 15:27 Сейчас в теме
(3) Соглашусь, насчёт скорости работы.

Спасибо за разработку, автор!
4. sergeypv 30.06.10 07:02 Сейчас в теме
Не плохо бы на форму "положить" строку с именем текущего регистра и индикатор по этому регистру. Так же хотелось бы иметь возможность выбрать один из регистров для проверки, а не все. У кого база за 200 ГБ, тот поймет. Ну и в конце не плохо бы отчет с количеством пустых ссылок в каждом регистре.
79044970523; +1 Ответить
5. 79044970523 934 30.06.10 09:14 Сейчас в теме
Хорошее предложение. Сделаю.
6. KukA.5 476 30.06.10 09:36 Сейчас в теме
Хорошая полезная вещь, аккуратно изготовленная.
Автору огромный плюс и за идею и за ее очень толковую реализацию.

Как полезный совет:
для любых ссылочных типов если в запросе напишем "Где ...СсылочныйТипПоля.Ссылка ЕСТЬ NULL...", то получим неявное соединение Ссылки "с самой собой", то есть с несуществующим в БД объектом, то есть получим NULL. А это и есть битые ссылки.

Не всегда же можно оперется на регистратор в регистре, правда ведь? :D
7. Ish_2 1112 30.06.10 10:02 Сейчас в теме
В обработке в процедуре ПочиститьРегистр() в тексте запроса есть строка
"ГДЕ НаименованиеРегистра.Регистратор.Дата ЕСТЬ NULL"
- что понятно и прозрачно. Значит в соответствующей таблице регистраторов объект с такой ссылкой отсутствует и обращение к любому из реквизитов такого регистратора даст NULL , значит эта ссылка битая.

А вот твой пост (6) загадочен и непонятен.
Причем тут фильтр на значение самой ссылки
"Где ...СсылочныйТипПоля.Ссылка ЕСТЬ NULL..." ?
10. KukA.5 476 30.06.10 15:35 Сейчас в теме
(7) если у нас есть регистр сведений, например, независимый (без регистратора), то "битые ссылки" в нем ...могут быть.

"битые ссылки" могут оказаться по любым измерения, ресурсам, реквизитам, которые ссылочного типа.

В этом случае их можно "отловить" конструкцией в запросе "Где ИмяПоляСсылочногоТипа.Ссылка Есть NULL"....
Кстати, Регистратор является ссылочным типом и можно (хотя это безусловно будет чуть :) более затратно в этом конкретном случае) сделать проверку не на Регистратор.Дата, а на Регистратор.Ссылка.


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

Надеюсь, теперь мой комментарий стал менее туманный (но более скучным).
8. bulpi 217 30.06.10 12:22 Сейчас в теме
Все хорошо, только нужно больше информации для пользователя : индикация как идет процесс и т.д.
9. RailMen 828 30.06.10 13:47 Сейчас в теме
Даешь обработку "Расшифровка, откуда взялись пустые ссылки" :D
11. 79044970523 934 30.06.10 23:36 Сейчас в теме
Прислушался к советам sergeypv. И сделал обработку более функциональной.
12. bagr 01.07.10 11:11 Сейчас в теме
Смотрел 2-ую версию. Для себя сделал:

1) Убрал Сообщить("Чтобы прервать выполнение обработки нажмите Ctrl-Break", СтатусСообщения.Информация); - реально раздражает, заменил его Надписью.
2) Добавил в начале, конце и перед Возврат - Сообщить("Начало "+ТекущаяДата()); Сообщить("Конец "+ТекущаяДата());
3) Добавил в цикле процедуры КнопкаВыполнитьНажатие(Кнопка) Состояние(ВидРегистра.Имя+": "+Регистр.Имя); (если регистр большой - обрабатывается долго, видно хоть какой) - а в процедуре "почистить" почему-то "состояние" не обрабатывает
13. bagr 01.07.10 11:54 Сейчас в теме
А ну конечно понятно почему в процедуре Почистить не отрабатавает Состояние, там же собственно запрос по битым ссылкам...
14. wiranata 286 05.07.10 08:14 Сейчас в теме
При работе обработки не обнаружил заявленных:
---------------------------------------------------------------------------------------------------------------------
Теперь все регистры показаны в виде дерева значений с флажками для проверки только нужных.

Добавлен индикатор (не точный) процесса. В строке состояния отображаются производимые операции.

После выполнения обработки выводится отчет в виде табличного документа с группировками.
---------------------------------------------------------------------------------------------------------------------

Возможно не там смотрел...
15. 79044970523 934 05.07.10 08:34 Сейчас в теме
Два файла для скачивания. Вот на вторую версию ссылка http://infostart.ru/public/download.php?file=72450
16. ms_andrey 06.07.10 17:47 Сейчас в теме
Выдается ошибка при опции Удалить
{Форма.Форма(134)}: Ошибка при вызове метода контекста (Записать): Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Взаиморасчеты с контрагентами)
НаборЗаписей.Записать();
по причине:
Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Взаиморасчеты с контрагентами)

В чем может быть проблема?
17. 79044970523 934 07.07.10 20:06 Сейчас в теме
А какая конфигурация? Лучше отладчиком посмотреть.
18. alex_4x 87 10.08.10 13:04 Сейчас в теме
Прикол в том, что при попытке чистить этой обработкой записи в PostgreSQL ной базе - 1С Вылетает в момент попытки записать в регистр с отбором по пустому документу.
19. PlatonStepan 38 29.10.10 12:13 Сейчас в теме
а у меня такая называется : ПоискИУдалениеБитыхСсылокВРегистрах.epf :D.
20. Вакулиса 11.07.11 13:17 Сейчас в теме
Не работает когда есть запись с пустой ссылкой. То есть Документ.ПустаяСсылка()
21. Coollerok 08.11.11 01:20 Сейчас в теме
А у меня все работает! Спасибо!
22. gurovvv 06.12.11 14:20 Сейчас в теме
полезная обработка! спасибо! на основании нее сделал для себя другую, которая чистит регистры от записей с пустыми документами.
23. von_de 5 06.12.11 23:34 Сейчас в теме
По умолчанию с инфостарта качается старая версия обработки - конечно не фонтан. Вторая версия понравилась, помогла справится с пустыми записями.Спасибо.
24. art-ame 18.12.11 22:59 Сейчас в теме
Кто испробовал, подскажите , помогает избавиться от такого глюка как "с качеством Новый на складе .... недостаточно" при наличии этого товара?
На любых конфигурациях работает?
25. art-ame 18.12.11 23:23 Сейчас в теме
Ну,вот, испробовала... Что сказать, не работает она в УТ 8.1!!!
Выводит окошко с надписями "Сообщить" , "Удалить", "Выполнить", "Закрыть". Окошки, как показано выше на скриншотах, отсутствуют.
26. gala2009 31 18.04.12 11:35 Сейчас в теме
спасибо за обработку, очень пригодилась
27. Tur_gad 16.07.12 07:20 Сейчас в теме
Замечательная вещь скачал давно но воспользовался только недавно, работает как часы и очень полезна). Особенно с моей перековерканной базой. Удалось отловить много битого движения когда сумма есть а документа как такового нет). Огромное спасибо за эту разработку респект вам и удачи в дальнейшей работе!!!!
28. Tur_gad 20.12.12 11:51 Сейчас в теме
Вопросик по чему после конвертации обработки под 8,2 у меня удаляет все движение в базах. короче коверкает жуть. подскажите в чем может быть проблема?
29. masiok 16.05.13 14:33 Сейчас в теме
Удаляет только битые ссылки? Или как в описании сказано пустые?
30. vis_tmp 32 15.11.13 22:12 Сейчас в теме
31. dka80 21 30.07.15 13:00 Сейчас в теме
Спасибо. Думал сам написать, а все уже изобретено до нас )) Отработала без проблем.
32. Den_D 54 27.09.16 15:38 Сейчас в теме
Вот что значит профессионал! Уже платформа 8.3.8, УПП 1.3, а обработка работает четко! Спасибо
33. ivdic 31 15.10.18 14:33 Сейчас в теме
почему то не работает открывает пустую форму
34. LosevI 25.12.18 02:44 Сейчас в теме
(33) скорее всего потому что форма неуправляемая, а открываете в управляемом интерфейсе...
Самому очень нужна сейчас эта обработка. Да простит меня Инфостарт - нужно последнее сообщение ло 1 стартмани, чтобы ее скачать.

Скачаю, даже если не запустится - будет полезно посмотреть код, как реализован поиск и удаление записей.
35. Laser 27.03.19 11:51 Сейчас в теме
УТ 10.3 Хотел почистить регистр соответствие информационных баз... При запуске показывает далеко не все регистры и нужного мне в списке нет
37. vyacheslavb 06.11.23 18:12 Сейчас в теме
Почему-то не все регистры сведений выдает в список
Оставьте свое сообщение