Можно ли программно изменить UUID (GUID) у уже записанного в базу элемента справочника?
При редактировании правил обмена между немного измененными конфигурациями ЗУП возникла задача изменения GUID (или UUID ?!) (уникального 32-х значного идентификационного номера элемента в пределах конкретной базы) у уже созданного элемента в базе.
Данная задача имеет очень большое практическое значение, позволяет заменять значение реквизитов уже проведенных документов без их перезаписи.
Решаема ли данная задача средставами встроенного языка 1С 8.2 или потребуется вмешательство из других языков. Кто сталкивался с подобной задачей.
Привожу материалы встроенной справки по данной теме:
1) ========================================================
УстановитьСсылкуНового(<Ссылка>)
Параметры:
<Ссылка> (обязательный)
Тип: СправочникСсылка. Ссылка, которая будет назначена при записи нового объекта.
Описание:
Устанавливает значение для нового (созданного и еще не записанного) объекта, которое будет назначено при записи в качестве ссылки. Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта.
Доступность:
Сервер, толстый клиент, внешнее соединение.
См. также:
СправочникМенеджер, метод ПолучитьСсылку
========================================================
2)
УникальныйИдентификатор (UUID)
Из строки
Синтаксис:
Новый УникальныйИдентификатор(<Строка>)
Параметры:
<Строка> (обязательный)
Тип: Строка. Строка GUID. Строка задается в виде "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", где Х - символы обозначающие шестнадцатеричное число.
Описание:
Создает уникальный идентификатор из указанной строки GUID. Уникальность полученного таким образом идентификатора определяется уникальностью строки и поэтому не гарантирована.
Пример:
СтрокаGUID = "a763cfbb-f94f-4c67-8e13-0e96a3a7f353";
НовыйGUID = Новый УникальныйИдентификатор(СтрокаGUID);
Данная задача имеет очень большое практическое значение, позволяет заменять значение реквизитов уже проведенных документов без их перезаписи.
Решаема ли данная задача средставами встроенного языка 1С 8.2 или потребуется вмешательство из других языков. Кто сталкивался с подобной задачей.
Привожу материалы встроенной справки по данной теме:
1) ========================================================
УстановитьСсылкуНового(<Ссылка>)
Параметры:
<Ссылка> (обязательный)
Тип: СправочникСсылка. Ссылка, которая будет назначена при записи нового объекта.
Описание:
Устанавливает значение для нового (созданного и еще не записанного) объекта, которое будет назначено при записи в качестве ссылки. Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта.
Доступность:
Сервер, толстый клиент, внешнее соединение.
См. также:
СправочникМенеджер, метод ПолучитьСсылку
========================================================
2)
УникальныйИдентификатор (UUID)
Из строки
Синтаксис:
Новый УникальныйИдентификатор(<Строка>)
Параметры:
<Строка> (обязательный)
Тип: Строка. Строка GUID. Строка задается в виде "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", где Х - символы обозначающие шестнадцатеричное число.
Описание:
Создает уникальный идентификатор из указанной строки GUID. Уникальность полученного таким образом идентификатора определяется уникальностью строки и поэтому не гарантирована.
Пример:
СтрокаGUID = "a763cfbb-f94f-4c67-8e13-0e96a3a7f353";
НовыйGUID = Новый УникальныйИдентификатор(СтрокаGUID);
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
>При редактировании правил обмена между немного измененными конфигурациями ЗУП возникла задача изменения GUID
>(или UUID ?!) (уникального 32-х значного идентификационного номера элемента в пределах конкретной базы) у уже
>созданного элемента в базе.
А можно пример - зачем это нужно ?
Изменить UUID у существующего элемента штатными средствами - это вряд ли. А вот менять при выгрузке в XML или при чтении из XML - можно попробовать.
>Данная задача имеет очень большое практическое значение, позволяет заменять значение реквизитов уже проведенных документов без их перезаписи.
Это, как уже ответили выше, решается штатно и относительно беспроблемно.
>Все-таки попалось решение на основе ADO. Какими-то запросами на чтение-запись в SQL серверную базу что-то
>можно сделать. Из "сторонних" языков и сред. Я про эту возможность хотел обсудить.
Для этого нужно знать структуры базы, а каждая база имеет свои наименования таблиц. Ну и прямая манипуляция с данными в базе SQL - это нарушение лицензионного соглашения с 1С.
>(или UUID ?!) (уникального 32-х значного идентификационного номера элемента в пределах конкретной базы) у уже
>созданного элемента в базе.
А можно пример - зачем это нужно ?
Изменить UUID у существующего элемента штатными средствами - это вряд ли. А вот менять при выгрузке в XML или при чтении из XML - можно попробовать.
>Данная задача имеет очень большое практическое значение, позволяет заменять значение реквизитов уже проведенных документов без их перезаписи.
Это, как уже ответили выше, решается штатно и относительно беспроблемно.
>Все-таки попалось решение на основе ADO. Какими-то запросами на чтение-запись в SQL серверную базу что-то
>можно сделать. Из "сторонних" языков и сред. Я про эту возможность хотел обсудить.
Для этого нужно знать структуры базы, а каждая база имеет свои наименования таблиц. Ну и прямая манипуляция с данными в базе SQL - это нарушение лицензионного соглашения с 1С.
часто и густо попадаются случаи, когда базы размножали по филиалам копированием, а потом захотели сделать их них РИБ. вот тут то и появляются элементы справочников и документы с одним UUID в разных базах. если их много - руками копировать замучаешься...
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)