Имя: Пароль:
1C
 
v8: Изменение идентификатора предопределенного элемента справочника
0 dk
 
23.06.11
12:30
Исходные:
2 базы 1С 8.2 УПП + доработка
база 1 - хранит список номенклатуры, база 2 - пока пустая
В базе 2 завел предопределенные элементы в справочнике номенклатура.
Перенес универсальной обработкой (перенос XML) номенклатуру из база 1 в база 2
Проблема:
обработка переносит и синхронизирует по внутреннему идентификатору. С одной стороны это хорошо, т.к. могут понадобиться дополнительные выгрузки номенклатуры, а может и еще чего в базу 2.
Но, надо как=то связать несколько элементов номенклатуры база 1 с предопределенными элементами в база 2.
Связь 1 к 1, т.е.
База1: товар1 - база2: продопределенный_товар1
База1: товар2 - база2: продопределенный_товар2
База1: товар3 - база2: продопределенный_товар3
---
В данный момент после переноса в базе 2 имеем:
База2:
- Товар1
- Товар2
- Товар3
- Предопределенный_Товар1
- Предопределенный_Товар2
- Предопределенный_Товар3
т.е. задублировались элементы.
Собственно вопрос:
Как-нить можно поменять идентификаторы у предопределенных элементов в базе 2?
Или только правкой в скуле?
1 Живой Ископаемый
 
23.06.11
12:35
только
2 Широкий
 
23.06.11
12:37
(1) Идишники у предопределенных еще и в конфу зашиты
3 dk
 
23.06.11
12:39
(2) вооот, уже интересно
есть у кого положительный опыт подобных махинаций с ИД?
4 Лефмихалыч
 
23.06.11
12:42
(0) идентификатор предопределенного элемента можно изменить в конфигураторе. Только, я не понимаю, зачем - в (0) какая-то противоестественная струйня
5 Defender aka LINN
 
23.06.11
12:42
Пипец. А что, в правилах обмена поиск настроить - не, не по-пацански?
6 dk
 
23.06.11
12:44
(5) нет правил обмена, типовая обработка по переносу между одинаковыми конфами
7 Mickeleangelo
 
23.06.11
12:44
(0)
1. Добавить в Базу 1 предопределенные товары
2. В Базе 1 обработкой поиска и замены дублей слить вместе предопределенные и введенные вручную товары
3. Выгрузить cf Базы 1
4. Удалить из Базы 2 предопределенные товары (она же пустая еще) и через «сравнить, объединить» загрузить предопределенные элементы из cf (без флага «Режим копирования»)
5. Удалить предопределенные в Базе 1, сами товары останутся
8 YurOK_51
 
23.06.11
12:45
А Ctrl+C и Ctrl+V разве не переносит элементы с идентификаторами?
9 dk
 
23.06.11
12:45
(4) хдееее?
10 dk
 
23.06.11
12:46
(7) слить номенклатуру - плохая идея
11 dk
 
23.06.11
12:46
(8) мимо
12 Steel_Wheel
 
23.06.11
12:46
(8) Не переносит. Внутренние идентификаторы будут различными. Только через обновление или сравнение/объединение
13 Defender aka LINN
 
23.06.11
12:46
(6) Ну так напиши. Тоже мне, проблему нашел
14 dk
 
23.06.11
12:47
(13) лениво
15 dk
 
23.06.11
12:55
помогите лентяю )
16 Живой Ископаемый
 
23.06.11
12:56
2(2)ну Config - этож тоже таблица в базе... правда не знаю как там искать...
17 Mickeleangelo
 
23.06.11
12:57
(10) Почему?
18 dk
 
23.06.11
13:00
база большая и перепроводить доки за несколько лет - не вариант
19 Sammo
 
23.06.11
13:02
(14) А не лениво копаться в SQL таблице с непредсказуемыми последствиями.
Ни разу не видел, чтобы меняли идентификатор предопределенного элемента.
20 Mickeleangelo
 
23.06.11
13:07
(18) Перепроводить? Достаточно перезаписать. Лучше с
ДокументОбъект.ОбменДанными.Загрузка = Истина;
Ну и с записями в регистрах аналогично.
21 dk
 
23.06.11
13:08
(19) немного сташно, но не лениво
просто колбасить правила - это долго и нудно, да и не только номенклатура может понадобиться, а других вариантов пока не видно
22 dk
 
23.06.11
13:10
(20) не, все равно плохой вариант
там еще и распределенка есть + эта номенклатура почти в каждом документе есть - это почти всю базу перезаписать и отправить в периферийки. а база больше 30 гб
23 rs_trade
 
23.06.11
13:13
(2) что там может быть в конфу зашито? предопределенный отличается от обычного только флагом [_IsMetadata].

Поменял сейчас уид. Все работает как обычно.
24 Живой Ископаемый
 
23.06.11
13:13
2(22) ну здрасьте - удалитьрегистрациюизменений...
25 dk
 
23.06.11
13:14
забудьте про вараинт перезаписи
26 Mickeleangelo
 
23.06.11
13:15
Быдлокод-стайл: Добавить в Базе 2 константы Товар 1, Товар 2…
27 dk
 
23.06.11
13:17
да, про константы думал - это крайний вариант
28 Sammo
 
23.06.11
13:34
(23) При изменениях у меня слетало
29 dk
 
23.06.11
13:35
(28) при каких изменениях?
30 qeos
 
23.06.11
13:48
(0) я так понял что это разовая трабла.. значит после переноса Товар1 должен быть по идее Предопределенный_Товар1, а оно не так..

тогда обработку, где идет поиск по ссылкам и замена Товар1 на Предопределенный_Товар1.. фсе..
31 rs_trade
 
23.06.11
13:49
(29) меняй не бойся )) старые уиды сохрани только. на всякий случай.
32 dk
 
23.06.11
13:50
(30) думаю не разовая, т.к. еще часть документов может понадобиться перенести
33 dk
 
23.06.11
13:51
(31) щас тестовую на скуле разворачиваю, проверять буду
34 qeos
 
23.06.11
13:59
(32) ну и в чем проблема после переноса еще раз выполнить КрутуюОбработкуПоСменеЭлементовСправочниковНаПредопределенные?
35 Aprobator
 
23.06.11
14:01
+ (31) меняй - нафиг вообще уид нужен? Ну ели только на него что то ссылается.
36 dk
 
23.06.11
14:01
(34) проблема, т.к. заранее не известно количество таких переносов и данные, которые будут в переносах
37 qeos
 
23.06.11
14:15
(36) тогда поправь правила.. это еще проще сделать
38 dk
 
23.06.11
15:04
(31) нифига, теперь предопределенные не находится через
Справочники.ХХХ.ИмяПредопределенного
придется в таблице конфиги рыться
39 dk
 
23.06.11
15:04
пишет объект не найден и старый идентификатор пишет
40 rs_trade
 
23.06.11
17:09
(38) сейчас еще раз поменял уид. все находится. как менял?
41 rs_trade
 
23.06.11
17:10
(38) мы же говорим о замене поля _IDRRef?
42 SunFox
 
23.06.11
17:33
Проще правилами разруливать, если работать обмен будет постоянно, не полиниться настроить КД.

Был программист в моей конторе до меня, так он чтоб КД не изучать нагенерил по умолчанию правил, а потом при необходимости правил не правила, а конфы... Пришлось все херить
43 SunFox
 
23.06.11
17:40
Если обработка выгрузку делает, то модифицировать ее чтоб работала с регистром сведений "СоответсвиеОбъектовДляОбмена" как например в типовых обменах
44 Immortal
 
23.06.11
17:45
можно поменять, да..
распотрошить конфу и запотрошить обратно..
45 Aprobator
 
23.06.11
17:46
(44) а че если все сделать быстро, будет очень даже незаметно.
46 Aprobator
 
23.06.11
17:50
+(45) в правилах очень тяжело тупо прописать условие, что Если ИсходноеУсловиеВыполняется Тогда // проверка хоть по кодам, хоть по наименованию, хоть еще каким способом
   Значение = "ИмяПредопределенногоЭлемента"
.....
А распотрошить и зашить - самое то.
47 dk
 
23.06.11
22:26
48 AaNnDdRrEeYy
 
23.06.11
22:36
Поменяй в первой базе гуид обычного элемента на гуид предопределенного из второй
49 dk
 
24.06.11
06:12
(48) уже обсуждали
50 dk
 
24.06.11
08:57
вверх, где любители ковырять внутренности 8-ки?
51 rs_trade
 
24.06.11
09:03
(50) скажи как менял и что потом сделал что бы ошибка вывалилась. я так и не смог ошибку получить.
52 dk
 
24.06.11
09:20
просто в скуле поменял
UPDATE [Per_dk].[dbo].[_Reference125]
SET _IDRRef = _IDRRef + 1
WHERE (_Code = 'ЭРИ00000005') AND (_IsMetadata = 1)
----
потом в табло результат видно - перестал по имени предопределенному искать
53 Immortal
 
24.06.11
09:37
(52)поменяй в файловой ИБ)
это интереснее
54 rs_trade
 
24.06.11
09:39
(52) действительно вываливается ошибка.

ну тогда вариант создать в базе 1 новые элементы. присвоить им гуиды предопределенных. а потом поиск и замена значений.
55 Sammo
 
24.06.11
09:39
На правах пятницы:
секс стоя и в гамаке...
56 Sammo
 
24.06.11
09:40
(54) Создать новые предопределенные с нужными гуидами можно (уже писали).
Но топикстартер не хочет делать поиск и замену. Это типа долго.
57 dk
 
24.06.11
09:43
не хочу
58 Широкий
 
24.06.11
10:19
В есть IE есть функционал - он позволяет конфу править (в том числе и менять ГУИДЫ метаданных).. Юзай ее и плюс замена в скуле
59 dk
 
24.06.11
10:50
(58) кто такой IE? поподробнее
60 vmv
 
24.06.11
10:53
зачем делать предопределенные элементы на типовом справочнике УПП, да еще и на самом используемом "Номенклатура"?

Что создать себе кучу проблем при обновлениях.

Если возможность создать свой РС, есть ПВХ, есть куча других способов решить задачу без слома типового функционала
61 Широкий
 
24.06.11
10:58
(59) Вернее EI - Enterprise Integrator
62 dk
 
24.06.11
10:58
про типовую забудь, эта база не будет обновляться
63 dk
 
24.06.11
11:03
(61) не знаю что это