Изменить идентификатор объекта
ДокументСсылка.<Имя документа>.УникальныйИдентификатор (DocumentRef.<Имя документа>.UUID)
ДокументСсылка.<Имя документа> (DocumentRef.<Имя документа>)
УникальныйИдентификатор (UUID)
Синтаксис:
УникальныйИдентификатор()
Возвращаемое значение:
Получает уникальный идентификатор ссылки.
Ссылка может быть получена из уникального идентификатора с помощью метода менеджера ПолучитьСсылку.
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
См. также:
ДокументМенеджер, метод ПолучитьСсылку
(16) у нас пару раз в месяц такое происходит.
Бухи поняли, что гораздо быстрее вводить документ, если скопировать старый и в нем поменять всего несколько полей.
Теперь внимание: если бух случайно вместо кнопки «копировать» нажмет кнопку «открыть», (а это ему как два пальца об асфальт) получается твоя ситуация.
Ответ он всегда на поверхности.
(23) «В результате после очередного сохранения конфигурации был создан еще 1 предопределенный элемент с таким же гуидом» — шалишь? Я еще допускаю одинаковый гуид для разных типов объектов, но в пределах одного типа это невозможно — гуид это ключ!
У меня при обмене баз, когда стоит синхронизация по гуид, такая хрень получается:
Ошибка при загрузке данных: <Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(4795)>: Ошибка записи объекта
ТипОбъекта = Виды контактной информации
Объект = Телефон физ.лица служебный
ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Ошибка при попытке вставки записи с неуникальным значением ссылки.
Microsoft OLE DB Provider for SQL Server: Нарушено «PK___Referen__AC8ED0C40F7C1D9B» ограничения PRIMARY KEY. Не удается вставить повторяющийся ключ в объект «dbo._Reference49». Повторяющееся значение ключа: (0xb9493d07ec2909514bd24a29a071e1b7).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2627, line=1
«Гуид предопределенного элемента прописан внутри конфигурации» — если сам не пропишешь, типа:
Процедура ЗаполнитьПредопределенныхПартнеров() Экспорт
// СправочникОбъект = Справочники.Партнеры.НашеПредприятие.ПолучитьОбъект(); // возмем из базы Кайрос. 10.01.2012 МВ.
СправочникСсылка = Справочники.Партнеры.ПолучитьСсылку(Новый УникальныйИдентификатор(«97403c2a-4260-481c-8835-1ea87e51a4aa»));
СправочникОбъект = СправочникСсылка.ПолучитьОбъект();
Если СправочникОбъект = Неопределено Тогда
СправочникОбъект = Справочники.Партнеры.НашеПредприятие.СоздатьЭлемент();
СправочникОбъект.УстановитьСсылкуНового(СправочникСсылка);
КонецЕсли;
СправочникОбъект.ДатаРегистрации = Дата(1980, 1, 1);
Попытка
СправочникОбъект.Записать();
Исключение
Сообщить(«Не удалось записать партнера НашеПредприятие» + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
КонецПопытки;
И то, это помогает для вновь создаваемой базы. Если предопределенный объект пришел с обновлением, то задать ему нужный гуид таким методом не получается. Может кто-то как-то исхитрился менять на нужный гуид?
Как поменять guid в 1с?
Здравствуйте! Подскажите пожалуйста, могу ли я как-нибудь через обработку поменять GUID элемента? В Реквизитах я не нашел такого , смог только командой УникальныйИдентификатор() вытянуть.
- Вопрос задан более трёх лет назад
- 6648 просмотров
Простой 7 комментариев
- Вконтакте




Причина: Что такое ссылка справочника? Это тип справочника и этот самый GUID. Другой GUID — это другая ссылка. Если в базе есть справочники, документы или другие сущности, которые ссылаются на ваш элемент справочника, то даже после физического удаления из базы, когда все эти ссылки станут «битыми», из каждой из них можно узнать изначальный GUID.
Выход: А если очень нужно? Если нужно, то можно. Вам нужно с помощью функции НайтиПоСсылкам() или собственного кода найти все ссылки на ваш элемент. Далее создать в базе новый элемент с данными оригинального элемента, которому с помощью УстановитьСсылкуНового() установить ссылку сформированную с помощью ПолучитьСсылку() на базе вашего GUID, а потом записать. И наконец, сделать замену во всей базе по ранее полученному списку старой ссылки на новую, после чего старый элемент можно полностью удалить из базы.
1С. Тематические записки. им xzorkiix
Вводная: в типовых правилах перехода есть правило конвертации объекта (ПКО) ПервичныйДокументИзСтруктуры. Для типового правила не предусмотрен поиск по GUID и следовательно его установка.
По одному из правил переноса остатков требовалось формировать Первичные документы с GUID исходных документов для возможности использования в будущей интеграции с другими системами.
1. Добавить свойство ПКО с признаком «выгружать в параметр» и «использовать при поиске» — допустим имя УникальныйИдентификатор.
2. В обработчике свойства Перед выгрузкой пишем.
3. Так в некоторых правилах обмена GUID может не требоваться, или в будущем будет принято решение отказаться от реализации. То флаг «Поиск по идентификатору» в свойствах ПКО не включаем (напомню источник у нас структура). И установим следующее правило поиска.
В будущем когда нужно будет отменить выгрузку ГУИД нужно будет передавать пустое значение.
Изменение GUID элемента в конфигурации 1С
Я имею две конфигурации 1С, и в одной из них есть элемент, к примеру, отчет. Мне нужно перенести этот элемент в другую конфигурацию, но при этом GUID элемента будет оставаться таким же, есть ли возможность полностью изменить его, что бы не было возможности определить, что этот элемент был перенесен из другой конфигурации? И как это сделать? Заранее большое спасибо.
Если это отчёт, то легче всего
- Создать новый отчет
- Сохранить его
- Сравнением\объединением накинуть на него функционал нужного отчета.
![]()
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.11.43304
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.