gifts2017

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

Опубликовал Дмитрий Глух (IronDemon) в раздел Администрирование - Чистка базы

Поиск и удаление неопределенных регистраторов (<Объект не найден>) в регистрах
Наверно не только у меня бывают движения по регистру где регистратор имеет вид "<Объект не найден> (137:8b270030482898d011daad3cc45fc830)"

Из-за чего это происходит - отдельная тема. Для поиска и лечения таких ситуаций и была написана данная обработка.

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

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

Наименование Файл Версия Размер Кол. Скачив.
УдалениеПустыхСсылокВРегистрах.epf
.1164902836 11,62Kb
25.09.09
2629
.1164902836 11,62Kb 2629 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Роман (Unstoppable) 01.12.06 09:21
{Форма.Форма(15,9)}: Процедура или функция с указанным именем уже определена (ОписаниеПериода)
Функция <<?>>ОписаниеПериода()
{Форма.Форма(41,20)}: Недостаточно фактических параметров (ОписаниеПериода)
ОписаниеПериода = <<?>>ОписаниеПериода();

Выдает при старте в УПП 1.2.3.1
2. Дмитрий Глух (IronDemon) 01.12.06 11:12
Поменял имя функции на ПолучитьОписаниеПериода()
3. Роман (Unstoppable) 05.12.06 11:40
Спасибо, все работает. В нашей базе таких вещей не обнаружено!
4. Дмитрий Глух (IronDemon) 05.12.06 11:48
Везет вам, а я в месяц 5-20 случаев таких имею.
5. Сергей Старых (tormozit) 22.08.07 07:29
Скриншоты были бы полезны.

У нас РИБ с миграцией наборов записей регистров, подчиненных регистраторам, без миграции самих регистраторов. Так что не всегда нужно удалять такие записи.
6. Роман Ершов (MRAK) 19.12.07 14:53
У меня пишет "ничего не нашли", хотя биты ссылок куча, открывая регистр их вижу...
nurik727; +1 Ответить
7. Дмитрий Глух (IronDemon) 19.12.07 19:08
Так может битые справочники?
8. Роман Ершов (MRAK) 19.12.07 21:48
(7) нет, именно регистраторы... косяк был из-за того, что я дату окончания в обработке не задал... теперь показывает...
9. Валерий (savageRrr) 24.04.09 14:05
{Форма.Форма(186)}: Ошибка при вызове метода контекста (Выполнить): {(6244, 63)}: Синтаксическая ошибка ")"
РПриходПерсоналаПоИсточникам.Период МЕЖДУ &НачДата И &КонДата<<?>>)
Результат=Запрос.Выполнить();
по причине:
{(6244, 63)}: Синтаксическая ошибка ")"
РПриходПерсоналаПоИсточникам.Период МЕЖДУ &НачДата И &КонДата<<?>>)

1C УСО 1.2.19.3
10. Виктория (vika64) 22.07.09 10:58
Спасибо вам, используем в УТ 8.1. уже год, просто спасает, так как иначе проведение по партиям просто не проходит.
11. WWWolfy (WWWolfy) 16.09.09 10:52
Процедура КоманднаяПанель2ДействиеСнятьФлажки(Кнопка)
СписокРегистров.ЗаполнитьПометки(Ложь);
КонецПроцедуры


строка (100)
Если ТекстИЗ="" Тогда
Сообщить("У регистра <"+Регистр+"> пустой список регистраторов. Пропускаем.");
Продолжить;
КонецЕсли;
12. Tyler Kiss (tylerkiss) 17.09.09 11:52
Для какой версии платформы написана?
13. Дмитрий Глух (IronDemon) 17.09.09 12:29
Для 8.0, но работает и на 8.1
14. itt (itt) 22.09.09 09:53
в 8.1 надо сделать переконвертацию обработки, затем подправить
....Если ТипЗнч(Выборка.Регистратор) = Тип("ДокументСсылка.КорректировкаЗаписейРегистровНакопления") Тогда.....
на
....Если ТипЗнч(Выборка.Регистратор) = Тип("ДокументСсылка.КорректировкаЗаписейРегистров") Тогда.....

очень помогла!
15. Alex Koso (AlexKoso) 04.03.10 16:22
Офигеть условие : "Если НЕ (НеЗаполнятьНастройкиПриОткрытии = Истина) Тогда" мозг сломаешь...
слабо было написать "НеЗаполнятьНастройкиПриОткрытии = Ложь" или просто
"НЕ НеЗаполнятьНастройкиПриОткрытии"?
А еще лучше переменную изначально назвать "ЗаполнятьНастройкиПриОткрытии"
16. Сергей Чуян (Собеседник) 14.03.10 01:01
(15) а в чем проблема? Нормальное условие.

Условие "Если НЕ <ВозможноБулево> Тогда..."
вызовет исключение при несоответствии типа
Условие "Если НЕ <ВозможноБулево> = Истина Тогда..."
будет работать при любых типах "ВозможноБулево"

У меня тоже так сложилось - использую только "=" и условия на истину.
Все остальное в иначе.
Как по мне - так "читать" легче :)
TeMochkiN; +1 Ответить
17. Алексей (Alav) 11.01.11 19:18
Не хватает поиск по РБ и поиск по измерениям и субконтам
18. Алексей Стрижко (I am) 01.07.11 10:25
Не смог при запуске выбрать "Регистр сведений: Расчет списания расходов будущих периодов" - нет в списке регистров.
19. Сергей Ожерельев (Поручик) 01.10.11 17:15
И мне пригодилось спустя пять лет..
20. dgamelya (revril) 10.10.11 11:31
спасибо))
мега крутая обработка)))
ооочень помогла)))
21. alex alex (temp2003) 08.11.11 13:31
Классная штука! У нас распределенная база данных и соответствующий обмен... Косяки всегда есть... А это обработка здорово все подчищает... Нам помогает ))))
22. Сергей Растатурин (tristarr1) 21.11.11 14:51
Полезная вещь. разобрал как работает кое-что для себя понял.
23. Svetlana_K (Svetlana_K) 20.12.11 16:03
Спасибо! Внедрение системы. Приходится перезаливать данные . Здорово помогает, подчищает разные косяки.
24. Виктор Гавриков (vitekryazan) 26.01.12 14:22
25. Павел Иванов (Foximus) 30.01.12 20:21
Спасибо... очень полезная штука )
26. Алмаз Алмаз (yzk-almaz) 09.02.12 08:32
Подскажите как ее запустить чтоб она сделала обработку, ни как не могу понять.
27. Дмитрий Глух (IronDemon) 09.02.12 12:22
(26) yzk-almaz, В чем именно проблема?
28. Jenya78 (Jenya78) 21.02.12 00:25
При снятии пометок ошибка
{Форма.Форма.Форма(275)}: Поле объекта не обнаружено (Значение)
СписокРегистров.Значение.ЗаполнитьПометки(Ложь);
29. Stepan Shipitsyn (Stepan_1c) 04.04.12 07:30
спасибо за сэкономленное время =)
30. Иван (Sairys) 05.05.12 15:32
Интересная штука нужно попробовать поискать в своей базе
31. Иван (Sairys) 05.05.12 15:39
Обработчик прерывания было бы неплохо поставить
32. Рамиль Ибрагимов (s1koka) 29.05.12 09:18
Хватай + за труд. всё работает. Спасибо
33. Иван Тарнавский (vaniiok) 11.07.12 12:07
Всё работает! Красивый запрос.. спасибо
34. Дмитрий Леонов (Psylocibine) 25.07.12 10:53
Проверю. Похоже, то что нужно, ибо объекты восстанавливать на надо, а движения болтаются)
35. Ксения Яценко (Holly-khv) 01.07.13 09:20
Спасибо! Вовремя нашлась эта обработка! Сэкономило кучу времени!
36. Владимир Кузнецов (mr.Kot) 09.10.13 13:57
На не типовых конфигурациях вываливается в ошибку, когда пытается проверить на тип документа "КорректировкаДвижений" как-то так называется. Возможно, эту проверку стоит включить в Попытка Исключение.
37. Юрий Смирнов (xacan1) 10.10.13 10:11
(36) mr.Kot, Ругается так же на тип документа "КорректировкаЗаписейРегистровНакопления" (или сведений) в типовой УТ 10.3. Просто раньше такие документы были, а теперь один единый - "КорректировкаЗаписейРегистров". Просто исправить надо имя регистратора в тексте и никаких попыток.
38. Сергей Сторожев (ssa) 03.05.14 00:22
39. Сергей Сторожев (ssa) 03.05.14 00:22
Отдельное спасибо за бесплатность )
40. Виктор Маркевич (warrior1985) 24.06.14 12:14
В регистрах, в регистрах.. Скачал, но регистров БУХГАЛТЕРИИ там и в помине нет. А жаль. Нужно писать конретнее дабы люди не тратили время впустую и стартмани.
41. Дядя Федор (ufedor) 18.08.14 14:50
Спасибо, обработка пригодилась.

Автору: будете ли обновлять обработку?

В наличии минимум 2 проблемы:
- при незаполненном периоде отчет всегда выдает пустой результат (переработать условия в запросе)
- необходимо добавить проверку на наличие документа КорректировкаРегистров. Например так:

ИсключитьТип = Неопределено;
Если Метаданные.Документы.Найти("КорректировкаЗаписейРегистров")<>Неопределено Тогда
ИсключитьТип = Новый Тип("ДокументСсылка.КорректировкаЗаписейРегистров");
ИначеЕсли Метаданные.Документы.Найти("КорректировкаЗаписейРегистровНакопления")<>Неопределено Тогда
ИсключитьТип = Новый Тип("ДокументСсылка.КорректировкаЗаписейРегистровНакопления");
КонецЕсли;
//далее проверять на исключитьтип
...Показать Скрыть


И одно пожелание
- добавить в обработку регистры бухгалтерии и регистры расчетов
42. Иван Лазаренко (GH0STexe) 28.11.14 14:16
43. Alex Necro (alexnecro) 09.12.14 07:31
А как насчет записей у которых регистратор не "Объект не найден", а вообще пусто?
44. Elena777 (elena777) 25.03.15 16:25
45. Артём Артёмов (TeMochkiN) 08.07.15 12:44
(43) alexnecro, такое возможно? Если регистр подчинен регистратору, то такого по-идее не должно быть.

А вообще у меня вопрос, ТиИ базы разве не дает тот же эффект с правильно выбранными настройками? Или в 2009 году платформа такого не умела? =/
46. Валентина * (baby) 27.07.15 11:55
Спасибо огромное. Очень помогло.
47. С Л (Grey Fox) 18.04.16 10:04
48. Артем Слесарев (kidwell) 20.09.16 14:30
49. Сергей Старых (tormozit) 20.09.16 14:42
В подсистеме "Инструменты разработчика"
1. Есть инструмент "Подбор и обработка объектов", который позволяет отобрать и удалить строки выбранного регистра по всем битым ссылкам регистраторов.
2. Есть инструмент "Поиск битых ссылок", позволяющий найти все битые ссылки нужных типов во всех таблицах, а затем передать для обработки строки выбранной таблицы с битыми ссылками в инструмент "Подбор и обработка объектов".
50. Денис (Den_D) 27.09.16 15:17
Слишком сложный итоговый запрос, если сделать поиск по всем регистрам. СУБД не может выполнить такой запрос.
51. Сергей Старых (tormozit) 27.09.16 15:23
(50) Да, многие забивают на эту проблему, но не (49). Там работает без проблем на огромных конфигурациях.
TeMochkiN; olgerd666; +2 Ответить
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа