Имя: Пароль:
1C
 
Как установить соответствие объектов при сравнении основной конфы и конфы БД?
0 altaykniga
 
22.02.15
20:58
Подскажите, люди умные... (с наступающим праздником мужиков!)

Выполняю обновление измененной конфигурации. Проблема вот в чем. В итоге имеется обновленная основная конфигурация и не обновленная конфигурация базы данных.

РегистрБухгалтерии-ЕПСБУ-Реквизиты

ВидПервичногоДокумента
НомерПервичногоДокумента
ДатаПервичногоДокумента

Эти реквизиты не связаны между этими двумя конфигурациями, т. е. в основной они помечены как новые, и в конфигурации БД также помечены как новые.
При обновлении конфы БД получается, что эти реквизиты удаляются, а, следовательно, и их значения. Т.е. после обновления конфы БД заходим в проводки и видим, что эти поля пустые (ВидПервичногоДокумента, НомерПервичногоДокумента, ДатаПервичногоДокумента).
Пробовал сделать так.
Конфигурация-Конфигурация базы данных — Сравнить, объединить с конфигурацией базы данных. Выходит окно сравнения объектов, устанавливаю соответствие злополучных реквизитов этих. Жму кнопку обновить. Вроды бы в окне сравнения больше не выходит, что эти объекты разные. Что делать дальше? Снимаю галки со всех объектов в таблице сравнения, жму Выполнить. Конфигурация базы данных типа обновляется. А при повторном сравнении этих конфиг все повторяется, т. е. Соответствие между этими реквизитами теряется. Как сделать так, чтобы при обновлении конфы базы данных значения этих реквизитов не пропали?
1 altaykniga
 
23.02.15
12:16
поднимаю
2 EugeniaK
 
23.02.15
12:20
(0) А как вообще так получилось, что они разные?
Скорее всего, криво обновили когда-то в прошлом, что идентификаторы сбились.
Наиболее правильное решение:
1. Переименовать свои в:
УдалитьВидПервичногоДокумента
УдалитьНомерПервичногоДокумента
УдалитьДатаПервичногоДокумента
2. Обновить конфигурацию, перенеся новые поля из обновления. При этом в базе будут и старые заполненные и новые пустые.
3. Заполнить групповой обработкой новые по старым.
4. Удалить старые.
3 altaykniga
 
23.02.15
13:18
(2) "Переименовать свои в:" - поля в конфе базы данных переименовать нельзя. Может переименовать эти поля в основной конфе, т.е. в обновленной? Потом обновить конфу БД, обработкой заполнить новые данные по старым, затем удалить старые реквизиты, а потом назад переименовать новые реквизиты в нужные?
4 altaykniga
 
23.02.15
13:19
а почему в моей ситуации не срабатывает установка соответствий?
5 altaykniga
 
23.02.15
13:38
интересно. Если выгрузить конфу БД в файл, а затем сравнивать основную конфу с этим файлом, то эти реквизиты соответствуют друг другу. При сравнении, объединении с файлом соответствие проходит по именам объектов, а не по внутренним идентификаторам?
6 EugeniaK
 
23.02.15
13:46
(3) Разумеется, в основной. В той, в которой работаете.
(4) (5) При сравнении с файлом соответствие выполняется по именам объектов, при обновлении по УИДам. Он могут быть разные, если изначально эти поля добавлялись не стандартным обновлением, а вручную.
Выгрузите конфигурацию не в .cf, а в .xml. В конфигураторе "Конфигурация" - "Выгрузить конфигурацию в файлы". В этом случае в текстовом файле будут видны УИДы метаданных. Сравните УИДы вашей конфигурации с УИДами типовой. Думаю, они у вас отличаются.
7 altaykniga
 
23.02.15
13:52
(6) а можно как-нибудь подменить уиды в конфигурации базы данных?
8 Serg_1960
 
23.02.15
14:13
(7) Можно. Но менять нужно не в конфигурации БД, а в основной конфигурации - там нет данных и, соответственно, речь о потере данных не актуально :)
9 Serg_1960
 
23.02.15
14:16
PS: У меня были такие проблемы. Имхо, это временный глюк платформы - при последующем обновлении ошибки соответствия не повторялись. Как выкручивался?

Не обновляя конфигурацию БД,
выгрузил обновленную основную конфигурацию (А) и конфигурацию БД (Б);
загрузил конфигурацию (Б) и накатил через "сравнить/объединить" конфигурацию (А).
После этого обновил конфигурацию БД.

Если вы каким-то образом "потеряете" версию конфигурации поставщика - это легко восстанавливается повторным обновлением (сняв все галочки в окне сравнения/объединения)
10 EugeniaK
 
23.02.15
14:32
(7) Стандартными средствами нельзя. Самый простой вариант я описала в (2).
(9) Скорее всего, это не глюк платформы. Это кривое обновление в прошлом.
altaykniga, выгрузите в xml и проверьте. Возможно, проблема в чем-то еще. Но скорее всего просто в прошлом криво вручную добавили поля.
11 EugeniaK
 
23.02.15
14:33
(8) Можно в основной конфигурации. Но в этом случае при обновлении конфигурации БД по основной физические поля с данными просто исчезнут и появятся новые пустые с правильными УИДами. По-моему, это не совсем то, что нужно.
12 Serg_1960
 
23.02.15
14:52
(10) "Скорее всего, это не глюк платформы. Это кривое обновление в прошлом." - Вы противоречите сами себе. Даже если "кривое обновление в прошлом" - это тоже глюк платформы. В прошлом :)

Моё утверждение базируется на трех слонах: конфигурация поставщика - недоступна; внутренние идентификаторы "из вне" недоступны; при обновлении внутренние идентификаторы в существующих объектах не изменяются.
13 altaykniga
 
23.02.15
17:14
(2) "заполнить групповой обработкой новые по старым"

как заполнить новые реквизиты в РегистреБухгалтерии по старым??
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс