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