Имя: Пароль:
1C
 
1C 7.7 dublicate key
,
0 cyberandr
 
12.04.17
02:27
Всем привет!
Не подскажите наша организация  использует 1С 7.7 +ms sql 2005. Я создал в базе новый Журнал документов (дополнительный) для одного вида документов. При сохранении 1С-ка долго висела и потом вы летела с ошибкой sql state 2000
The Create inique index slatement terminated because a diblicated key was found the object name dbo._1SCRDOC and the index name CHILD The dublicate key value is (DK3R , 3628, B1 4N 2RC                ) и на этом программа вылетает. Не подскажите как можно исправить этот индекс?
1 Злопчинский
 
12.04.17
03:05
пояндексить
и порыться здесь http://catalog.mista.ru/public/82018/
2 Il19
 
12.04.17
05:01
как кривой, но быстрый вариант - поковырять .dds
найти описание _1SCRDOC и поразбираться с уникальностью
нужного индекса в #----Indexes------
но!! на свой страх и риск!!! ну про бэкапы не забывай
3 Il19
 
12.04.17
05:03
(2) но (по фэншую) нужно искать корень зла, возможно отборы где-то кривые - погугли
4 VladZ
 
12.04.17
05:05
(0)  Проблема не в индексе. Проблема в данных. Посмотреть в DDS какие поля входят в индекс и искать по этим полям повторяющиеся записи.
5 Il19
 
12.04.17
05:14
(4) найти повторы данных можно в qa
но вот что является источником этой проблемы?
уже очень давно что-то похожее было и вроде как причина была в отборе (хотя мож и ошибаюсь)
6 alkov
 
12.04.17
05:40

SELECT distinct
      _1sjourn.docno,
      _1SJOURN.DATE_TIME_IDDOC
  FROM [MyInfoBase].[dbo].[_1SCRDOC]
    left join [MyInfoBase].[dbo].[_1SJOURN]
    on [_1SCRDOC].childid = [_1SJOURN].IDDOC
  group by PARENTVAL,CHILDID,MDID,DOCNO,DATE_TIME_IDDOC
  having count(*) > 1
  order by date_time_iddoc
GO
7 cyberandr
 
12.04.17
07:31
(6)Запустил и нашел 2 совпадения - а что теперь с ними делать?
8 cyberandr
 
12.04.17
07:32
может удалить?
9 alkov
 
12.04.17
07:32
docno -- номер документа в базе, в DATE_TIME_IDDOC содержится датавремя. Обычно перепроведение помогает
10 cyberandr
 
12.04.17
07:33
но в базу надо еще зайти а меня выбрасывает - создается индекс  и все ошибка
11 alkov
 
12.04.17
07:35
для индекса CHILD сними уникальность в 1cv7.dds, как в (2) сказано
12 cyberandr
 
12.04.17
07:43
ага нашел. интересно что лучше поставить 0 на уникальности или его вообще убрать?
13 alkov
 
12.04.17
07:46
0 на уникальности
14 DrZombi
 
гуру
12.04.17
07:49
(0) Открой в скуле свою таблицу, и грохни ненужные строчки, или измени ИД :)
15 DrZombi
 
гуру
12.04.17
07:50
(10) Работай через sQL.. 1С по сути всего лишь оболочка ;)
16 cyberandr
 
12.04.17
08:26
поставил 0 вроде входит но пересчитывает все ссылки. Вопрос а что делат дальше? Перепровести эти документы и снова сделать индекс уникальным или просто сделать индекс уникальным после открытия базы
17 Il19
 
12.04.17
08:32
попробуй вернуться к старой конфе (если есть возможность)
и естественно уникальность должна тоже восстановиться
а далее проверяй когда ошибка вылезет
18 alkov
 
12.04.17
08:44
(16) Да, после перепроведения, если тот запрос будет пустым, можно вернуть уникальность обратно
19 alkov
 
12.04.17
08:46
(16) Просто сделать индекс уникальным без исправления в данных приведёт тебя к (0) при любом следующем пересчёте ссылок
20 cyberandr
 
12.04.17
10:15
нет просто не позволяет работать :( придется пока индекс оставить не уникальным.
21 cyberandr
 
12.04.17
10:25
всем большое спасибо - буду воевать дальше - видимо в базе до этого были какие-то проблемы
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой