Имя: Пароль:
1C
1С v8
Помогить присвоить ID элементу справочника 8.2
0 maxmb
 
12.03.13
09:34
Нужно поменять программно ID элемента справочника Организация.Кто делал, подскажите код.
1 qeos
 
12.03.13
09:35
Организация.ID = Другой;
Организация.Записать();
2 Fragster
 
гуру
12.03.13
09:37
id не меняется
3 Fragster
 
гуру
12.03.13
09:38
если про УникальныйИденификатор речь
4 Maxus43
 
12.03.13
09:39
создавать новый с нужным гуидом, замена ссылок
5 Maxus43
 
12.03.13
09:39
а зачем?
6 hhhh
 
12.03.13
09:42
(5) ну бывает. Нужно из двух баз сделать РИБ, а в них как назло организации с разными уидами.
7 qeos
 
12.03.13
09:43
(6) переписать правила для поиска по другим полям
8 maxmb
 
12.03.13
09:46
(6) да, базы огромны и ссылки перекинуть нету возможности
9 Галахад
 
гуру
12.03.13
09:46
UUID  = Новый УникальныйИдентификатор(ГУИД);
НоваяСсылка = Справочники.Номенклатура.ПолучитьСсылку(UUID);

СпрНом = Справочники.Номенклатура.СоздатьЭлемент();
СпрНом.УстановитьСсылкуНового(НоваяСсылка);
СпрНом.Записать();
10 Fragster
 
гуру
12.03.13
09:46
(6) слить в одну, потом поиск и замена с ИТС
11 maxmb
 
12.03.13
09:47
(10)она не проходит до конца, делает что то 2е суток и вываливается
12 Fragster
 
гуру
12.03.13
09:48
(11) ну так напиши свою... кстати, если базы файловые - то они могут быть поломанные...
13 maxmb
 
12.03.13
09:48
при большом массиве данных она не работает.
14 maxmb
 
12.03.13
09:49
еще раз говорю - объем большой, ссылки менять не реально.
15 maxmb
 
12.03.13
09:49
С файловыми лет 8 не работаю.
16 Fragster
 
гуру
12.03.13
09:49
(14) пофигу на объем
17 Fragster
 
гуру
12.03.13
09:50
, ссылки менять реально. по другому - никак
18 Maxus43
 
12.03.13
09:51
(14) меняй порциями, по 100 тыщ объектов за итерацию например
19 maxmb
 
12.03.13
09:52
(18) ну только так, гоблины дергают, базы постоянно в работе.
20 Defender aka LINN
 
12.03.13
09:52
(14) Нас уговаривать не надо, все равно не поможет
21 Maxus43
 
12.03.13
09:53
(19) ещё (7). Организацию по ИНН можно сопоставлять
22 qeos
 
12.03.13
09:54
я бы поменял правила
23 maxmb
 
12.03.13
09:54
Не хочу менять, потом еще больше проблем.
24 Serg_1960
 
12.03.13
09:55
ТС, фишка в том, что если ты "изменишь" ID у существующего объекта, то для платформы это будет уже другой объект, другая ссылка. Это действие равноценно удалению старого объекта и создание нового объекта с "нужным" тебе ID.
25 hhhh
 
12.03.13
09:55
(19) можно еще групповой обработкой справочников и документов. Выбираешь вид документа; например ПОступление товаров и услуг, и меняешь в них организацию. Потом следующий вид документа. Думаю за полчаса всё перелопатишь. ТАм от силы 10-12 видов документов. А на остальное напустишь ПоискИЗаменаЗначений - на остаток она пройдет.
26 maxmb
 
12.03.13
09:57
(25)молочу таким макаром 2е сутки,спать хочется.
27 qeos
 
12.03.13
09:58
(23) зря ты так. там-то делов: одну галку снять другие правильно расставить..
28 maxmb
 
12.03.13
10:00
(18) буду менять порциями, по 100 тыс объектов.Другого варианта нету. Правила копать не хочу.
29 qeos
 
12.03.13
10:02
(28) вот теперь меня это заинтересовало: по какой причине ты отказываешься это делать?
30 Serg_1960
 
12.03.13
10:03
(29) А чё тут непонятного. ТС из существующих баз данных пытается "сделать" РИБ :)

"Бойтесь своих желаний, иногда они сбываются"(с)
31 qeos
 
12.03.13
10:05
на РИБ накладывается ограничение: не изменять правила ни в каких случаях?
32 Serg_1960
 
12.03.13
10:07
Нет, не накладывается :) У ТС идея-фикс - реализовать обмен по GUIDам, как в "настоящем" РИБе.
33 hhhh
 
12.03.13
10:08
(29) это бред потому что. Лучше один раз заменить, хоть на это неделя уйдет. Организация практически везде, и зачем такой риб нужен с таким правилом, которое каждую секунду будет по двести раз вызываться? РИБ можно делать вообще без правил.
34 Serg_1960
 
12.03.13
10:10
(ALL) Плиз, не путайте правила обмена и правила конвертации.
35 qeos
 
12.03.13
10:12
(34) !! точно
36 Serg_1960
 
12.03.13
10:32
(чисто теоретически) В принципе можно в SQL "напрямую" тему тс сделать. Получить нужные значения _IDRRef (старой и "новой" организаций), а потом обойти все таблицы и заменить одно значение на другое. Можно чисто механически, без анализа содержимого таблиц - значение всё-таки уникальное.
37 Torquader
 
13.03.13
01:15
(36) Таки это можно сделать и без SQL - "сляпать" новый элемент с нужным GUID простым копированием текущего элемента (установитьСсылкуНового), а потом обойти все ссылки на старый и поменять на новый (такая стандартная обработка есть).
38 Sammo
 
13.03.13
04:53
(36) Теоретически уникальные. У разных объектов метаданных могут быть одинаковые гуиды, если руками залазили...