|
Когда генерируется UUID предопределенных элементов при обновлении из .cfu? | ☑ | ||
---|---|---|---|---|
0
Vladal
20.07.16
✎
16:51
|
Есть типовые объекты с предопределенными элементами, например, справочники, ПВХ, ПВР, планы счетов...
Столкнулся с тем, что после очередного обновления задвоились некоторые предопределенные - те, что были прежде добавлены вручную и те, что мигрировали с обновлением. Но добавлены были, по истории хранилища, еще в 2013 году. Вычислил, вычистил, частично сделал замену ссылок старых на новые и удалил освободившиеся. Но картина была бы неполной, если бы я для себя не выяснил такой вопрос: правильно ли я понимаю, что уникальный идентификатор предопределенного элемента приходит в мою конфигурацию из обновления от поставщика? То есть он сгенерировался в базе поставщика и ушел оттуда вместе со своим UUID в файле .cfu? Или генерируется в момент первого обновления поставки уже локально в моей базе? Ой, в какие дебри я полез... |
|||
1
МихаилМ
20.07.16
✎
17:17
|
uid находится в конфигурации (метаданных). и не генерится произвольно.
|
|||
2
Vladal
20.07.16
✎
17:20
|
(1) Значит UID предопределенного приходит при обновлении вместе с .cfu, и "такое по всей стране"?
Просто я ограничен в возможностях проверить и воспроизвести ситуацию в различных базах. |
|||
3
Господин ПЖ
20.07.16
✎
17:22
|
ну если у вас база еще и с распределенкой - то вы попали
|
|||
4
Господин ПЖ
20.07.16
✎
17:22
|
в центральной как я понимаю вы ссылки поменяли, а в периферийках кто это делать будет? тут апдейт должен был быть в два этапа
|
|||
5
Господин ПЖ
20.07.16
✎
17:23
|
два релиза
1. переименовать старые + перенести ссылки 2. удалить старые |
|||
6
Карупян
20.07.16
✎
17:26
|
(1) Ты отстал от жизни в 8.3 все не так
|
|||
7
Карупян
20.07.16
✎
17:27
|
в рибах предопределенные задваиваются только в путь
|
|||
8
Vladal
20.07.16
✎
17:27
|
(3) нет. нет распределенки и обменов нет.
|
|||
9
Vladal
20.07.16
✎
17:28
|
(4) апдейт в два этапа я и сделал - в первый раз переименовал дубли, во второй итерации уже удалил замененные предопределенные и потом ужадил их окончательно в режиме Предприятия
|
|||
10
Vladal
20.07.16
✎
17:28
|
*ужадил = удалил
|
|||
11
Vladal
20.07.16
✎
17:32
|
(5) Мало переименовать. У них есть уникальные идентификаторы.
|
|||
12
Карупян
20.07.16
✎
17:35
|
удалить старые в конфигураторе, в предприятие поменять ссылки
|
|||
13
Vladal
20.07.16
✎
17:35
|
(6) Если не ошибаюсь, в 8.3.6. поменялся способ хранения предопределенных на уровне таблиц БД.
Прежде было два реквизита, теперь один (в SQL) - PrefefinedID |
|||
14
Карупян
20.07.16
✎
17:35
|
хотя ссылки можно не менять, просто назначить имена предопределенных
|
|||
15
Vladal
20.07.16
✎
17:36
|
(12) Я так и сделал, суть, хочу докопаться до корня.
|
|||
16
Господин ПЖ
20.07.16
✎
17:41
|
(15) докапываться то до чего? с точки зрения поставщика у тебя 2 элемента - один "-" у него "чужой" id, второй "+" у него правильный id. с точки зрения рабочей базы побарабану какой id у элемента пока у него имя и тип нужные для работы
|
|||
17
Vladal
20.07.16
✎
17:48
|
(16) Нет, ей не по барабану.
И раньше жили эти дубли предопределенных, но после перехода с платформы 8.2 на 8.3 получили сообщение о дублях имен предопределенных элементов. Этот ID пришел ко мне из базы САМОГО поставщика? Получив обновление той же УПП, все получат те же самые ID предопределенных элементов? По всей стране где в УПП есть предопределенный ПВР с именем "ПоОкладу" будет иметь один и тот же UUID {1656faa9-ae02-4836-9234-c70eba00be50}? |
|||
18
Vladal
20.07.16
✎
17:55
|
(16) >> с точки зрения рабочей базы побарабану какой id у элемента пока у него имя и тип нужные для работы
нет, не так. По барабану программному модулю, когда я обращаюсь к элементу по имени: Справочник.СпособыОтраженияЗарплатыВреглУчете.ОтражениеУдержанийПоЗаймам А в базе у меня два таких предопределенных с таким именем. И каждый раз я играю "в рулетку", какой из них мне соизволит выдать скуль. Сравни: СпрСсылка = Справочник.СпособыОтраженияЗарплатыВреглУчете.ОтражениеУдержанийПоЗаймам; Пока Истина Цикл Сообщить(СпрСсылка.УникальныйИдентификатор()); КонецЦикла; и Пока Истина Цикл СпрСсылка = Справочник.СпособыОтраженияЗарплатыВреглУчете.ОтражениеУдержанийПоЗаймам; Сообщить(СпрСсылка.УникальныйИдентификатор()); КонецЦикла; В какой-то момент выдаются оба идентификатора, но потом, видимо, срабатывает кэш на стороен SQL и в дальнейшем получаю одну и ту же ссылку. |
|||
19
Господин ПЖ
20.07.16
✎
18:02
|
>А в базе у меня два таких предопределенных с таким именем.
там контроль стоит? не может быть два предопределенных элемента с одинаковым именем |
|||
20
Vladal
20.07.16
✎
18:18
|
(19) легко!
Сохрани конфу во внешний файл. Условно это "обновление релиза". Удали предопределенный элемент в любом объекте. Создай новый такой же - это или неверно обновили из конфы поставщика или вручную добавили не зная о последствиях. Обнови конфигурацию в режиме объединения, приоритет "из базы" или "из файла" - не важен. Сохрани конфигурацию. При сохранении получится сообщение "Справочник такой-то. Не уникальное имя предопределенного элемента!". |
|||
21
Vladal
20.07.16
✎
18:21
|
У меня в ПВР.ОсновныеНачисленияОрганизаций задвоены были СтажВДнях и СтажВЧасах. По истории хранилища одна пара добавлен в 2013 году, вторая пара добавлена недавно мной.
|
|||
22
Vladal
20.07.16
✎
18:24
|
и еще один обычны йэлемент "Стаж в днях", на который есть ссылки на документы с 2011 по 2013 годы.
|
|||
23
Господин ПЖ
20.07.16
✎
18:25
|
>Сохрани конфигурацию. При сохранении получится сообщение "Справочник такой-то. Не уникальное имя предопределенного элемента!
вообще-то это повод задуматься... всем... кроме рукож.пов |
|||
24
Vladal
20.07.16
✎
18:45
|
(23) Я об этом и написал - сообщения появились после перехода на платформу 8.3. До этого бы никто и не знал, наверно, если бы при сохранении конфигуратор не писал о не уникальных именах.
Проблему уже разрулил, в базе навел порядок. |
|||
25
Vladal
20.07.16
✎
18:47
|
На инфостарте уже есть обработка по переназначению предопределенных, но это для включенного режима совместимости с 8.3., а у нас такого еще не делал.
http://catalog.mista.ru/public/305892/ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |