Реанимация битых ссылок

0. 3012 27.02.07 05:53 Сейчас в теме
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Re:аниматор 27.02.07 05:53 Сейчас в теме
Реально данная обработка помогла, спасибо!
2. tormozit 6052 09.03.07 22:23 Сейчас в теме
А тестирование и исправление разве не делает тоже самое?
ybatiaev; +1 Ответить
3. 30.03.07 09:13 Сейчас в теме
Спасибо. Сам такую писал но где-то с UID был трабл. А ту все фунциклирен.
4. PowerBoy 3012 07.09.07 12:29 Сейчас в теме
Добавил версию обработки "РеанимацияБитыхСсылокСУчетомВладельца",
позволяет создаваемому объекту назначить владельца.
Автор:kirill buckov
5. andrey995 29.02.08 01:05 Сейчас в теме
а для семерки такое есть ?
6. ivanoa 46 16.04.08 09:38 Сейчас в теме
У меня не получилось(. В регистре бухгалтерии(УПП) есть в регистраторе ьитая ссылка. Документ платежное поручение создается с данным UUID, но при записи ссылка остается битой, в записи регистра регистратор не становится ссылкой на вновь созданный документ... Пробую пересоздать, говорит, что есть Подскажите, в чем дело.
7. PowerBoy 3012 16.04.08 13:56 Сейчас в теме
(6) Обработку запускаете с полными правами?
8. Finn 05.05.08 15:19 Сейчас в теме
1С:Предприятие 8.1. Удалил несколько контрагентов. Теперь пытаюсь восстановить. Последовательность - сначала запись справочника о контрагенте, потом ДоговорВзаиморасчетов и ЮрЛицо с привязкой к Контрагенту. ДоговорВзаиморасчетов и ЮрЛицо действительно создаются с нужными ссылками и привязками. А вот ссылка на контрагента, скажем, в расходной накладной, остается битой. :( Не пойму в чем дело. Пользоваться пытался обеими версиями, но версия с подчинением не дает создавать запись справочника без указания подчиненния. :(
9. Abadonna 3871 05.05.08 15:44 Сейчас в теме
>В результате все битые ссылки будут теперь ссылаться на новый объект.(т.е. будут теперь не битыми).
За одну битую ссылку две небитых дают! :))))))))))))))
10. Finn 06.05.08 10:36 Сейчас в теме
Разобрался. Восстановил. Спасибо!
11. frolov.dns 9 26.09.08 12:11 Сейчас в теме
Может кто подскажет, в чем полезность данной обработки?
12. avea 23.12.08 17:48 Сейчас в теме
Под 8.1 можно переделать?
13. PowerBoy 3012 24.12.08 06:33 Сейчас в теме
(12) Добавил версию под 8.1
14. looxxx 206 27.01.09 15:26 Сейчас в теме
Пишет длина GUID ссылки должна быть равна 32 знакам
15. looxxx 206 27.01.09 15:52 Сейчас в теме
(14) разобрался. надо вставлять номер после двоеточия. :)
16. ost.a 02.02.09 11:48 Сейчас в теме
В 8.1 пытался восстановить удаленную характеристику(в документах осталась сыылка на объект не найден) - СОЗДАЕТ НОВУЮ(с новым GUID), а ссылки так и остаются на объект не найден...??? в чем трабл?
17. FausTT1 05.08.09 12:05 Сейчас в теме
Ситуация такая же как и у ost.a
Может кто объяснить в чем причина?
18. марокко 73 18.09.09 03:49 Сейчас в теме
Спасибо огромное , уже пол ночи базу делаю) и тут такая вещь)
19. Катя84 3 27.11.09 13:09 Сейчас в теме
20. iones 176 03.12.09 16:52 Сейчас в теме
Посмотрел в коде, система понятна... НО!
При записи создается новый GUID (тестировалась на 8.1 УПП).
Ссылка так и остается битой, просто создается новый элемент.
midav_m; Anesk; Istur; +3 Ответить
21. iones3 04.12.09 15:36 Сейчас в теме
Короче.
У меня возникла такая проблема:
Случайно создали дубляж физлица, и на оба элемента заводились документы, на один из низ платежи, другой участвовал в проводках других документов. И один умный бух рубанул непосредственно одно физ лицо, не спросив программиста, т.е. меня. получилось что получилась битая ссылка.
Посмотрев тему реанимации битых ссылок ничего не получилось, создавался новый элемент с новым UIN-ом, короче косяк.
Почитав и поисках, перерыв учебники, интернет и кучу форумов, вот что нашел:
http://www.poleznayainfo1c.narod.ru/
Это реально работает!
В SQL подменил UIN. и Все сработало. Главное найти нужную таблицу.
Для Определения таблицы в SQL пример:

