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




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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

 

 

 

 

 

 

 

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

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

 

 

35 Comments

  1. larisab

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

    Reply
  2. kondrashka

    НА УПП 8.1.14.72(1.2.23.2) дает ошибку Поле не найдено «Регистр.ТочкаМаршрута.Представление» и Не может быть сформировано условие: ВариантыВстроенныхАлгоритмовРасчетаЗарплаты. Без оценки! Извини.

    Reply
  3. almas

    kondrashka — У меня для проверки ЗиУП версии 2.1. КАКИЕ ТИПЫ СМОГ СОБРАТЬ ДЛЯ ПРОВЕРКИ- те и прописал. Пришли что за тип измерение Точкамаршрута. Поправлю.

    Reply
  4. DitriX

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

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

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

    хотя может где то есть готовое? никто не кинет в меня линком?

    Reply
  5. almas

    >Т.е. по идеи их можно собирать в один нормальный документ, ну и в крайнем случае уже его удалять с движениями. —готовое встречалось. Ищи на инфостате

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

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

    Reply
  6. mikl79

    Классная вещь, однозначно плюс

    Reply
  7. Марита Х

    Классная вещь, однозначно плюс

    Reply
  8. Borisych

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

    Код открыт уже очень давно, сначала код был выложен в комментах, потом и файл обновлен. Не пишите неправду на самом видном месте!

    И по поводу «АХРЕНИТЕЛЬНО ВЗЛЕТЕТЬ» — слишком громко кричать тоже не хорошо

    Reply
  9. almas

    Borisych — приношу свои извинения. Про комменты не знал/не понял. Несколько раз качал вашу обработку. Видимо неудачно. «АХРЕНИТЕЛЬНО ВЗЛЕТЕТЬ» -Спасибо за критику, но от своих слов не откажусь под страхом смерти.Преценденты были. Поэтому ко всему с закрытым кодом отношусь только отрицательно.

    Reply
  10. jk3

    За задумку +, за реализацию —

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

    А если у меня не стоит галочка «Запрет незаполненных значений» и пустое значение там и должно быть по задумке, обработка мне так полбазы перефигачит.

    Reply
  11. Rusik49

    Спасибо за обработку.

    Reply
  12. almas

    jk3 — ты просто умница. «НЕ для ДУРАКОВ. Т.к. откатов нет» — дело в том, что на моей памяти 30% регистров постоены ошибочно. Т.е. в свое время не правильно регистр построили — галочка «Запрет незаполненных значений» не установлена. Через полгода косяк вылез. Критика очень правильная. Но принцип торговли — «Если ждать когда продукт станет совершенным — продавать будет нечего».(Типа идею выложил, собираем критику, и стараемся в дальнейшем доработать выбрав для себя наиболее рациональную позицию.) Всем не угодишь!!!.

    Reply
  13. Borisych

    (9) Все хорошо Алексей, наверное есть не бескорыстные люди и злые шутники, прячущие в скрытом коде вин-чихи и тому подобные пакости

    Reply
  14. lion11

    (12) Согласен с jk3 в (10). Не все регистры построены не правильно. Для регистров накоплений возможно и верно, но если это регистр сведений — то вполне возможно не применение «Запрет незаполненных значений». В типовой БП есть несколько регистров, которые так специально построены, например МетодыРаспределенияКосвенныхРасходовОрганизаций, ГраницыЗапретаИзмененияДанных, НастройкиПравДоступаПользователей, СчетаУчетаНоменклатуры…

    Это к тому, что в Вашем отчете это вылезает как «Пустая или битая ссылка» и надо потратить доп. время на проверку, а оно и так правильно.

    Тем не менее «+»: полезная штука.

    Reply
  15. lega

    У меня на УТ10.3 выдаёт ошибку: Неверный формат хранилища данных ‘file://E:/ZachistkaRegistrovotbityhSsylok.epf’…

    Reply
  16. lega

    Второй раз скачал удачно. Теперь при полном анализе базы выдаёт ошибку: {Форма.Форма(472)}: Ошибка при вызове метода контекста (Выполнить): {(6, 6)}: Неоднозначное поле «Регистр.Регистратор.Представление»

    ГДЕ <<?>>Регистр.Регистратор.Представление ЕСТЬ NULL

    колБит = Запрос.Выполнить().Выбрать().Количество();

    по причине:

    {(6, 6)}: Неоднозначное поле «Регистр.Регистратор.Представление»

    ГДЕ <<?>>Регистр.Регистратор.Представление ЕСТЬ NULL

    как её исправить?

    Reply
  17. bmnt

    В регистре накопления в поле регистратор у одной записи — пустая ссылка.

    Через Вашу обработку он находит эту запись но при удалении выводит ошибку:

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

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

    Как удалить эту запись?

    Reply
  18. putilin

    Что-то у меня для УТП 1.1.3.3 для Украины вылетает

    Reply
  19. rasswet

    {Форма.Форма(472)}: Ошибка при вызове метода контекста (Выполнить): {(6, 125)}: Поле не найдено «Регистр.ТочкаМаршрута.Представление»

    ГДЕ Регистр.Задача.Представление ЕСТЬ NULL Или Регистр.БизнесПроцесс.Представление ЕСТЬ NULL Или Регистр.ТочкаМаршрута.<<?>>Представление ЕСТЬ NULL Или Регистр.НомерЦикла ЕСТЬ NULL

    колБит = Запрос.Выполнить().Выбрать().Количество();

    по причине:

    {(6, 125)}: Поле не найдено «Регистр.ТочкаМаршрута.Представление»

    ГДЕ Регистр.Задача.Представление ЕСТЬ NULL Или Регистр.БизнесПроцесс.Представление ЕСТЬ NULL Или Регистр.ТочкаМаршрута.<<?>>Представление ЕСТЬ NULL Или Регистр.НомерЦикла ЕСТЬ NULL

    это на УТ 10.3

    Reply
  20. kush86

    Не могу понять как пользоваться обработкой.

    Битые ссылки находит в предварительном просмотре, а удалить Кнопкой «Выполнить чистку по записям в таблице» не получается.

    Подскажите как можно удалить?

    Reply
  21. ChinChin

    Блин, ошибка на ошибке… Очень кривая обработка…

    Reply
  22. Alexez

    Второй раз скачал удачно. Теперь при полном анализе базы выдаёт ошибку: {Форма.Форма(472)}: Ошибка при вызове метода контекста (Выполнить): {(6, 6)}: Неоднозначное поле «Регистр.Регистратор.Представление»

    ГДЕ <<?>>Регистр.Регистратор.Представление ЕСТЬ NULL

    колБит = Запрос.Выполнить().Выбрать().Количество();

    по причине:

    {(6, 6)}: Неоднозначное поле «Регистр.Регистратор.Представление»

    ГДЕ <<?>>Регистр.Регистратор.Представление ЕСТЬ NULL

    тоже самое помогите разобраться!

    Reply
  23. Alexez

    Все всем спасибо обработка очень помогла, автору зачет за идею. Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!Спасибо!

    Reply
  24. alida555

    Как пользоваться ???? Выдает ошибку {Форма.Форма.Форма(553)}: Поле объекта не обнаружено (РежимЗаписи) если ПерваяСтрока.РежимЗаписи = «ПодчиненРегистратору» тогда…… Как быть …очень нужно ….

    Reply
  25. almas

    alida555, Писалось достаточно давно. Работала без вопросов, Сегодня постараюсь выложить более полное описание

    Reply
  26. alida555

    Может обработка не подходит для ЗУП 8.2 ????

    Reply
  27. alida555

    (27) пожалуйста помогите разобраться ..почему не работает

    Reply
  28. skelelaz

    до сих пор не исправлено

    Reply
  29. Mike1978

    1) почему незаслуженно обошли стороной регистры бухгалтерии?

    2) неправильно в условии запроса писать «Номер = NULL». Такое условие не работает. Надо писать «Номер ЕСТЬ NULL»

    Reply
  30. almas

    (31) Mike1978, простите — разрабатывал в 2009 году. Тестировал только на ЗиУП, т.к. в то время не было возможности проверить на бухгалтерии.

    В ближайшее время поправлю.

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

    Reply
  31. kembrik

    (32)

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

    На «СоответствияОбъектовИнформационныхБаз» обработка искренне считает что «Объект не найден» по измерению УникальныйИдентификаторИсточника (тип ЛюбаяССылка) отсутствует, хотя смотрю на них «невооруженным взглядом». А жаль, придётся видимо самому писать

    Reply
  32. serg0776

    Да скачал Мани содрали, обработка не работает

    Выдает ошибку {Форма.Форма.Форма(553)}: Поле объекта не обнаружено (РежимЗаписи) если ПерваяСтрока.РежимЗаписи = «ПодчиненРегистратору» тогда

    Reply
  33. user611515_akorneev

    (8) Не работает ссылка на скачивание

    Reply
  34. user611515_akorneev

    Не работает ссылка на скачивание

    Reply
  35. user611515_akorneev

    А как собственно заполнить табличку «только битыми ссылками»? Можно, конечно отбор «не в списке» выбрать, но это же издевательство над человеком…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *