Имя: Пароль:
1C
1С v8
Изменить идентификатор объекта
, ,
0 elian_hunter
 
31.08.12
16:59
А можно каким-то образом изменить идентификатор объекта? Конкретно мне надо - документа! Вообще где он? как его прочитать? и поменять... ))
1 vmv
 
31.08.12
17:00
нет
2 H A D G E H O G s
 
31.08.12
17:01
Можно.
3 H A D G E H O G s
 
31.08.12
17:01
Но не нужно
4 andrewks
 
31.08.12
17:02
(1)(2)(3) +1 :)
5 ptiz
 
31.08.12
17:03
(0) Идентификатор = Объект
Замена идентификатора = Поиск и замена значений
6 elian_hunter
 
31.08.12
17:15
нет... идентификатор не равно объект... мне нужно прочитать гуид объекта... неужели нет способа??
7 ptiz
 
31.08.12
17:17
(6) Опиши задачу целиком.
8 vmv
 
31.08.12
17:18
гуид - загугли тут или в любой типовой
9 Heckfy
 
31.08.12
17:20
ДокументСсылка.<Имя документа>.УникальныйИдентификатор (DocumentRef.<Имя документа>.UUID)
ДокументСсылка.<Имя документа> (DocumentRef.<Имя документа>)
УникальныйИдентификатор (UUID)
Синтаксис:

УникальныйИдентификатор()
Возвращаемое значение:

Тип: УникальныйИдентификатор.

Описание:

Получает уникальный идентификатор ссылки.
Ссылка может быть получена из уникального идентификатора с помощью метода менеджера ПолучитьСсылку.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
См. также:

ДокументМенеджер, метод ПолучитьСсылку
10 elian_hunter
 
31.08.12
17:21
(7) при загрузке данных из ЗУП в БП, а именно документа "Отражение зарплаты в регл. учете" документ за август  создается, а за февраль удаляется. я попробовал изменить гуид в хмл-е и сработало! видимо каким-то образом совпали гуиды документов за февраль и август (не пойму каким) хочу убедиться что я прав... для этого мне надо прочитать гуиды этих докумнетов
11 elian_hunter
 
31.08.12
17:21
(9) ООО! спасибо!
12 ptiz
 
31.08.12
17:32
(10) Значит, что кто-то сильно умный в ЗУПе взял февральский документ и изменил ему период на август.
13 Mikhail Volkov
 
31.08.12
17:38
(0) Можно, создать другой объект с нужным гуид, затем обработкой Поиск и замена дублирующихся элементов справочников объединить их.
Вот только с предопределенными объектами это не проходит... Кто знает как это сделать средствами 1С? (менять в скуле рискованно)
14 elian_hunter
 
31.08.12
17:40
(12) теоретически, возможно... но, если честно, не совсем понимаю, как это могло произойти...
15 andrewks
 
31.08.12
17:42
(14) заходишь в документ, меняешь, записываешь
16 elian_hunter
 
31.08.12
17:45
(15) да не... не в том дело... просто как бы какой смысл им так делать?...
17 hhhh
 
31.08.12
17:55
(16) у нас пару раз в месяц такое происходит.
    Бухи поняли, что гораздо быстрее вводить документ, если скопировать старый и в нем поменять всего несколько полей.
    Теперь внимание: если бух случайно вместо кнопки "копировать" нажмет кнопку "открыть", (а это ему как два пальца об асфальт) получается твоя ситуация.

Ответ он всегда на поверхности.
18 vmv
 
31.08.12
18:01
(17) а че вы дали тьокам права на вольности с доками прошлого, отчаянные финские парни? При хорошей организации прав такие финты можно делать только в текущем дне, все что было вчера, а тем более в прошлом месяце - извините прочти кучу сообщений о запретах, последствиях, ответься 10 раз - "Да, я не дура и вполне адекватна, сохранить" и только потом позволить изменить что-то в "старом доке"
19 hhhh
 
31.08.12
18:05
(18) эти доки не старые. Может даже сегодняшние.
20 hhhh
 
31.08.12
18:08
(18) и в принципе, если например типовая 1С-ка у клиента, вы за свои деньги будете ему эти запреты вставлять?
21 acsent
 
31.08.12
18:10
поиск и замена дублей
22 Mikhail Volkov
 
31.08.12
20:47
(21) А с предопределенными объектами как?
23 Sammo
 
31.08.12
20:56
(22) Никак. Гуид предопределенного элемента прописан внутри конфигурации и его не изменить. Проводил эксперимент - в скуле менял гуид предопределенного элемента. В результате после очередного сохранения конфигурации был создан еще 1 предопределенный элемент с таким же гуидом.
24 Rie
 
31.08.12
21:00
(23) Ключевое слово - "предопределённый"?
25 Mikhail Volkov
 
31.08.12
22:06
(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);
   Попытка
       СправочникОбъект.Записать();
   Исключение
       Сообщить("Не удалось записать партнера НашеПредприятие" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
   КонецПопытки;

И то, это помогает для вновь создаваемой базы. Если предопределенный объект пришел с обновлением, то задать ему нужный гуид таким методом не получается. Может кто-то как-то исхитрился менять на нужный гуид?
26 Torquader
 
01.09.12
22:20
Я чего-то не очень понимаю, зачем менять GUID у объекта ?
Ведь он используется для определения ссылок на сам объект. То есть замена GUID приведёт к созданию другого объекта, но с такими же данными внутри. То есть будет равносильно DELETE+CREATE.
Или вы и все ссылки на ваш объект хотите поменять ?
27 sda553
 
02.09.12
00:01
(26) Необходимости менять гуид нет никогда. Желание его поменять возникает у тех кто ищет простой способ все исправить и не искать истинных причин инцидента.
(22) Почти то же самое, в конфиге создается второй предопределенный элемент, с первого все ссылки в базе перешиватся все на второй, первый предопределнный элемент уничтожается в конфиге. Второй переименовывается в то же имя что было у первого
28 Torquader
 
02.09.12
00:31
(27) Не - один раз возникала необходимость подмены GUID из-за того, что в двух разных базах нужно было сделать один и тот же объект, когда там было уже два объекта - пришлось просто делать замену GUID во всех ссылках.
29 sda553
 
02.09.12
00:46
(28) ну так то да, но сшивание двух баз это все таки не то чтобы подмена гуидов, а наполнение одной базы объектами другой и потом замена ссылок по базе.
А тут не замена одного объекта на другой, а именно смена гуида как цель
30 Torquader
 
02.09.12
00:58
(29) Если в SQL, то как раз просто замена GUID-а, но так обычно не делают.
31 Mikhail Volkov
 
03.09.12
09:04
(27) Будет время, попробую этот метод.
(30) Если это справочник Виды контактной информации (как в моем примере (25))большого риска нет это сделать SQL, а если это например, Управленческая организация, которая используется в документах большого периода... у кого есть опыт замены GUID-а прямо в SQL?
32 ptiz
 
03.09.12
09:30
(31) Теоретически, ничего сложного: через метаданные получить таблицы, где могут быть ссылки на элемент, получить имена этих таблиц в SQL и сделать замену.
На инфостарте есть пример.
33 Serg_1960
 
03.09.12
09:35
Сорри, а какой смысл работы в SQL "напрямую"? Скорость? Но это - нештатная ситуация и алгоритм - "одноразовый". Если замена GUID-ов используется в штатном режиме работы - это бред.
34 Mikhail Volkov
 
03.09.12
12:39
(33) Для предопределенных объектов штатный режим не подходит. Если только предложенный (27), но тоже далеко не штатный.
2 + 2 = 3.9999999999999999999999999999999...