Поиск и восстановление битых ссылок (обычная и управляемая форма) 8.2-8.3

Администрирование - Поиск данных

Обработка для поиска и восстановления битых ссылок (Объект не найден). Адаптирована для конфигураций на обычных и управляемых формах 8.2 - 8.3

Описание

Адаптация популярной обработки восстановления объектов по GUID для управляемых форм.

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

В версии для 8.3.6:

Режим использования модальности: Не использовать.

Режим использования синхронных вызовов расширений платформы и внешних компонент: Не использовать.

Обновления

 
 Обновление 1.1.2 от 20.10.2017
 
 Обновление 1.1.1 от 08.10.2017
 
 Обновление 1.0.1 от 08.04.2017

P.S. Если материал вам помог, поблагодарите автора, поставив звездочку!

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

Наименование Файл Версия Размер
Поиск и восстановление битых ссылок 8.2 - 8.3.5
.epf 28,18Kb
20.10.17
16
.epf 1.1.2 28,18Kb 16 Скачать
Поиск и восстановление битых ссылок 8.3.6+
.epf 28,86Kb
20.10.17
47
.epf 1.1.2 28,86Kb 47 Скачать

См. также

Комментарии
1. Антон Пузырьков (user618695_ka) 1 15.05.17 10:10 Сейчас в теме
Подойдет ли для удаления битых ссылок на характеристику номенклатуры в регистре сведений "Цены номенклатуры"?
2. Максим Б (Xershi) 280 15.05.17 18:41 Сейчас в теме
(1) обработка не удаляет, а наоборот восстанавливает ссылку, т.е. создает видимый объект конфигурации на месте удаленного!
3. Олег Олег (vechiy) 29 19.07.17 11:00 Сейчас в теме
Не удалось записать объект - {ВнешняяОбработка.ПоискИВосстановлениеБитыхСсылок836.Форма.ФормаУправляемая.Форма(187)}: Ошибка при вызове метода контекста (Записать): Значение поля "Дата" не может быть пустой датой
4. Максим Б (Xershi) 280 19.07.17 11:26 Сейчас в теме
(3) обработка восстанавливает ссылку, но ошибки заполнения не устраняет. Сначала решите вопрос с датой, а только потом используйте обработку! Или лайфхак: запустите базу в обычном приложении, там можно не записывая в базу воссоздать элемент и поменять его реквизиты!
5. Олег Олег (vechiy) 29 19.07.17 11:33 Сейчас в теме
(4)
ну как бы непонятно в чем проблема
вопрос с датой решился добавлением строки
ИначеЕсли ТипОбъекта = "Документ" Тогда
НовыйОбъект = Документы[ИмяОбъекта].СоздатьДокумент();
НовыйОбъект.УстановитьСсылкуНового(Документы[ИмяОбъекта].ПолучитьСсылку(УникальныйИд));
новыйобъект.дата='20170510';

в результате создается пустой документ и проблему это никак не решает
я неправильно пользуюсь?
проблема следующая: зуп 3.1.2.293 платформа 8.3.8
при попытке ввести исправление в "отпуск" возникает ошибка:
{ОбщийМодуль.ИсправлениеДокументовРасчетЗарплаты.Модуль(1777)}: Ошибка при вызове метода контекста (Записать)
ЗначенияПоказателейНабор.Записать();
по причине:
Запись с такими ключевыми полями существует! : ЗначенияПоказателейНачислений: <Объект не найден> (332:aeea68b599ce83af11e76c5cc180305c), 1, Оклад (Регистр сведений: Значения показателей начислений; Номер строки: 2)


по этому ID получаю гуид в вашей обработке
6. Максим Б (Xershi) 280 19.07.17 11:48 Сейчас в теме
(5) похоже проблема еще и в других элементах, последовательно их восстановите. И затем все равно надо похоже через обычное приложение запускать, чтобы отследить ошибку в данных! Хотя отладчик и так у вас запустится, только доступа к данным не будет в пользовательском режиме.
7. Олег Олег (vechiy) 29 19.07.17 12:00 Сейчас в теме
(6) а как восстановить?
жму исправить - получаю ошибку -> копирую ид->получаю гуид->создаю объект->жму исправить->получаю ошибку уже с другим ид
8. Максим Б (Xershi) 280 19.07.17 18:16 Сейчас в теме
(7) я же вам писал. У вас цепочка удаленных объектов. Вы их с какой целью восстанавливаете? Обычно после обмена такая проблема возникает или после удаления без ссылочного контроля. И во втором случае надо не восстанавливать, а удалить хвосты.
Плюс ко всему иногда требуется переписывать код конфигурации, чтобы такие действия были возможны. Рекомендую создать тему на форуме или обратиться к специалисту!
9. Александр Р (razmochaev) 20.07.17 16:02 Сейчас в теме
Добрый день.
У нас платформа 1С:Предприятие 8.3 (8.3.10.2299).

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

Метод объекта не обнаружен (СведенияОВнешнейОбработке)

Если просто открыть ее, то при выполнении команды "Получить GUID" возникает такая ошибка:
{ВнешняяОбработка.ПоискИВосстановлениеБитыхСсылок836.Форма.ФормаУправляемая.Форма(67)}: Ошибка при вызове конструктора (УникальныйИдентификатор)
GUID = Новый УникальныйИдентификатор(ГУИД);
по причине:
Недопустимое значение параметра (параметр номер '1')
10. Максим Б (Xershi) 280 20.07.17 16:33 Сейчас в теме
(9) добрый день! Обработка идет как внешняя! Подключать их не нужно, просто запустите из меню файл! Для подключения из БСП требуется доработка метода, который вам выдало в ошибке.
11. Александр Р (razmochaev) 20.07.17 17:59 Сейчас в теме
(10) Хорошо, а можете проконсультировать по ошибке, связанной с недопустимым значением параметра? Я так понимаю, что он не находит объект в базе (т.е. я проверяю наличие объекта в копии базы, а в этой копии этого объекта также нет), и на это ругается?
12. Максим Б (Xershi) 280 20.07.17 18:16 Сейчас в теме
(11) значит вы нажали кнопку и не заполнили нужный реквизит. Воспользуйтесь кнопкой поиска и только потом другими!
Если речь идет об объекте метаданных, то конечно ошибка возможна, т.к. его физически нет в базе!
13. Александр Р (razmochaev) 20.07.17 19:46 Сейчас в теме
14. Михаил Зыков (ZyMik) 23.07.17 18:09 Сейчас в теме
Ошибка при поиске битых ссылок в регистрах.
Типовая БП (3.0.51.12).
Валится на запросе
ВЫБРАТЬ Об.Валюта КАК Объект,
"РегистрБухгалтерии.Хозрасчетный.Валюта" КАК ТаблицаИсточник,
Об.Регистратор КАК ОбъектИсточник,
"Справочник.Валюты" КАК ТипДанных
ИЗ
РегистрБухгалтерии.Хозрасчетный КАК Об
ГДЕ Об.Валюта ССЫЛКА Справочник.Валюты И ВЫРАЗИТЬ(Об.Валюта КАК Справочник.Валюты).Ссылка есть null И Об.Валюта <> Значение(Справочник.Валюты.ПустаяСсылка)
15. Максим Б (Xershi) 280 23.07.17 21:39 Сейчас в теме
(14) регистры состоят из других метаданных. Поэтому теоретически их вообще можно исключить из анализа. Ошибка вам сообщила что метаданные в конфигураторе отличаются от тех что записаны в предприятии. Это особенность регистра бухгалтерии.
16. Михаил Зыков (ZyMik) 24.07.17 08:30 Сейчас в теме
(15)
И? По факту обработка не работает. В данной ситуации нужно использовать ВалютаДт и ВалютаКт.

Согласно ТИИ у меня есть битые ссылки в двух РС, но обработка их не выдала.
Если на 8.3.6. все отлично работает (Надеюсь Вы тестирировали) - сделайте пометку, что на 8.3.8 обработка НЕ работоспособна. Чтобы другие пользователи не обломались.
17. Максим Б (Xershi) 280 24.07.17 13:52 Сейчас в теме
(16) так через справочник валют не выводит? Или по каким метаданным битая ссылка?
18. Михаил Зыков (ZyMik) 24.07.17 17:45 Сейчас в теме
Есть типовая Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.43.29)
На поддержке, без изменений.
Открываю в ней Вашу обработку.
Нажимаю Поиск - по всем регистрам
Появляются 2 сообщения об ошибках.
Список битых ссылок пустой.
Хотя в регистре сведений Версии объектов есть битые ссылки.
Если глянуть отладчиком - ошибки вылетают при выполнении запроса (Выше).
Попробуй его открыть в консоли.
Прикрепленные файлы:
19. Максим Б (Xershi) 280 24.07.17 18:12 Сейчас в теме
(18) почему так работает я вам писал в (15) . Это особенность 1С. И на таких регистрах будет ошибка, но на остальные метаданные это не влияет. Версии объектов независимый регистр, его надо почистить. Обработка такие регистры пропускает, т.к. такие данные это уже мусор, который надо зачистить, а не восстанавливать!
20. Максим Б (Xershi) 280 24.07.17 20:43 Сейчас в теме
(18) в дополнение есть кнопка "Удалить". Она правда не удаляет независимые регистры, но если вам нужно можете добавить код туда и удалить! А проще всего открыть такой регистр и руками его удалить, т.к. ссылок на него просто нет!
21. Михаил Зыков (ZyMik) 25.07.17 00:15 Сейчас в теме
В общем очередная не работающая обработка.
Регистры бухгалтерии не обрабатывает.
Данные не восстанавливает. Пустая трата денег.
22. Максим Б (Xershi) 280 25.07.17 10:41 Сейчас в теме
(21) если вы читали тему, то она звучит так: "Поиск и восстановление битых ссылок". регистры это не ссылочный тип!! Так что извините, что за вас не прочитали название, тут нельзя помочь!
23. Дмитрий Плишков (user664177_ademar26) 2 11.08.17 16:21 Сейчас в теме
Не работает не открывается форма Версия 8.3.9
{ВнешняяОбработка.ПоискИВосстановлениеБитыхСсылок836.Форма.Форма.Форма(3,8)}: Процедура или функция с указанным именем не определена (СтрНайти)
Поз = <<?>>СтрНайти(ГУИД, ":");
{ВнешняяОбработка.ПоискИВосстановлениеБитыхСсылок836.Форма.Форма.Форма(49,39)}: Процедура или функция с указанным именем не определена (СтрНайти)
Менеджер = Менеджеры[Лев(Таблица, <<?>>СтрНайти(Таблица, ".") - 1)];
{ВнешняяОбработка.ПоискИВосстановлениеБитыхСсылок836.Форма.Форма.Форма(50,67)}: Процедура или функция с указанным именем не определена (СтрНайти)
КонкретныйМенеджер = Менеджер[Прав(Таблица, СтрДлина(Таблица) - <<?>>СтрНайти(Таблица, "."))];
{ВнешняяОбработка.ПоискИВосстановлениеБитыхСсылок836.Форма.Форма.Форма(76,9)}: Процедура или функция с указанным именем не определена (СтрНайти)
Если <<?>>СтрНайти(НайденнаяСсылка, "<Объект не найден>") = 0 Тогда
{ВнешняяОбработка.ПоискИВосстановлениеБитыхСсылок836.Форма.Форма.Форма(103,42)}: Процедура или функция с указанным именем не определена (СтрНайти)
ГУИДУдОбъктаСтр = Сред(ГУИДУдОбъктаСтр, <<?>>СтрНайти(ГУИДУдОбъктаСтр,":")+1, СтрДлина(ГУИДУдОбъктаСтр));
{ВнешняяОбработка.ПоискИВосстановлениеБитыхСсылок836.Форма.Форма.Форма(144,41)}: Процедура или функция с указанным именем не определена (СтрНайти)
ТипОбъекта = Лев(ТипНайденнойСсылки, <<?>>СтрНайти(ТипНайденнойСсылки, ".") - 1);
{ВнешняяОбработка.ПоискИВосстановлениеБитыхСсылок836.Форма.Форма.Форма(145,73)}: Процедура или функция с указанным именем не определена (СтрНайти)
ИмяОбъекта = Прав(ТипНайденнойСсылки, СтрДлина(ТипНайденнойСсылки) - <<?>>СтрНайти(ТипНайденнойСсылки, "."));
24. Максим Б (Xershi) 280 12.08.17 11:51 Сейчас в теме
(23) важна не версия платформы, а версия режима совместимости конфигурации! Если у вас стоит ниже 8.3.6, то вам нужно скачать версию для 8.3.5!
25. Дмитрий Плишков (user664177_ademar26) 2 12.08.17 12:31 Сейчас в теме
26. Максим Б (Xershi) 280 12.08.17 12:34 Сейчас в теме
(25) значит версию режима совместимости должна быть 8.3.6 и выше!
27. Дмитрий Плишков (user664177_ademar26) 2 12.08.17 12:46 Сейчас в теме
Так я не пойму что мне нужно исправить то? )
28. Максим Б (Xershi) 280 12.08.17 13:16 Сейчас в теме
(27) использовать обработку для 8.3.5 или изменить режим совместимости в конфигурации!
29. Дмитрий Плишков (user664177_ademar26) 2 12.08.17 14:17 Сейчас в теме
А страшного ничего не произойдет если поменять режимы?
30. Максим Б (Xershi) 280 12.08.17 15:31 Сейчас в теме
(29) страшного нет, но если перехода с 8.3.5 не делали, то полетит часть функционала. Раз такой вопрос задаете, выполняйте первую рекомендацию!
31. Ivan Kazmirovskiy (vania) 20.10.17 16:58 Сейчас в теме
При восстановлении битых ссылок (например для документов) создается объект с новым идентификатором. Установка старого идентификатора не выполняется.
-----
Платформа: 8.3.10.2580
Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.52.39)
В конфигурации не используется режим совместимости.
32. Максим Б (Xershi) 280 20.10.17 22:20 Сейчас в теме
(31) добрый вечер!
Спасибо что сообщили о проблеме!
Реализованный метод для управляемой формы в версии 1.1.1 не сработал, пришлось вернуться к записи объекта на сервере.
Если потребуется обновленный вариант обработки, сообщите в личные сообщения!
Оставьте свое сообщение