gifts2017

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

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

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

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

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

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

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

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

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

UPD 09/07/2014:

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

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

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

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

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

См. также

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

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

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

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