gifts2017

Проверка и чистка регистров от «Битых ссылок»

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

Еще одна обработка для чистки регистров от битых сылок.Код открыт. Имеет анализ конфигурации.ПО ЗАДУМКЕ УНИВЕРСАЛЬНА и должна работать на всех конфигурациях.  

 

Проверка и чистка регистров от «Битых ссылок»

Использовать осторожно. Бездумно  можно удалить лишние записи.

Можно отобрать не только "битые", но и  пустые записи, Т.е. "не обязательные к заполнению", это следует  учитывать при  использовании данной обработки.


Что подтолкнуло:
А)У нас есть распределенка, самописка. Стал сталкиваться с тем, что при тестировании в конфигураторе вылезает куча записей с пустыми измерениями.
Б) В 1С ЗиУП в регистрах накопления изредка появляются записи без регистратора.
версия 1.1 исправлена ошибка чистки регистров, подчиненных регистратору после простотра через табл. просмотра.


Измененния Версии 2.0
-Изменен дизайн обработки.

-Реализован произвольный отбор записей. Сделано на построителе отчетов.(аналог 19984)

Не большие сервисные  функции:

-Включение итогов и выключение итогов регистров накопления ( вечно когда нужно- ненайдешь)

-Открытие формы списка  выбранного регистра

-Просмотр кода запроса по выборки "Битых" записей.

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

При анализе базы выполняется второй режим.

Извините  временно снимал с публикации, т.к. при полном анализе базы вывыливалась в ошибку.

Изменения Версии 2.1 верися для 8.2

- анализ базы  выполнется  в попытке, выводит сообщение:

 Регистр ... может быть обработан

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

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

 

 

 

 

 

 

 

 

 



Интересные моменты работы с регистрами:
http://infostart.ru/projects/651/ -«Поиск и удаление неопределенных регистраторов ("Объект не найден") в регистрах»
http://infostart.ru/projects/5004/ -«Универсальная обработка поиска битых ссылок в регистрах, справочниках и документах.»
http://infostart.ru/public/19984/- «Очистка регистров сведений с отбором».

http://infostart.ru/projects/3807/ - «Универсальная обработка очистки регистров сведений, накопления и бухгалтерии от битых ссылок».

 

 

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

Наименование Файл Версия Размер Кол. Скачив.
Проверка и чистка регистров от битых ссылок
.epf 30,52Kb
19.02.11
522
.epf 30,52Kb 522 Скачать

См. также

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

Комментарии

1. larissa builova (larisab) 02.08.09 19:57
Шикарная штука! На стандартной демо нашла кучу битых ссылок! Удобная, хорошо сделана, заботливо выложен текст запроса на закладке предвар.просмотра, и полный анализ базы, выведенный в макет с количеством ссылок. Все удобно, развивай дальше. Удачи!
2. Ольга (kondrashka) 03.08.09 13:36
НА УПП 8.1.14.72(1.2.23.2) дает ошибку Поле не найдено "Регистр.ТочкаМаршрута.Представление" и Не может быть сформировано условие: ВариантыВстроенныхАлгоритмовРасчетаЗарплаты. Без оценки! Извини.
3. Алексей Захаров (almas) 03.08.09 22:03
kondrashka - У меня для проверки ЗиУП версии 2.1. КАКИЕ ТИПЫ СМОГ СОБРАТЬ ДЛЯ ПРОВЕРКИ- те и прописал. Пришли что за тип измерение Точкамаршрута. Поправлю.
4. Дмитрий Шерстобитов (DitriX) 04.08.09 16:03
я вот тут думаю для распределенки написать не очистка, а восстановление. Если юзать стандартное восстановление, то оно создает кучу левых документов, ну на каждую запись и пустых при том.
Но в регистре, например товары на складах, если все данные заполнения документа, как то Табличная часть Товары, контрагент, договор, дата и т.д.
Т.е. по идеи их можно собирать в один нормальный документ, ну и в крайнем случае уже его удалять с движениями. а не просто удалять запись.

хотя может где то есть готовое? никто не кинет в меня линком?
5. Алексей Захаров (almas) 04.08.09 21:42
>Т.е. по идеи их можно собирать в один нормальный документ, ну и в крайнем случае уже его удалять с движениями. --готовое встречалось. Ищи на инфостате
Вернуть потерянный докумет по идее просто.Создаешь новый и устанавливаешь в него Битую ссылку. и записываешь. Док будет пустой, но при распроведении сам все движения удалит. Хотел сделать - руки не дошли.

В один документ по моему собрать невозможно, т.к. ссыки разные.
6. Михаил (mikl79) 05.08.09 15:47
Классная вещь, однозначно плюс
7. Марита бух (Марита Х) 06.08.09 12:59
Классная вещь, однозначно плюс
8. Андрей Григорьев (Borisych) 06.08.09 13:07
Насчет http://infostart.ru/projects/3807/ - «Универсальная обработка очистки регистров сведений, накопления и бухгалтерии от битых ссылок».
Код открыт уже очень давно, сначала код был выложен в комментах, потом и файл обновлен. Не пишите неправду на самом видном месте!
И по поводу "АХРЕНИТЕЛЬНО ВЗЛЕТЕТЬ" - слишком громко кричать тоже не хорошо
9. Алексей Захаров (almas) 06.08.09 17:25
Borisych - приношу свои извинения. Про комменты не знал/не понял. Несколько раз качал вашу обработку. Видимо неудачно. "АХРЕНИТЕЛЬНО ВЗЛЕТЕТЬ" -Спасибо за критику, но от своих слов не откажусь под страхом смерти.Преценденты были. Поэтому ко всему с закрытым кодом отношусь только отрицательно.
10. Евгений (jk3) 07.08.09 09:26
За задумку +, за реализацию --

Что за бред проверять на битость с помощью "Регистр1.Измерние1.Представление ЕСТЬ NULL" ?

А если у меня не стоит галочка "Запрет незаполненных значений" и пустое значение там и должно быть по задумке, обработка мне так полбазы перефигачит.
11. Анна (Rusik49) 07.08.09 18:27
12. Алексей Захаров (almas) 10.08.09 08:33
jk3 - ты просто умница. "НЕ для ДУРАКОВ. Т.к. откатов нет" - дело в том, что на моей памяти 30% регистров постоены ошибочно. Т.е. в свое время не правильно регистр построили - галочка "Запрет незаполненных значений" не установлена. Через полгода косяк вылез. Критика очень правильная. Но принцип торговли - "Если ждать когда продукт станет совершенным - продавать будет нечего".(Типа идею выложил, собираем критику, и стараемся в дальнейшем доработать выбрав для себя наиболее рациональную позицию.) Всем не угодишь!!!.
13. Андрей Григорьев (Borisych) 10.08.09 14:53
(9) Все хорошо Алексей, наверное есть не бескорыстные люди и злые шутники, прячущие в скрытом коде вин-чихи и тому подобные пакости
15. Ден (lion11) 25.08.09 09:44
(12) Согласен с jk3 в (10). Не все регистры построены не правильно. Для регистров накоплений возможно и верно, но если это регистр сведений - то вполне возможно не применение "Запрет незаполненных значений". В типовой БП есть несколько регистров, которые так специально построены, например МетодыРаспределенияКосвенныхРасходовОрганизаций, ГраницыЗапретаИзмененияДанных, НастройкиПравДоступаПользователей, СчетаУчетаНоменклатуры...
Это к тому, что в Вашем отчете это вылезает как "Пустая или битая ссылка" и надо потратить доп. время на проверку, а оно и так правильно.
Тем не менее "+": полезная штука.
16. lega (lega) 30.09.09 13:57
У меня на УТ10.3 выдаёт ошибку: Неверный формат хранилища данных 'file://E:/ZachistkaRegistrovotbityhSsylok.epf'...
17. lega (lega) 01.10.09 12:49
Второй раз скачал удачно. Теперь при полном анализе базы выдаёт ошибку: {Форма.Форма(472)}: Ошибка при вызове метода контекста (Выполнить): {(6, 6)}: Неоднозначное поле "Регистр.Регистратор.Представление"
ГДЕ <<?>>Регистр.Регистратор.Представление ЕСТЬ NULL
колБит = Запрос.Выполнить().Выбрать().Количество();
по причине:
{(6, 6)}: Неоднозначное поле "Регистр.Регистратор.Представление"
ГДЕ <<?>>Регистр.Регистратор.Представление ЕСТЬ NULL

как её исправить?
18. egor@stroysnami.com egor@stroysnami.com (bmnt) 21.10.09 22:43
В регистре накопления в поле регистратор у одной записи - пустая ссылка.
Через Вашу обработку он находит эту запись но при удалении выводит ошибку:

"Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Путевые листы)"

но он устанавливается (правда пустой ссылкой)

Как удалить эту запись?
19. Юрий (putilin) 29.10.09 15:41
Что-то у меня для УТП 1.1.3.3 для Украины вылетает

20. rasswet (rasswet) 03.12.09 15:20
{Форма.Форма(472)}: Ошибка при вызове метода контекста (Выполнить): {(6, 125)}: Поле не найдено "Регистр.ТочкаМаршрута.Представление"
ГДЕ Регистр.Задача.Представление ЕСТЬ NULL Или Регистр.БизнесПроцесс.Представление ЕСТЬ NULL Или Регистр.ТочкаМаршрута.<<?>>Представление ЕСТЬ NULL Или Регистр.НомерЦикла ЕСТЬ NULL
колБит = Запрос.Выполнить().Выбрать().Количество();
по причине:
{(6, 125)}: Поле не найдено "Регистр.ТочкаМаршрута.Представление"
ГДЕ Регистр.Задача.Представление ЕСТЬ NULL Или Регистр.БизнесПроцесс.Представление ЕСТЬ NULL Или Регистр.ТочкаМаршрута.<<?>>Представление ЕСТЬ NULL Или Регистр.НомерЦикла ЕСТЬ NULL
это на УТ 10.3
21. Геннадий (kush86) 07.01.10 13:42
Не могу понять как пользоваться обработкой.
Битые ссылки находит в предварительном просмотре, а удалить Кнопкой "Выполнить чистку по записям в таблице" не получается.
Подскажите как можно удалить?
22. Chin (ChinChin) 17.06.10 13:11
Блин, ошибка на ошибке... Очень кривая обработка...
23. Алексей Марченко (Alexez) 20.01.12 17:33
Второй раз скачал удачно. Теперь при полном анализе базы выдаёт ошибку: {Форма.Форма(472)}: Ошибка при вызове метода контекста (Выполнить): {(6, 6)}: Неоднозначное поле "Регистр.Регистратор.Представление"
ГДЕ <<?>>Регистр.Регистратор.Представление ЕСТЬ NULL
колБит = Запрос.Выполнить().Выбрать().Количество();
по причине:
{(6, 6)}: Неоднозначное поле "Регистр.Регистратор.Представление"
ГДЕ <<?>>Регистр.Регистратор.Представление ЕСТЬ NULL

тоже самое помогите разобраться!
24. Алексей Марченко (Alexez) 20.01.12 17:34
Все всем спасибо обработка очень помогла, автору зачет за идею. Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!
26. Елена П (alida555) 23.03.12 13:07
Как пользоваться ???? Выдает ошибку {Форма.Форма.Форма(553)}: Поле объекта не обнаружено (РежимЗаписи) если ПерваяСтрока.РежимЗаписи = "ПодчиненРегистратору" тогда...... Как быть ...очень нужно ....
27. Алексей Захаров (almas) 26.03.12 17:39
alida555, Писалось достаточно давно. Работала без вопросов, Сегодня постараюсь выложить более полное описание
28. Елена П (alida555) 27.03.12 09:19
Может обработка не подходит для ЗУП 8.2 ????
29. Елена П (alida555) 27.03.12 21:08
(27) almas,пожалуйста помогите разобраться ..почему не работает
30. Andrej Kuzmuk (skelelaz) 19.03.14 23:51
до сих пор не исправлено
31. Mike G (Mike1978) 10.02.15 05:00
1) почему незаслуженно обошли стороной регистры бухгалтерии?
2) неправильно в условии запроса писать "Номер = NULL". Такое условие не работает. Надо писать "Номер ЕСТЬ NULL"
32. Алексей Захаров (almas) 15.02.15 18:29
(31) Mike1978, простите - разрабатывал в 2009 году. Тестировал только на ЗиУП, т.к. в то время не было возможности проверить на бухгалтерии.
В ближайшее время поправлю.

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

33. Kembrik (kembrik) 27.10.15 16:50
(32) almas,

Скачал сегодня - думал "Сейчас как поудаляю ненайденные объекты по независимому регистру сведений" - ан нет

На "СоответствияОбъектовИнформационныхБаз" обработка искренне считает что "Объект не найден" по измерению УникальныйИдентификаторИсточника (тип ЛюбаяССылка) отсутствует, хотя смотрю на них "невооруженным взглядом". А жаль, придётся видимо самому писать
34. Сергей Кондратьев (serg0776) 28.10.15 15:10
Да скачал Мани содрали, обработка не работает

Выдает ошибку {Форма.Форма.Форма(553)}: Поле объекта не обнаружено (РежимЗаписи) если ПерваяСтрока.РежимЗаписи = "ПодчиненРегистратору" тогда
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа