Имя: Пароль:
1C
1С v8
Изменился владелец у справочника
0 Nast
 
15.04.15
18:37
Помогите, пожалуйста, разобраться с проблемой.
При обновлении произошла какая-то ошибка.
У нас есть справочник, у которого владельцем является справочник Характеристики номенклатуры и 2 реквизита - Номенклатура и Характеристика.
Как-то так произошло, что в конфигураторе изменился владелец на справочник Номенклатура и исчезли реквизиты. При этом в базе остались старые данные, т.е. владелец справочник Характеристики номенклатуры и данные по владельцу есть, если сформировать запрос.
Изменить владельца в конфигураторе теперь не получается. Возникает ошибка - ошибка Ошибка SDBL: Быстрая вставка запрещена (не было вызова suspendIndexing().
Если добавлять реквизиты, то ошибка Тип поля CAST(Reference36681.OwnerID AS REF(Reference345)) AS OwnerID несовместим с типом поля OwnerID
1 Nast
 
15.04.15
18:38
Можно ли как-то удалить владельца? Обработкой не получается, владелец должен быть заполнен.
2 MiniMuk
 
15.04.15
18:41
(1) А владельца програмно поменять можно? задвоились контрагенты, хочу перенести договора??
3 mehfk
 
15.04.15
18:45
(1) Создай нового владельца и перекинь на него такие записи.
4 Nast
 
15.04.15
18:49
так не создать нового владельца, ошибка при обновлении.
Удалить нельзя, добавить нельзя.
5 mehfk
 
15.04.15
18:50
Немного неверно выразился. Создай новый элемент справочника номенклатура и установи владельцем его.
6 Nast
 
15.04.15
18:52
Т.е. обработкой пройти по всем записям нашего справочника и установить владельцем какой-то элемент справочника номенклатура? Ошибка получается - не верно записан владелец или как там пишется.
7 mehfk
 
15.04.15
18:55
Бэкап есть?
8 Nast
 
15.04.15
19:02
бэкап есть конечно
9 mehfk
 
15.04.15
19:05
Удали справочник, потом создай заново и перелей данные из бэкапа.
10 Nast
 
15.04.15
19:07
как удалить справочник? А ссылки все в документах? У нас во многих документах этот справочник используется как реквизит.
Была идея создать новый справочник.
11 Nast
 
15.04.15
19:08
Переносить данные еще во все документы? Там много данных.
12 mehfk
 
15.04.15
19:11
Выгрузи cf, создай новую базу, средставми SQL переименуй таблицу в больной базе, и создай заново аналогично новосозданной базе.
13 mehfk
 
15.04.15
19:14
Как вариант ТиИ на еще одной копии и скопировать таблицу.
14 Nast
 
17.04.15
23:04
какую таблицу скопировать после ТиИ? И если поможет ТиИ, то почему не сделать его тогда на рабочей базе?
15 mehfk
 
17.04.15
23:12
ТиИ приведет структуру базы SQL к той, которую ты видишь в конфигураторе. После этого чтобы восстановить данные, тебе надо будет восстановить прежнюю структуру таблицы в конфигураторе и скульным запросом перелить данные.
16 Nast
 
17.04.15
23:44
ТиИ приведет структуру базы SQL к той, которую ты видишь в конфигураторе, можно сделать это в рабочей базе, на копии потренироваться сначала.
После этого в конфигураторе можно будет уже сделать структуру как надо и потом обработкой восстановить данные из копии.
Можно так?
17 mehfk
 
17.04.15
23:46
Yes! Но треннируйся на копии.
18 Nast
 
17.04.15
23:46
Главное, чтобы ТиИ сработало и можно было восстановить структуру в конфигуреторе, чтобы при обновлении при смене владельца не было ошибки.
19 mehfk
 
17.04.15
23:48
ТиИ, может, конечно и обломиться. Пока не сделаешь - не узнаешь.
20 Ma3eIIa
 
17.04.15
23:50
(10) что как база одна. удаляешь. потом по гуи перенос обратно. и там где будет объект не найден будет твой объект
выгрузка и загрузка по хмл
21 Ma3eIIa
 
17.04.15
23:51
(20) главное что бы новых не было
22 Nast
 
17.04.15
23:54
(20) понятно, тоже хороший вариант
23 Ma3eIIa
 
17.04.15
23:56
(22) другого не вижу. если в бекапе все норм. то потом все обратно так же встанет. а тии точно не поможет. а кто такую какую сделал
24 mehfk
 
17.04.15
23:59
Не удалишь - сам же сказал что в существующих объектах есть ссылки.
25 mehfk
 
17.04.15
23:59
*не удалишь в конфигураторе.
26 Nast
 
17.04.15
23:59
что не удалишь?
27 mehfk
 
18.04.15
00:00
В общем, это проще показать на пальцах, чем на словах :)
28 Ma3eIIa
 
18.04.15
00:01
Ссылка=Справочники.Номенклатура.НайтиПоКоду("000000026");
Удаление = Новый УдалениеОбъекта(Ссылка);
Удаление.Записать();

разве не удалит?
29 mehfk
 
18.04.15
00:01
Задача номер один - привести структуру БД к ожидаемой (той, что видна в конфигураторе).
30 Ma3eIIa
 
18.04.15
00:10
(29) все убить потом вернуть как было. а уже типовым выгрузить загрузить
31 mehfk
 
18.04.15
00:13
Лишняя операция. Проще сразу получить в базе SQL таблицу ожидаемой структуры.
32 Nast
 
18.04.15
02:38
При проверке логической целостности - неверная ссылка на владельца. Для исправления надо поставить Создавать объекты?