Смена уникального идентификатора (GUID)

Опубликовал Анна Кузнецова (Nefertary) в раздел Обработки - Универсальные обработки

Создание копии документа или элемента справочника с нужным уникальным идентификатором.
Замена ссылок на объект.

При работе с нештатными механизмами обмена иногда возникает необходимость сделать одинаковыми GUID каких-то элементов - справочников или документов. 

Обычно я поступала так:

Создавала копию объекта замены с требуемым GIUD.

Затем запускала поиск и замена дубликатов с последующим удалением старого объекта.

Надоело делать запускать несколько обработок, поэтому написала эту.

Реализован поиск объекта по GUID или по системному строковому предстконтакты

UPD 09/07/2014:

Разделены действия "создание копии объекта" и "замена ссылок".

Можно заменять объект замены как созданной копией элемента с нужным uid, так и любым другим объектом такого же типа.

Отлажена замена ссылок в конфигурациях Бухгалтерия КОРП.

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

Наименование Файл Версия Размер
Смена GUID
.epf 11,90Kb
09.07.14
200
.epf 1.0 11,90Kb 200 Скачать

См. также

Комментарии
1. Андрей Корнюхин (GATTUSO) 277 04.04.14 13:06 Сейчас в теме
Идея хорошая и интересная.
Я правильно понимаю, что обработка ищет все ссылки на старый объект и заменяет их на ссылки на новый объект?
2. Анна Кузнецова (Nefertary) 66 04.04.14 13:33 Сейчас в теме
3. Татьяна Астафьева (Татьяна_69) 21 09.04.14 04:24 Сейчас в теме
отлично!!!!
я сама развлекалась подобной задачей пару недель назад!!!
mrWatson; +1 Ответить
4. Алексей Т. (CratosX) 98 09.04.14 17:18 Сейчас в теме
(0) Есть желание сделать на управляемых формах?
5. Анна Кузнецова (Nefertary) 66 09.04.14 17:53 Сейчас в теме
(4) CratosX,
будет время - можно сделать. Но ведь никто не мешает запустить базу с ключом /RunModeOrdinaryApplication
xzorkiix; +1 Ответить
6. юрий гулидов (gull22) 81 16.07.14 14:15 Сейчас в теме
7. Алекс Ю (AlexO) 115 04.09.14 12:07 Сейчас в теме
А сделать обратно - у объекта подменить UUID (не GUID - ГУИД в 1С нет вообще, осталась только неиспользуемый отголосок в <ссылка не найдена>GUID) на UUID указанного объекта (сохранить от указанного, поменять UUID источнику на любой другой (или удалить вовсе), UUID от источника присвоить приемнику)?
Не делали такую?
8. Анна Кузнецова (Nefertary) 66 04.09.14 13:04 Сейчас в теме
(7) AlexO,
это прямым запросом sql имеется ввиду? Нет, не делала.
Вот есть такой вариант здесь:
http://infostart.ru/public/16672/
9. Алекс Ю (AlexO) 115 04.09.14 13:58 Сейчас в теме
(8) Nefertary,
в восьмерке нет "прямых" запросов к SQL. Имелось ввиду - смена одного UUID на другой (например, чтобы поменять везде ссылки - присвоить нужному элементу искомый UUID. И тогда платформа автоматом найдет и подставит по ссылке уже правильный, но совершенно другой объект).
утюгчеловек; +1 Ответить 1
10. Алекс Ю (AlexO) 115 08.09.14 10:11 Сейчас в теме
(8) Nefertary,
Вот есть такой вариант здесь

Там не "прямой" запрос, а запись в таблицу SQL из 1С. Прямой запрос - это запрос из самой 1С к базе 1С (к ней же самой, не к другой) в SQL.
11. Анна Кузнецова (Nefertary) 66 09.09.14 09:02 Сейчас в теме
(10) AlexO, в данном у случае имеет место быть разница в терминологии.
В моем понятии прямой запрос - это запрос к базе на языке Transact-SQL.
Из какого места происходит вызов этого запроса - не суть важно.
Запрос может быть как на получение данных, так и на их модификацию.
12. Andrey Karetskiy (silberRus) 45 23.10.14 00:34 Сейчас в теме
С общими реквизитами не работает (
13. Анна Кузнецова (Nefertary) 66 23.10.14 15:53 Сейчас в теме
(12) silberRus, какая конфа и какой объект?
14. Andrey Karetskiy (silberRus) 45 23.10.14 22:01 Сейчас в теме
(13) Nefertary,
Типовых конф у меня нет чтоб точно сказать, можно взять любую конфу где у объектов есть общий реквизит. Посмотрел код, там увидел что создается копия перебирая реквизиты метаданного, но перебор общих реквизитов не увидел. Поэтому если используются общие реквизиты, тогда создаваемый обработкой объект может быть заполнен не полностью.
15. Ридван (утюгчеловек) 24.10.14 20:34 Сейчас в теме
(9) AlexO, не понял. А можно на пальцах?

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

И еще не понятно, а почему собственно решили отказаться от интерфейса из "поиск и замена"? Удобно же: видно какие именно ссылки будут переадресованы, можно отказываться от замены отдельных ссылок и т.д. Ну и привычно.
16. Анна Кузнецова (Nefertary) 66 24.10.14 21:04 Сейчас в теме
(15) утюгчеловек, эволюционно сложилось. Сначала была просто обработка по созданию объекта с таким же GUID, и быстрым поиском объекта по битой ссылке или представлению. Замену ссылок приделала, т.к. лень было две обработки запускать. Как правило, задача была поменять ссылки полностью.
17. Алекс Ю (AlexO) 115 27.01.15 17:07 Сейчас в теме
(15) утюгчеловек, Есть элемент, есть другой элемент. Нужно присвоить UUID второго элемента - первому, у второго сформировать новый.
18. Александр Палькин (APalkin) 22.04.16 16:43 Сейчас в теме
Супер обработка! Все работает в БУХ КОРП!
Автору огромный респект!!!
Оставьте свое сообщение