Неуникальность записей в регистре сведений. Чем лечить? #667399


#0 by SatansClaws
Из файловой базы выгружаю ДТшник. При попытке загрузить его в скулевую базу валится с ошибкой неуникальности значений в таблице регистра сведений. Делаю "проверку логической целостности" (тестирование + исправление) - выдает "    В таблице InfoRg6503 обнаружены неуникальные записи со значениями полей:        Fld6505 = NULL    Неуникальность записей устранена" Причем, по факту - не устраняет (повторное ТИИ выдает ровно то же самое). Плюс к ошибке неуникальности выдает "Неверный тип хранимого значения. Сохранено пустое значение допустимого типа." - это типо нуллы пытаются замениться на пустые ссылки. Аналогично, безуспешно. Пробовал удалить через форму списка. Типо удаляет. Жму Home - запись на месте (это не говоря про глюки в первичном отображении). Пробовал создать НаборЗаписей, сделать отбор по НУЛЛ-ам в этих полях, очистить-записать - тоже фиг. chdbfl ошибок никаких не находит (да и не должен, по большому счету). Чем лечить? ЗЫ структура регистра сведений примитивна: не подчинен регистратору, непериодический, 2 реквизита (ссылка на документ и ссылка на справочник одного из видов)
#1 by echo77
А отбор по NILLам что-нибудь отбирает? O_O
#2 by Defender aka LINN
Выгрузи регистр в файл (без дублей), запиши пустой набор без отбора и загрузи обратно
#3 by el-gamberro
delete from _InfoRg6503 where _Fld6504 is NULL       and _Fld6505 is NULL
#4 by Пеппи
Эта таблица случайно не РБ ?
#5 by Славен
регистр сведений :)
#6 by SatansClaws
была бы база скулевая - вопросов бы не задавал ЗЫ ну и НУЛЛ в понятии 1С и НУЛЛ в понятии скуля - немного разные вещи. 1С считает НУЛЛом что-то типа 0x000000000000000000000000000000000000
#7 by SatansClaws
Ну, да - похоже так и придется если даже так не поможет - тогда останется только покоцать в метаданных и создать его заново.
#8 by SatansClaws
Судя по поведению - нет. Обор по нуллам - это я уже извращался. Сначал, как умный, написал запрос (селект фром групбай хэвинг каунт(*) > 1 ) и шел по выборке. Потом узнал, что дубли только по пустым значениям - извращался уже без прикрас.
#9 by SatansClaws
Глупый вопрос в догонку: выгружать в файл самому (типо, сохранять гуиды ссылок), или есть более кошерные способы? ЗЫ написать мини-правила обмена не более кошерный, ибо по трудозатратам для меня выйдет столько же
#10 by Cyberhawk
ВыгрузкаЗагрузкаXML82
#11 by Cyberhawk
(обработка идет вместе с конфигурацией "Конвертация данных")
#12 by Defender aka LINN
А вот свистеть не надо. 0x000000000000000000000000000000000000 - это пустая ссылка
#13 by dmpl
НаборЗаписей без дублей попробуй через ЗначениеВФайл сбросить. Потом через ЗначениеИзФайла загрузить.
#14 by Ненавижу 1С
а разве не неопределено? клевая туча пустых значений, че
#15 by Defender aka LINN
Опять ты за свое... :)
#16 by dmpl
Дык как определить тип пустой ссылки, если тип реквизита составной? ;)
#17 by Defender aka LINN
Точно так же, как тип не пустой ссылки
#18 by dmpl
ОК. Определи тип ссылки 0x000000000000000000000000000000000000
#19 by SatansClaws
в таблицах такие реквизиты имеют до 3х полей хранения:
#20 by Ненавижу 1С
ссылка это тип+значение, а то что ты подсунул хз что
#21 by dmpl
Это не я подсунул, это в было обознано пустой ссылкой ;)
#22 by Defender aka LINN
Да. И что тебя смущает?
#23 by dmpl
Ну так определи тип этой т.н. "пустой ссылки".
#24 by SatansClaws
А куда делся ответ №2? о_0 Короче, этот способ помог. ХМЛ-ом даже не баловался - выплюнул ГУИДы+виды объектов в файл, загрузил из файла.
#25 by МихаилМ
если "в скулевую базу" = ms sql и версия больше 2000, то отключите индекс с помощью ddl триггера и удалите записи включите пересоздайте индекс.
#26 by Defender aka LINN
Тип в другом поле какбе
#27 by SatansClaws
а как это сделать?
#28 by МихаилМ
набрать в набрать в строке писка поисковой службы "ddl триггер" я приводил пример на этом сайте
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С