|   |   | 
| 
 | Проблема с таблицами в 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 Теперь он ругается на то что нет такого столбца. И Правильно, там нет такого, где его взять...? | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |