Имя: Пароль:
1C
1С v8
Постановка на поддержку конфигурации. Изменить УИД объекта метаданных.
0 ЧессМастер
 
13.07.17
13:41
Всем доброе время суток !

Ситуация следующая.

База БП 3.0.

Конфигурация полностью находится в режиме "Редактирование с сохранением поддержки" (на всех объектах желтые кубики).

Есть небольшие изменения - добавлена пара справочников и документов, у нескольких существующих справочников и документов добавлено несколько реквизитов.

Стоит задача - поставить конфигурацию на поддержку с возможностью изменения (установить замочки где только можно).

На первый взгляд вроде все просто - выгрузить основную конфигурацию в файл, загрузить конфигурацию поставщика, объединить с основной конфигурацией из файла.

Но есть один неприятный момент.

Конфигурация некоторое время обновлялась сравнением с файлом, и в результате по некоторым объектам метаданных отличаются идентификаторы. В результате при итоговом сохранении конфигурации и применении изменений к БД происходит реструктуризация с удалением объекта метаданных с идентификатором который был в основной конфигурации и создание объекта метаданных с идентификатором конфигурации поставщика.

Существует ли механизм которым можно настроить соответствие своих метаданных с метаданными конфигурации поставщика на уровне соответствий внутренних идентификаторов ?

Сколько не крутил различные варианты ничего не получается.
Не помогает ни внесение изменений в основную конфигурацию и сравнение с конфигурацией поставщика с приоритетом "взять из файла", ни поддержка - сравнение - объединение с конфигурацией поставщика с изменением режима поддержки. Замочки ставит но расхождение по внутренним идентификаторам остается.

А вручную изменять режим поддержки по сотням объектов не хочется.
1 Dmitrii
 
гуру
13.07.17
13:49
(0) Переименуй проблемные объекты (например, добавь в имя префикс "Удалить").
После реструктуризации они не удаляться.
После обновления пишешь обработку(и) (или находишь какую-нибудь универсальную) по переносу данных из таблиц объектов с префиксом во вновь созданные таблицы с нормальным именем и УИДом.
2 Лефмихалыч
 
13.07.17
13:56
(0) выгрузить конфу в xml, поменять ID, загрузить обратно

бэкап только не забудь
3 ЧессМастер
 
13.07.17
14:09
(1) Мне по трудоемкости будет проще руками проставить режим поддержки по сотням объектов чем вылавливать где выскочат эти глюки. Мне по сути нужно будет заменить все ссылки по объекту (Конфигурация - Поиск ссылок на объект)
4 1dvd
 
13.07.17
14:11
(3) тогда вперёд
5 ЧессМастер
 
13.07.17
14:12
(2) Два вопросы
1. Как выгрузить конфигурацию в xml ? Она же в cf выгружается.
2. Где брать ID для замены ?

Например у меня есть перечисление СпособыЗаполненияЦен.
По нему внутренний идентификатор отличается от того что в конфигурации поставщика. Как его поменять ?
6 ЧессМастер
 
13.07.17
14:14
(4) Чем вариант (1) лучше ?
По трудоемкости он ничем не лучше.
7 Ёпрст
 
13.07.17
14:14
Если база небольшая, то слепить чистую "православную" конфу и базу и запихать в неё всё со старой универсальными выгрузками
8 vde69
 
модератор
13.07.17
14:15
делаешь узел, в него делаешь полную выгрузку данных, затем отвязываешь узел, обновляешь конфу
затем опять подвязываешь как узел и сново делаешь полную заливку данных
9 vde69
 
модератор
13.07.17
14:16
(7) в аналогичной ситуации у меня это не получилось...
10 Ёпрст
 
13.07.17
14:17
(9) дык, надо было получить 2 cf и через кд написать правила.
11 Ёпрст
 
13.07.17
14:17
id то объектов разные ужо :( Просто так, не выйдет..нужно по именам объектов искать
12 Живой Ископаемый
 
13.07.17
14:21
13 Ёпрст
 
13.07.17
14:23
(2) ага, отличный совет.. в данных одни id, в конфе, другой :))
14 Вафель
 
13.07.17
14:33
А не полетят ли составные типы если тупо ид метаданных менять?
15 Лефмихалыч
 
13.07.17
14:34
(5) меню Конфигурация...Выгрузить конфигурацию в файлы
16 vde69
 
модератор
13.07.17
14:35
(14) верно мыслишь :)

точно полетят - виды расчетов (я на это напоролся), пользовательские типы, составные типы
17 Лефмихалыч
 
13.07.17
14:36
(14) если заменить все вхождения, то не полетят. Если менять только в самом объекте, то полетят не только составные типы, а вообще все ссылки накроются на этот объект.
18 vde69
 
модератор
13.07.17
14:43
кстати можно попробовать сделать сравнение с конфой поставщика с включенным флагом "копировать идентификаторы", возможно он сам заменит корректно
19 Вафель
 
13.07.17
14:59
(17) для обычных типов хватит редактирования цф, а вот для составных нужно и бд уже
20 ЧессМастер
 
13.07.17
15:40
>с включенным флагом "копировать идентификаторы",

(18) где этот режим ?

Конфигурация - Сравнить конфигурации
1. конфигурация "Конфигурация поставщика"
2. конфигурация "Основная конфигурация"

И флаг "Устанавливать соответствие по именам объектов"
21 vde69
 
модератор
13.07.17
15:42
(20) там-же где галочка "разрешить удаление"

галка называется "Режим копирования"
22 ЧессМастер
 
13.07.17
16:38
(21) можно скриншот ?
не пойму где это.

Конфигурация - Сравнить конфигурации
там только галочка "Устанавливать соответствие по именам объектов"

больше ничего нет. показывает различие между конфигурациями и все.

Конфигурация - Поддержка - Настройка поддержки - Сравнить, объединить
там тоже такого нет
23 Serg_1960
 
13.07.17
22:26
"Существует ли механизм которым можно настроить соответствие..."
Читай, пока не наступит прояснение, тему "Особенности сравнения и объединения конфигураций в режиме обновления"
https://its.1c.ru/db/metod8dev#content:2299:hdoc

Если сделать всё правильно, то различие в идентификаторах  сопоставимых объектов не играет никакой роли.

"Теперь рассмотрим вариант сравнения с конфигурацией поставщика... Для каждого объекта поставщика запоминается пара идентификаторов объектов (в конфигурации поставщика и в конфигурации на поддержке). И сопоставление выполняется только по этим парам. Для обеспечения логической целостности поддержки конфигурации единожды созданная пара никогда не изменятся. Если в новой версии поставщика появился новый объект, то пользователь при обновлении может просто его скопировать, а может сопоставить с каким-то своим объектом. Но в дальнейшем эту связь изменить будет нельзя."
24 ЧессМастер
 
14.07.17
09:54
(23) Я это читал

Вы не поймете что дело в другом.

Мне нужно поставить конфу на поддержку.
Варианта тут два - или по всем объектам тыкать мышкой "Не редактируется" (причем объектов несколько сотен).

Или загрузить конфигурацию поставщика, и обновить из файла основной конфигурации то что добавлено. Но проблема в том что по всем объектам которые были раньше добавлены в
конфигурацию сравнением с файлом поставщика отличаются УИД. И я получаю при реструктуризации удаление этих объектов и создание заново (с УИД которые у этих объектов в конфигурации поставщика).

>Если сделать всё правильно, то различие в идентификаторах  сопоставимых объектов не играет никакой роли.

Это не будет иметь значения если как и раньше обновлять конфу сравнением с файлом конфигурации поставщика или если все объекты основной конфигурации будут вручную поставлены на поддержку.
25 ЧессМастер
 
14.07.17
10:01
(23) Выглядит проблема вот так

Отличие УИД по объектам метаданных между конфигурациями

http://savepic.ru/14822262.jpg

Результат реструктуризации по всем таким объектам

http://savepic.ru/14813046.jpg

Обратите внимание что в результате реструктуризации идет удаление объекта метаданных и создание его заново (с потерей данных естественно)
26 Serg_1960
 
14.07.17
17:29
На поддержке, т.е. полностью типовую хотите? Ну, тогда единственный способ: сделать пустую базу с типовой конфигурацией и перегнать всю информацию с помощью КД. Автоматически созданные правила на 99,9% всё правильно свяжут между собой.
27 МихаилМ
 
14.07.17
17:53
вчем сложности? поменяте уиды в конфе и в  dbnames