|
Проблема с таблицами в SQL 1c 8.2 | ☑ | ||
---|---|---|---|---|
0
Bittin
21.07.11
✎
07:58
|
Здравствуйте.
У меня такая ситуация,делается переход с 8.1 на 8.2, конфигурация Бухгалтерия для Казахстана,клиент - серверный режим на MS SQL, после загрузки конфигурации, запускается отладка идет выполнение обновления бд, и во время обработки документов выдается ошибка следующего содержания: "{Обработка.ОбновлениеИнформационнойБазы.Форма.ЗаменаСсылокНаНеиспользующиесяСчета.Форма(510)}: Ошибка при вызове метода контекста (Записать) НаборЗаписей.Записать(); по причине: Попытка вставки неуникального значения в уникальный индекс: Microsoft OLE DB Provider for SQL Server: Не удается вставить повторяющуюся строку ключа в объект "dbo._AccRgAT35649" с уникальным индексом "_AccRg35649_ByPeriod_TRRRRRRRN". Повторяющееся значение ключа: (ноя 1 5999 12:00AM, 0xab8d602264cf180548c866b4006d6052, 0x915a0019d12005b711de6b75f3443ddb, 0x9180a24cb053d3bd419b3e926f77648a, 0x00000000000000000000000000000000, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, 0). HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2601, line=1" Тестирование и исправление не помогает. Покопавшись в инете нашел статью http://www.1c-pro.ru/index.php?showtopic=22793 в которой описывается как в sql найти эти значения и удалить и заново перепровести документ с ошибочными записями в бд, но выяснилась другая проблема некоторые записи в таблице нельзя удалить(выдается ошибка) и я незнаю какой у меня документ чтобы заново перепровести. В файловом обычном режиме проходит все нормально, но при загрузке обновленной бд в sql опять ставятся даты большие в той таблице либо если смещение стоит 0, то дата будет 3999 если смещение 2000 то дата будет 5999 Плиззз подскажите пожалуйста, как исправить. Заранее спасибо! |
|||
1
МихаилМ
21.07.11
✎
08:07
|
не забудте сделать архив (средствами скл)
перед экспериментами что записано в _YearOffset ? |
|||
2
Bittin
21.07.11
✎
08:08
|
2000
|
|||
3
МихаилМ
21.07.11
✎
08:11
|
(2)
какой номер релиза 1с 8.1 и 8.2 |
|||
4
Bittin
21.07.11
✎
08:17
|
8.1 1.5.19.5
8.2 2.0.3.14 |
|||
5
МихаилМ
21.07.11
✎
08:34
|
тут 2 проблемы
1) даты больше 3999 2) задовоение уник. индекса. скорее всего проще в коде обработки ,создающей записи , найти доки с неправильной датой можно отключить индекс если (он может быть создан для первичного ключа) и потом разбираться. |
|||
6
Bittin
21.07.11
✎
08:37
|
"можно отключить индекс если (он может быть создан для первичного ключа) "
а где его взять и как отключить? |
|||
7
МихаилМ
21.07.11
✎
08:58
|
в em или в ssms
!!! ПЕРЕД изменением запомнить начальное состояние. проще всего на таблице правой кнопкой мыши- криате скрипт- - альтер табле и полученный скрипт сохранить далее в дереве таблиц есть поддерево сопутствующих объектов там есть indexex на нем дисабле или отключить. если рагается на первичный ключ то в таблица-изменить убрать ключик индекс сам исчезнет. но потом его надо будет восстановить. |
|||
8
Bittin
21.07.11
✎
09:18
|
отключил индекс, но когда пытаешься отредактировать таблицу он говорит ошибка индекс отключен.
Нашел документы которые вызывали ошибку-документы "Операции(бухгалтерский и налоговый учет)" т.е. документы где вручную забивали остатки на конец года. Смотрел по коду набор записей который он формирует, то у них дата нормальное 2009 год. Когда их удаляешь то все норм. |
|||
9
rs_trade
21.07.11
✎
09:22
|
Да не надо индекс отключать. Строку двойник грохнуть да и все.
|
|||
10
rs_trade
21.07.11
✎
09:25
|
Только еще желательно узнать кому она принадлежит. Потом перепровести что бы.
|
|||
11
sda553
21.07.11
✎
09:27
|
проблема простая, скорее всего меняли состав субконт. Теперь в sql ной таблице почему то остались записи не с теми видами субконто какие нужно. Я не раз исправлял эту проблему, но вменяемая и понятная инструкция слишком длинная будет
|
|||
12
Bittin
21.07.11
✎
09:37
|
sda553, пжлста, распишите немогу врубиться как исправить эту ситуацию. Действительно я посмотрел по обработке эта таблица содержит "итоги по субконто3"
Просто база срочно, нужна на нервы действуют. |
|||
13
Bittin
21.07.11
✎
09:38
|
rs_trade, строк одинаковых там штук 20, 3 штуки удаляются остальные говорят что записят от других 11 и не удаляются
|
|||
14
rs_trade
21.07.11
✎
09:49
|
(12) Итоги вообще можно полностью грохнуть. Потом пересчитать просто и все.
|
|||
15
detec
21.07.11
✎
09:57
|
(14) как именно грохнуть? С помощью TABLE TRUBCATE?
|
|||
16
detec
21.07.11
✎
10:00
|
*TRUNCATE
|
|||
17
Bittin
21.07.11
✎
10:19
|
так мне что зайти в таблицу изменить выбору из
SELECT TOP 1000 [_Period] ,[_AccountRRef] ,[_Splitter] FROM [OtdelStroyTriumfAstany2].[dbo].[_AccRgAT35649] на TRUNCATE TABLE [OtdelStroyTriumfAstany2].[dbo].[_AccRgAT35649] так? |
|||
18
rs_trade
21.07.11
✎
10:22
|
(17) Если эта таблица точно итоги, которые можно рассчитать. То да.
TRUNCATE TABLE [OtdelStroyTriumfAstany2].[dbo].[_AccRgAT35649] |
|||
19
Bittin
21.07.11
✎
10:28
|
а самой базы какое должно быть смещение 2000 или 0? сейчас 2000
|
|||
20
sda553
21.07.11
✎
10:31
|
(12)
Берем таблицу SQL которая хранит занчения субконто от того регистра который _AccRg35649 джойним ее с самой таблицей _AccRg35649, джойн делаешь по _RecorderRRef _LineNo и выставляешь _Correspond=0x00 для дебета или _Correspond=0x01 для кредита. (надо сделать по очереди вначале для дебета, потом для кредита) Из этого джойна отбираем _KindRRef и _AccountDtRRef для дебета или AccountCtRRef для кредита. |
|||
21
sda553
21.07.11
✎
10:35
|
Сравниваем эти данные с таблицей _Acc[...номер какой то...]_ExtDim[.№..] который хранит план счетов от твоего регистра
Там должны быть поля _DimKindRRef и _Acc[.#.]_IDRRef которые должны сходится с результатами полученными в (20) Именно несовпадение и вызывает эту ошибку |
|||
22
sda553
21.07.11
✎
10:39
|
Грохание итогов не поможет, т.к. ошибка вызывает именно тем что в итоги пытается записаться нехорошая запись при обработке документов, а не в итогах сидит нехорошая запись
|
|||
23
rs_trade
21.07.11
✎
10:41
|
(22) не факт. попробовать можно.
|
|||
24
sda553
21.07.11
✎
10:42
|
(23) Факт, я же уже упоминал, что часто исправлял эту ошибку
|
|||
25
Bittin
21.07.11
✎
10:52
|
поставил обновление, появились записи с датами в таблице очистил через TRUNCATE TABLE [OtdelStroyTriumfAstany2].[dbo].[_AccRgAT35649], запустил опять и опять записи появились
|
|||
26
Bittin
25.07.11
✎
07:51
|
я сделал такой запрос
SELECT [_Period] ,[_AccountRRef] ,[_Fld5632RRef] ,[_Fld5633RRef] ,[_Fld6326RRef] ,[_Value1_TYPE] ,[_Value1_RTRef] ,[_Value1_RRRef] ,[_Value2_TYPE] ,[_Value2_RTRef] ,[_Value2_RRRef] ,[_Value3_TYPE] ,[_Value3_RTRef] ,[_Value3_RRRef] ,[_Fld5634] ,[_TurnoverDt5641] ,[_TurnoverCt5642] ,[_Turnover5643] ,[_Fld5635] ,[_TurnoverDt5644] ,[_TurnoverCt5645] ,[_Turnover5646] ,[_Splitter] FROM [OtdelStroyTriumfAstany].[dbo].[_AccRgAT35649] Where [OtdelStroyTriumfAstany].[dbo].[_AccRgAT35649]._Correspond=0x00 Теперь он ругается на то что нет такого столбца. И Правильно, там нет такого, где его взять...? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |