IE2017

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

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

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

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

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

Наименование Файл Версия Размер
УдалитьБитыеЗаписиИзРегистров
.1239181573 13,95Kb
25.09.09
1984
.1239181573 13,95Kb 1984 Скачать

См. также

Комментарии
1. Shaman (Shaman342) 08.04.09 14:01 Сейчас в теме
а то это за формат у файлика -
2009.04.08 UdalitjBityeZapisiIzRegistrovSvedenijNakopl?
расширение какое и для какой 1С?
2. Андрей Григорьев (Borisych) 502 08.04.09 14:42 Сейчас в теме
Имя файла обрезалось 55 символами
буду делать короткие имена
Обработка для 8.1, обновил файл
3. Serj (Serj1C) 463 08.04.09 15:56 Сейчас в теме
А она применима для РБД, если документ удалился, а движения остались?
Думаю, что да. Модуль под паролем ((
Diamante; +1 Ответить
4. Андрей Григорьев (Borisych) 502 08.04.09 16:11 Сейчас в теме
убивает записи где в поле регистратор видишь надпись типа <Объект не найден : и GUID>
сейчас нет примера показать
5. russell82 (Russell82) 17.04.09 09:53 Сейчас в теме
Пароль для просмотра модуля???))))
6. _TINA (_TINA) 18.04.09 09:46 Сейчас в теме
а что в этом, простите, сложного? коду ей богу меньше чем на страницу.
7. Екатерина (Катя84) 2 23.04.09 14:10 Сейчас в теме
сама себе такое писала. Скачала, потому что было интересно посмотреть реализацию. Зачем пароль то?))
8. Валерий (savageRrr) 24.04.09 13:54 Сейчас в теме
{ВнешняяОбработка.УдалитьБитыеЗаписиИзРегистровСведенийНакопления(51)}: Ошибка при вызове метода контекста (Выполнить): {(6, 2)}: Неоднозначное поле "Регистр.Регистратор.Номер"
<<?>>Регистр.Регистратор.Номер ЕСТЬ NULL
по причине:
{(6, 2)}: Неоднозначное поле "Регистр.Регистратор.Номер"
<<?>>Регистр.Регистратор.Номер ЕСТЬ NULL
9. Андрей Григорьев (Borisych) 502 27.04.09 23:14 Сейчас в теме

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

Процедура УдалитьБитыеСсылкиРН(ИмяРегистра)
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Регистр.Регистратор
|ИЗ
| РегистрНакопления." + ИмяРегистра + " КАК Регистр
|ГДЕ
| Регистр.Регистратор.Номер ЕСТЬ NULL
|
|СГРУППИРОВАТЬ ПО
| Регистр.Регистратор");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НЗ = РегистрыНакопления[ИмяРегистра].СоздатьНаборЗаписей();
НЗ.Отбор.Регистратор.Установить(Выборка.Регистратор);
НЗ.Записать();
КонецЦикла;
КонецПроцедуры

Процедура УдалитьБитыеСсылкиРС(ИмяРегистра)
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Регистр.Регистратор
|ИЗ
| РегистрСведений." + ИмяРегистра + " КАК Регистр
|ГДЕ
| Регистр.Регистратор.Номер ЕСТЬ NULL
|
|СГРУППИРОВАТЬ ПО
| Регистр.Регистратор");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НЗ = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей();
НЗ.Отбор.Регистратор.Установить(Выборка.Регистратор);
НЗ.Записать();
КонецЦикла;
КонецПроцедуры
10. Андрей Григорьев (Borisych) 502 27.04.09 23:17 Сейчас в теме
(8)
Регистратор в этом случае не документ, обработка корректно отрабатывает битые ссылки для РС, подчиненных регистраторам - документам, а у них номер есть :)
11. Алексей Захаров (almas) 188 05.05.09 08:39 Сейчас в теме
Не ребята демократы. С закрытым кодом это все "НАХ". Слишком старшные последствия подобных чисток могут быть.ТОЛЬКО "-"
buriZa; Andrsan; mamanelli; stss; kraft; Vanbens; +6 1 Ответить
12. Андрей Григорьев (Borisych) 502 14.06.09 22:59 Сейчас в теме
Добавлена чистка регистров бухгалтерии
13. Марьяна Луцик (Marilucik) 26.06.09 15:59 Сейчас в теме
А если в поле в поле регистратор нет надпись типа <Объект не найден : и GUID>
- а пусто. Что тогда делать?
14. Андрей Григорьев (Borisych) 502 27.06.09 23:29 Сейчас в теме

Марьяна!
Поподробнее опишите ситуацию, пожалуйста!
Какой регистр, что происходит при попытке открыть регистратор (дабл-клик по полю), скриншот выложите
15. Влад Помыткин (yahoo_VK) 29.06.09 05:51 Сейчас в теме
УТ (1.3.7.9) выдал ошибку:
{Форма.Форма(35)}: Ошибка при вызове метода контекста (Записать): Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Партии товаров на складах (управленческий учет))
НЗ.Записать();
по причине:
Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Партии товаров на складах (управленческий учет))
16. Андрей Григорьев (Borisych) 502 29.06.09 12:52 Сейчас в теме
(15) Странно, базы УТ с битыми ссылками у меня нет, но запрос по всем регистраторам очистил регистр без ошибок. Если не разрешите Вашу ситуацию - могу выслать обработку для удаления всей лишней информации, а то что получится после зачистки - присылайте мне для анализа
17. Марьяна Луцик (Marilucik) 29.06.09 18:25 Сейчас в теме
Регистратор имеет идентификатор равен : 00000000-0000-0000-0000-000000000000
Обробка дает ошибку:
{Форма.Форма(73)}: Ошибка при вызове метода контекста (Записать): Ошибка записи! Не установлен отбор по регистратору (Регистр бухгалтерии: Журнал проводок (налоговый учет))
НЗ.Записать();
по причине:
Ошибка записи! Не установлен отбор по регистратору (Регистр бухгалтерии: Журнал проводок (налоговый учет))
18. Андрей Григорьев (Borisych) 502 30.06.09 01:50 Сейчас в теме
(17) В моей правктике пока такого не встречалось, но предполагаю, что проводилось тестирование и исправление с переключателем "При наличии ссылок на несуществующие объекты" в положении "Очищать ссылки"
19. Марьяна Луцик (Marilucik) 30.06.09 09:55 Сейчас в теме
Да проводилось проводилось тестирование и исправление, но с переключателем "При наличии ссылок на несуществующие объекты" в положении "Не изменять". Как можно решить єту проблему?
20. Андрей Григорьев (Borisych) 502 30.06.09 11:20 Сейчас в теме
Написать обработку для выявления таких записей и удалить
Если записей не очень много - могу выслать вам универсальную обработку удаления объектов ИБ, дату зададите = дате битой записи регистра
Если много - и все типа 00000000-0000-0000-0000-000000000000 - нужно найти способ выбрать все подобные записи, очистить их, перепровести документы за период появления записей
21. Марьяна Луцик (Marilucik) 30.06.09 12:33 Сейчас в теме
Обработка сервис – групповое изменение справочников и документов выдает ошибку на этапе - ….ПолучитьОбъект(). Объект не выбран. Если маете другую обработку, которая справляетесь с этим заданием вышлите, пожалуйста!
22. Андрей Григорьев (Borisych) 502 30.06.09 12:45 Сейчас в теме
23. Марьяна Луцик (Marilucik) 30.06.09 12:52 Сейчас в теме
24. Дмитрий Анкудинов (Diamante) 87 17.07.09 12:16 Сейчас в теме
По чему модуль под паролем?
При закрытом модуле есть вероятность нахождения вируса в модуле, а значит запускать такую обработку опасно.
А так же считаю не красиво заставлять пользователя голосовать при закрытии.

С удовольствием поставил бы "МИНУС".
25. Андрей Григорьев (Borisych) 502 21.07.09 20:38 Сейчас в теме
Весь код выложен в этих комментах, см. выше
Ничего лишнего в коде нет, гарантирую
Будет время выложу открытую версию
26. Андрей Григорьев (Borisych) 502 21.07.09 20:41 Сейчас в теме
Заодно надо реализовать корректную отработку регистраторов - как документов, так и справочников
27. Алексей Захаров (almas) 188 06.08.09 18:01 Сейчас в теме
Borisych - приношу свои извинения. Про комменты не знал/не понял. Несколько раз качал вашу обработку. Видимо неудачно. "АХРЕНИТЕЛЬНО ВЗЛЕТЕТЬ" -Спасибо за критику, но от своих слов не откажусь под страхом смерти.Преценденты были. Поэтому ко всему с закрытым кодом отношусь только отрицательно.
28. itt (itt) 22.09.09 09:41 Сейчас в теме
фигня полная! отбора регистров нет, мусолила базу полчаса потом вывалилась с ошибкой!
29. Андрей Григорьев (Borisych) 502 22.09.09 11:52 Сейчас в теме
(28) При открытии сформируй список регистров - проставь флажки - и используй обработку помеченных
программировать 10 минут
30. Антон (psychotoad) 07.10.11 11:08 Сейчас в теме
Простая и полезная штука!
31. Паха (VapPaha) 11.10.11 07:38 Сейчас в теме
Спасибо, реально помогало.
32. Паха (VapPaha) 11.10.11 07:39 Сейчас в теме
помогает для восстановления обмена, повторная чистка
33. Сонечка (esa35) 75 10.11.11 10:41 Сейчас в теме
спасибо, пригодилось для своей разработки
34. Irina Тускова (RG84) 05.12.11 16:07 Сейчас в теме
спасибо, пригодилось при повторной настройке обмена данными УТ-БП
Borisych; +1 Ответить
35. Erbolat Akkusov (Banzai79) 27.12.11 09:39 Сейчас в теме
Спасибо за обработку, хорошо работает при малых данных, как можно ускорить процесс для больших данных кол-во записей может превышать больше 10 000 записей
37. Maksim Titov (Maks_Payn) 15.01.12 15:50 Сейчас в теме
Спасибо! Хорошая обработка!
38. Андрей Григорьев (Borisych) 502 16.01.12 08:38 Сейчас в теме
(37) Maks_Payn, пожалуйста :)
Maks_Payn; +1 Ответить
40. Герман Юсупов (fluid) 60 16.04.12 00:27 Сейчас в теме
Спасибо. съэкономил время.
41. Андрей Глушков (velox) 16.04.12 00:53 Сейчас в теме
Спасиб! отработала корректно, время заняло немного, всем доволен!
42. Денис Иванычев (DenIv) 22.08.12 12:34 Сейчас в теме
2 (9) Автор, а разве в регистрах сведний с режимом записи не подчиненном регистратору не может быть битых сылок?
В противном случае пишите "Удалиение битых ссылок ТОЛЬКО по регистрам подчиненным регистратору"
43. Денис Иванычев (DenIv) 22.08.12 12:36 Сейчас в теме
Автор, здаестя мне я видел этот код в публикации http://infostart.ru/public/82878/
44. Андрей Григорьев (Borisych) 502 23.08.12 01:14 Сейчас в теме
(43) DenIv, http://infostart.ru/public/19574/ - не кажется, что публикация 19574 была опубликована гораздо раньше чем 82878???
45. Денис Иванычев (DenIv) 23.08.12 09:27 Сейчас в теме
не увидел ответа на вопрос из (42)
46. Андрей Григорьев (Borisych) 502 23.08.12 10:19 Сейчас в теме
(45) DenIv, и не увидишь. в данный момент не интересно заниматься обработкой трехлетней давности
47. Денис Иванычев (DenIv) 23.08.12 11:00 Сейчас в теме
(46) Borisych, не поверишь - не интересно. посыл был следующий: в описании обработки написать, что удаляет она ссылки ТОЛЬКО по регистрам с режимом записи - подчинен регистратору и не вводить народ в заблуждение и не важно сколько лет поделке.
48. Петр Шаталов (3sf) 05.03.13 21:40 Сейчас в теме
49. Andrey (RubikJan) 78 17.09.14 05:46 Сейчас в теме
{Форма.Форма(50)}: Ошибка при вызове метода контекста (Выполнить): {(6, 2)}: Неоднозначное поле "Регистр.Регистратор.Номер"
<<?>>Регистр.Регистратор.Номер ЕСТЬ NULL
Выборка = Запрос.Выполнить().Выбрать();
УТ 10.3.7.9
50. Иванов Иван (rozan) 08.05.15 12:53 Сейчас в теме
Огромное спасибо!!! Все получилось с первого раза.
Столько времени было потеряно зря.
51. Расул Хадисов (lambert) 07.10.15 15:54 Сейчас в теме
А, как это лечится?

{Форма.Форма.Форма(50)}: Ошибка при вызове метода контекста (Выполнить)
Выборка = Запрос.Выполнить().Выбрать();
по причине:
{(6, 2)}: Неоднозначное поле "Регистр.Регистратор.Номер"
<<?>>Регистр.Регистратор.Номер ЕСТЬ NULL
Оставьте свое сообщение