Имя: Пароль:
1C
1С v8
Проблема неуникальности при переводе с файловой на SQL
0 МешочекЗнаний
 
04.04.17
21:45
Приветствую уважаемые.

КА 1.1 файловая (Платформа 8.3.6), 15 ГБ перевожу в SQL 2012.
Выгрузил dt, загружаю в SQL - получаю ошибку SQL сервера - неуникальная запись в уникальной таблице AccRgT744.

Сделал ТиИ без галок реиндексации и сжатия, выгрузил dt ещё раз, гружу опять та же ошибка.

Как можно быстро найти эту запись и удалить?
1 H A D G E H O G s
 
04.04.17
21:47
Отключить итоги перед выгрузкой
2 МешочекЗнаний
 
05.04.17
08:45
(1) Спасибо
Теперь новая проблема

Ошибка загрузки информационной базы. В информационную базу загружены не все данные
по причине:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 11.0: The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo._AccRgED1152' and the index name '_AccRgED1152_ByPeriod_TRNRN'. The duplicate key value is (Nov 30 4014 11:59PM, 0x000001fa, 0xb911001e6746b00411e479d1b60bc875, 11, 0xb5bec72d2c1ac9714487aece7c698fe5, 0).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=10, native=1505, line=1
3 toypaul
 
гуру
05.04.17
08:52
наверное надо проверку перед выгрузкой было запустить? по крайней мере на 7ке раньше так было :)

ну а вообще в сообщении все написано
4 toypaul
 
гуру
05.04.17
08:54
а...проверка сделана ... проблема в дублях при подсчете итогов
5 toypaul
 
гуру
05.04.17
08:56
вот тут http://main.1c-ei.ru/Home/help/objectdb/dbschema

написано что  AccRgED<n> - таблица значений субконто регистра бухгалтерии, создается в том случае, если он ссылается на план счетов, у которого максимальное количество субконто больше нуля.
6 toypaul
 
гуру
05.04.17
09:03
"таблица значений субконто регистра бухгалтерии" какая-то загадочная таблица. вроде и не итоги, а строится явно каким-то подсчетом.
7 МихаилМ
 
05.04.17
09:35
данные загрузились.

1с для таблиц данных (не системных) индексы создает после загрузки данных.

найдите дубли , сохраните в отдельную таблицу , удалите дубли. создайте индексы. разберитесь с ответственными за данные , как на отчетность повлияло удаление задвоенных.
8 Serg_1960
 
05.04.17
10:06
В файловой не проверяется уникальность записей. Это же азбука. Имхо, можно/нужно самостоятельно выявлять и ликвидировать неуникальность записей. Запрос проверки неуникальности строится по ключевым полям индекса (его наименование - в тексте ошибки). Их можно "подсмотреть" в структуре хранения данных. Впрочем ключ индекса и без этой информации можно узнать. Более подробно - http://www.gilev.ru/index/
9 МихаилМ
 
05.04.17
10:20
(8)

осталось выяснить как построить
запрос 1с8 ,  чтобы выбрать задвоенные (или детальные) записи из таблиц субконто для файловой базы
10 МешочекЗнаний
 
05.04.17
10:22
(7) Похоже что и вправду загрузилось

С TSQL дружу плохо, родил такой запрос:

SELECT DISTINCT [_Period]
      ,[_RecorderTRef]
      ,[_RecorderRRef]
      ,[_LineNo]
      ,[_Correspond]
      ,[_KindRRef]
      ,[_Value_TYPE]
      ,[_Value_RTRef]
      ,[_Value_RRRef]
  FROM [agro_upp_test_01].[dbo].[_AccRgED1152]
  group by [_Period]
      ,[_RecorderTRef]
      ,[_RecorderRRef]
      ,[_LineNo]
      ,[_Correspond]
      ,[_KindRRef]
      ,[_Value_TYPE]
      ,[_Value_RTRef]
      ,[_Value_RRRef] having count(*)>1

Вывел записи, посмотрел в базе - относятся к документу расчету себестоимости.
В форме списка творятся чудеса, то показывает Расчет себестоимости 000000012 от 30.11.2014 10:07:20, то Расчет себестоимости 000000012 от 30.11.2014 23:59:59. Буду смотреть на что с этим делать.
11 Вафель
 
05.04.17
10:22
помниться на регистре бух была ошибка если вместо пустых ссылок в субкото было неопределено или нул.
Такое могло быть при переносе проводок
12 mehfk
 
05.04.17
10:23
(0) dt выгрузил из файловой ?
13 Вафель
 
05.04.17
10:24
14 mehfk
 
05.04.17
10:25
Тьфу, увидел что из файловой. Сделай ТиИ на файловой платформой посовременнее.
15 МешочекЗнаний
 
05.04.17
10:28
(12) Да, Dt из файловой
(14) делал - пост №(0), 8.3.8.2137

При просмотре движений документа Расчет себестоимости 000000012 выпадает та же ошибка в SQL. Отменить проведение неполучается, опять пишет ошибку неуникальности. Попробую в файловой перепровести и выгрузить.
16 eklmn
 
гуру
05.04.17
10:41
(15) вообще распроведи его, потом в новой базу проведешь
17 Serg_1960
 
05.04.17
10:55
(9) Хмм... мне легче установить на компе PostgreSQL, развернуть базу из DT и там ликвидировать неуникальность.