МассивИменМетаданных = Новый Массив();
МассивИменМетаданных.Добавить("Справочник.ФизическиеЛица");
СтруктБД=ПолучитьСтруктуруХраненияБазыДанных(МассивИменМетаданных);

Узнаем таблицу, а в SQL создаем Query такого плана:

UPDATE [название_базы].[dbo].[_название_таблицы]
SET [_IDRRef] = удаленный_идентификатор
WHERE [_IDRRef] = на_какой_идентификатор_подменяем

Не благодарите =)

Дерзайте.
22. pegas80 09.02.10 10:10 Сейчас в теме
При записи создается новый GUID (тестировалась на 8.1 УПП).
Ссылка так и остается битой, просто создается новый элемент с новым GUID гуидом. powerboy ответь
loader13; +1 Ответить
23. PowerBoy 3012 09.02.10 13:34 Сейчас в теме
(22) вероятно указываете неверный тип ссылки.
24. pri_hod 77 28.07.10 16:46 Сейчас в теме
25. zhumanova 16.09.11 08:55 Сейчас в теме
спасибо. у меня все срабатывает. и понятная в использовании
26. arjunasoft 7 20.09.11 23:15 Сейчас в теме
Спасибо, помогла реанимировать номенклатуру.
27. Scorpion1_77 15 27.09.11 12:40 Сейчас в теме
Спасибо. Отличная обработка. Несколько раз выручала.
28. opolyakova 14 18.10.11 19:58 Сейчас в теме
29. Nika-cat 08.12.11 07:36 Сейчас в теме
Спасибо. Пригодилась Даже очень!!!!!!!!!!!
30. nasya 16.12.11 14:28 Сейчас в теме
Спасибо! Обработка очень пригодилась - и для восстановления удаленного и для того, чтобы разобраться как работать с UID-)
31. jONES1979 21.12.11 11:46 Сейчас в теме
Спасибо конечно, но как из формата "46:b7b0001cc460bde211df026a8dd7cb3a" получить GUID в том виде, в каком требует обработка?

EDIT: Спасибо, разобрался. Автору плюсик.
32. petrovaUL 18.01.12 08:37 Сейчас в теме
1С:Предприятие 8.1. Удалил несколько контрагентов. Теперь пытаюсь восстановить. Спасибо! Обработка очень пригодилась - и для восстановления удаленного
33. nasya 19.01.12 12:09 Сейчас в теме
34. emptyteam 24.01.12 08:12 Сейчас в теме
А тестирование и исправление разве не делает тоже самое?

Действительно, в чем отличие от тестирования и исправления ?
35. PowerBoy 3012 24.01.12 11:23 Сейчас в теме
"Действительно, в чем отличие от тестирования и исправления ?"

Чтоб сделать тестирование и исправление мне нужно выгнать из базы около 100 работающих пользователей, запретить обмены РИБ и подождать часиков 5-6 и еще неизвестно что она там попутно направит.
46. AlexO 129 18.07.14 09:47 Сейчас в теме
(35)
Чтоб сделать тестирование и исправление мне нужно выгнать из базы около 100 работающих пользователей
Т.е. вас не волнует, что монопольный режим введен не зря, а при одновременной работе пользователей и обработки восстановления у вас в базе вообще каша может получится с данными?
36. Istur 1441 03.02.12 14:09 Сейчас в теме
(0) Поставил минус. Во-первых - это не GUID, а UUID. Отсутствует какое-либо описание и когда я вбивал GUID в поле, то поле мне ошибку выдавало про 32 символа, я только в комментариях увидел, что автор подразумевает UUID. ну и просто v8.x: Битая ссылка, <Объект не найден>, Уникальный Идентификатор, GUID лучше и понятнее, юзабельнее, и описание есть. Данную обработку скачивал, потому что здесь можно создавать элементы с владельцем, потом плюнул, и в обработку по ссылке сам добавил присвоение владельца, что заняло минут 3-5.
b-dm; EugenLiquor; mr.Kot; odin777; CaSH_2004; vlasin; +6 Ответить
41. a1ex4ndr 1 03.09.12 17:01 Сейчас в теме
что то гляжу под 7.7 никто такой обработки не знает... может тогда кто то подскажет, разницу ЗначениеВСтрокуВнутр(Объект) для текущей базы и для объекта полученного через ОЛЕ? насколько я понял в текущей базе первый символ - идентификатор типа - (T=счет/O=документ/B=справочник/E=перечисление/U=неопределенн­ный) и последний реквизит 23 знака - 10 знаков идентификатор вида(спр номенклатура например) 10 знаков - идентификатор объекта, и последние 3 - идентификатор базы (юзается для УРИБ)
а в ссылке (36):
Объект = БазаОле.ЗначениеВстрокуВнутр(Док_Источник.ТекущийДокумент());
// Для примера Объект возвращает {"O","0","0","3114","0","0"," 258156CB "}
что значит этот 258156CB? каким то образом объединеные идентификаторы?
43. mr.Kot 18.02.14 15:20 Сейчас в теме
Посмотрел, почитал коменты и воспользовался обработкой из комента (36).
47. AlexO 129 18.07.14 09:56 Сейчас в теме
(36) Istur,
то поле мне ошибку выдавало про 32 символа, я только в комментариях увидел, что автор подразумевает UUID

У автора каша какая-то, на самом деле формат ID выглядит так:
UUID - 84:bf5600145e3710ab11dda4c605dbe824
GUID - 05dbe824-a4c6-11dd-bf56-00145e3710ab
38. нинас 03.04.12 09:44 Сейчас в теме
Работает в монопольном режиме или нет?
39. PowerBoy 3012 03.04.12 11:01 Сейчас в теме
40. a1ex4ndr 1 16.07.12 10:04 Сейчас в теме
Кто нибудь знает под 7.7 есть такая обработка? Что то поиском не нашел...
42. romankoav 11.09.13 17:12 Сейчас в теме
На форме есть флаг использования владельца, но в модуле никак не используется. Пришлось допиливать.
44. EugenLiquor 18.02.14 15:51 Сейчас в теме
Тоже наткнулся на проблему с UUID, как итог - воспользовался похожей обработкой.
45. ankr 19 03.06.14 09:38 Сейчас в теме
Всем привет!
Не могу скачать обработку под 8.2 по ссылке: v8.x: Битая ссылка, Уникальный Идентификатор, GUID
- сайт не работает полноценно ((
Если есть у кого скиньте плз на почту: andyfx01@gmail.com
48. Muhin555 20 21.12.18 02:24 Сейчас в теме
Спасибо за обработку! Реально помогла на SQL базе. Актуальность свою на базах 8.2 еще не потеряла.
Только чтоб не думать "Есть ли у справочника Владелец или нет?" добавил такой код:
Процедура ТипБитойСсылкиПриИзменении(Элемент)
	
	СпрМ = ПолучитьПараметры(ТипБитойСсылки);
	Если СпрМ = Неопределено Тогда
		Возврат;
	КонецЕсли;    

	Если СпрМ.МетаКоличество > 0 Тогда  
		ЭлементыФормы.ПолеВвода.Доступность=Истина;
		
		МассивТипов = СпрМ.МассивТипов;
		ЭлементыФормы.ПолеВвода.Значение = Неопределено;
		ЭлементыФормы.ПолеВвода.ОграничениеТипа = Новый ОписаниеТипов(МассивТипов);   
	Иначе
		ЭлементыФормы.ПолеВвода.Значение = Неопределено;
		ЭлементыФормы.ПолеВвода.Доступность=Ложь;
	КонецЕсли;
КонецПроцедуры

Функция ПолучитьПараметры(ТипБитойСсылки)
	Параметры = Новый Структура;
	МетаОбъект = Метаданные.НайтиПоТипу(ТипБитойСсылки.Типы()[0]);
	ПолноеИмяОбъекта = МетаОбъект.ПолноеИмя();
	ТипОбъекта = Лев(ПолноеИмяОбъекта,Найти(ПолноеИмяОбъекта,".")-1);
	ИмяОбъекта = МетаОбъект.Имя;
	ОписаниеТипаОбъекта = ТипОбъекта + "Ссылка." + ИмяОбъекта;
	
	Если ТипОбъекта = "Справочник"  Тогда
		Основание = "Владельцы";
	ИначеЕсли ТипОбъекта = "Документ" Тогда
		Основание = "ВводитсяНаОсновании";
	ИначеЕсли ТипОбъекта = "ПланВидовХарактеристик" Тогда  
		Основание = "ВводитсяНаОсновании";
	ИначеЕсли ТипОбъекта = "ПланСчетов" Тогда
		Основание = "ВводитсяНаОсновании";
	ИначеЕсли ТипОбъекта = "ПланВидовРасчета" Тогда
		Основание = "ВводитсяНаОсновании";
	ИначеЕсли ТипОбъекта = "ПланОбмена" Тогда
		Основание = "ВводитсяНаОсновании";
	ИначеЕсли ТипОбъекта = "БизнесПроцесс" Тогда
		Основание = "ВводитсяНаОсновании";
	ИначеЕсли ТипОбъекта = "Задача" Тогда
		Основание = "ВводитсяНаОсновании";
	Иначе
		Предупреждение("Неизвестный тип объекта");
		Возврат Неопределено;
	КонецЕсли;    
	
	МетаКоличество = МетаОбъект[Основание].Количество();

	Параметры.Вставить("МетаКоличество", МетаКоличество);
	
	МассивТипов = Новый Массив;
	Для каждого ЭлементМассива Из МетаОбъект[Основание] Цикл
		ОписаниеТипаЭлемента = ЭлементМассива.ПолноеИмя();
		ТипЭлемента = Лев(ОписаниеТипаЭлемента,Найти(ОписаниеТипаЭлемента,".")-1);
		ИмяЭлемента = ЭлементМассива.Имя;
		ОписаниеТипаЭлемента = Тип(ТипЭлемента + "Ссылка." + ИмяЭлемента);
		МассивТипов.Добавить(ОписаниеТипаЭлемента);   
	КонецЦикла; 
	
	Параметры.Вставить("МассивТипов", МассивТипов);

	Возврат Параметры;
КонецФункции // ПолучитьПараметры()


Процедура ПолеВводаОчистка(Элемент, СтандартнаяОбработка)
	ЭлементыФормы.ПолеВвода.Значение = Неопределено;
КонецПроцедуры
Показать


Ну и при создании ссылки добавить проверку:
	Если ЭлементыФормы.ПолеВвода.Доступность Тогда
			Вл = ЭлементыФормы.ПолеВвода.Значение.Ссылка;
		КонецЕсли;
Оставьте свое сообщение
Вопросы с вознаграждением