Вход | Регистрация



1C 7.7 dublicate key

1C 7.7 dublicate key
Я
   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/
   Il19
 
2 - 12.04.17 - 05:01
как кривой, но быстрый вариант - поковырять .dds
найти описание _1SCRDOC и поразбираться с уникальностью 
нужного индекса в #----Indexes------ 
но!! на свой страх и риск!!! ну про бэкапы не забывай
   Il19
 
3 - 12.04.17 - 05:03
(2) но (по фэншую) нужно искать корень зла, возможно отборы где-то кривые - погугли
   VladZ
 
4 - 12.04.17 - 05:05
(0)  Проблема не в индексе. Проблема в данных. Посмотреть в DDS какие поля входят в индекс и искать по этим полям повторяющиеся записи.
   Il19
 
5 - 12.04.17 - 05:14
(4) найти повторы данных можно в qa
но вот что является источником этой проблемы?
уже очень давно что-то похожее было и вроде как причина была в отборе (хотя мож и ошибаюсь)
   alkov
 
6 - 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

   cyberandr
 
7 - 12.04.17 - 07:31
(6)Запустил и нашел 2 совпадения - а что теперь с ними делать?
   cyberandr
 
8 - 12.04.17 - 07:32
может удалить?
   alkov
 
9 - 12.04.17 - 07:32
docno -- номер документа в базе, в DATE_TIME_IDDOC содержится датавремя. Обычно перепроведение помогает
   cyberandr
 
10 - 12.04.17 - 07:33
но в базу надо еще зайти а меня выбрасывает - создается индекс  и все ошибка
 
 Рекламное место пустует
   alkov
 
11 - 12.04.17 - 07:35
для индекса CHILD сними уникальность в 1cv7.dds, как в (2) сказано
   cyberandr
 
12 - 12.04.17 - 07:43
ага нашел. интересно что лучше поставить 0 на уникальности или его вообще убрать?
   alkov
 
13 - 12.04.17 - 07:46
0 на уникальности
   DrZombi
 
14 - 12.04.17 - 07:49
(0) Открой в скуле свою таблицу, и грохни ненужные строчки, или измени ИД :)
   DrZombi
 
15 - 12.04.17 - 07:50
(10) Работай через sQL.. 1С по сути всего лишь оболочка ;)
   cyberandr
 
16 - 12.04.17 - 08:26
поставил 0 вроде входит но пересчитывает все ссылки. Вопрос а что делат дальше? Перепровести эти документы и снова сделать индекс уникальным или просто сделать индекс уникальным после открытия базы
   Il19
 
17 - 12.04.17 - 08:32
попробуй вернуться к старой конфе (если есть возможность)
и естественно уникальность должна тоже восстановиться
а далее проверяй когда ошибка вылезет
   alkov
 
18 - 12.04.17 - 08:44
(16) Да, после перепроведения, если тот запрос будет пустым, можно вернуть уникальность обратно
   alkov
 
19 - 12.04.17 - 08:46
(16) Просто сделать индекс уникальным без исправления в данных приведёт тебя к (0) при любом следующем пересчёте ссылок
   cyberandr
 
20 - 12.04.17 - 10:15
нет просто не позволяет работать :( придется пока индекс оставить не уникальным.
   cyberandr
 
21 - 12.04.17 - 10:25
всем большое спасибо - буду воевать дальше - видимо в базе до этого были какие-то проблемы


Список тем форума
Рекламное место пустует  Рекламное место пустует
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует