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




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

 

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

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

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

Что подтолкнуло:
А)У нас есть распределенка, самописка. Стал сталкиваться с тем, что при тестировании в конфигураторе вылезает куча записей с пустыми измерениями.
Б) В 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 не будет опубликован. Обязательные поля помечены *