|   |   | 
| 
 | Повреждена таблица. Подскажите как ее восстановить из копии средствами SQL? | ☑ | ||
|---|---|---|---|---|
| 0
    
        evorle145 23.04.24✎ 09:41 | 
        В рабочей базе некоторые документы не проводятся, выдает ошибку SQL Server detected a logical consistency-based I/O error: incorrect checksum (expected: 0x757ab996; actual: 0x0f5dc709). It occurred during a read of page (1:19760772) in database ID 9 at offset 0x000025b0d08000 in file 'D:\DATA\nameBase.mdf'.  
 Запуск ТИИ обрывается на таблице AccumRgChngR10196 РегистрНакопления.НДСЗаписиКнигиПродаж Подскажите, как эту таблицу восстановить из имеющейся копии базы средствами SQL? Выгрузкой загрузкой данных еще не пробовал... Подскажите, стоит ли ей попробовать? | |||
| 1
    
        Волшебник 23.04.24✎ 09:42 | 
        Снесите регистрацию изменений, потом пересоздайте узел обмена     | |||
| 2
    
        Ёпрст гуру 23.04.24✎ 09:51 | 
        (0) если маленькая табличка, то truncate table + insert into select * from копия таблички
 Если большая, то через булку. В вашем случае, проще грохнуть все записи в этой табличке целиком (это всего лишь регистрация изменений) | |||
| 3
    
        Ёпрст гуру 23.04.24✎ 09:53 | 
        Хотя, если скуль не может ужо прочитать страничку, то там , скорее всего, не только эта табличка поломана.
 Лечите базу (для начала, мдф/лдф копировать на другой диск) | |||
| 4
    
        evorle145 23.04.24✎ 09:58 | 
        (1) (2) Понял! Подскажите, пожалуйста, как выглядит или должен выглядеть примерно запрос, который очистит все записи из таблицы AccumRgChngR10196 . Хочу попробовать на копии базы..     | |||
| 5
    
        Mihenius 23.04.24✎ 10:00 | 
        (0) Я бы еще дисковую подсистему всю проверил.     | |||
| 6
    
        Волшебник 23.04.24✎ 10:05 | 
        (4)  TRUNCATE TABLE AccumRgChngR10196 Ещё можно исключить регистр из плана обмена и провести реструктуризацию. | |||
| 7
    
        evorle145 23.04.24✎ 10:28 | 
        (6) благодарю! на копии базы запустил, пока получил ошибку:
 Msg 4701, Level 16, State 1, Line 2 Cannot find the object "AccumRgChngR10196" because it does not exist or you do not have permissions. Completion time: 2024-04-23T00:15:12.6544529-07:00 права вроде у меня там полные: https://postimg.cc/DSTqwvRC | |||
| 8
    
        Ёпрст гуру 23.04.24✎ 10:32 | 
        (7) есть уверенность, что есть AccumRgChngR10196 в этой базе ?     | |||
| 9
    
        Ёпрст гуру 23.04.24✎ 10:33 | 
        Имена табличек, почти всех, с _  начинаются. если че     | |||
| 10
    
        evorle145 23.04.24✎ 10:34 | 
        (8) да, конечно, вот, я ее вижу:
 https://postimg.cc/V0PNW6qp | |||
| 11
    
        Ёпрст гуру 23.04.24✎ 10:35 | 
        (10) Проверьте зрение: _AccumRgChngR10196     | |||
| 12
    
        Kongo2019 23.04.24✎ 10:36 | 
        (10)То что ты ее видишь и то что она есть разные вещи.     | |||
| 13
    
        evorle145 23.04.24✎ 10:36 | 
        (9) (11) да, извините, переволновался... очистил... смотрю результат...     | |||
| 14
    
        Ёпрст гуру 23.04.24✎ 10:37 | 
        Если не знаете, как писать, то там есть в визарде - скрипт табле ас, или селект топ 1000, заменяете потом на нужное.     | |||
| 15
    
        evorle145 23.04.24✎ 11:02 | 
        да, таблица AccumRgChngR10196 очистилась, провести счет фактуры теперь дает.
 Но в списке битых таблиц оказались еще эти: _Reference93 "Справочник.Склады" _Document252_VT7285 "Документ.СчетНаОплатуПокупателю.Товары" _Document133_VT18206 "Документ.ВводНачальныхОстатков.ТоварыВРозничнойТорговлеАТТ" _Reference91 "Справочник.СерверыДокументооборота" из них испольвались _Reference93 и _Document252_VT7285 ... очистить их нельзя... получается остается только один вариант копировать из копии? | |||
| 16
    
        Optan 23.04.24✎ 11:10 | 
        (15) Может это вам частично поможет:
 https://infostart.ru/1c/articles/192648/ | |||
| 17
    
        Ёпрст гуру 23.04.24✎ 11:11 | 
        (15) как узнали ?
 DBCC CHECKDB хотя бы делали ? Че кажет ? | |||
| 18
    
        evorle145 23.04.24✎ 11:19 | 
        (17) вот как раз DBCC CHECKDB и подсказал, что эти таблицы имеют пробелмы...     | |||
| 19
    
        evorle145 23.04.24✎ 11:31 | 
        А почему если повреждена таблица _Document252_VT7285 "Документ.СчетНаОплатуПокупателю.Товары" то я могу сейчас записать/изменить любой существующий счет на оплату, но создать новый не могу?
 Может нужна какая-то просто переиндексация этой таблицы? | |||
| 20
    
        Волшебник 23.04.24✎ 11:39 | 
        База полностью разрушена. Кажется, диск сыпется.     | |||
| 21
    
        evorle145 23.04.24✎ 11:47 | 
        (20) база была восстановлена из mdf файла... все бэкапы были зашифрованы, остался только mdf . Установили новый сервер, установили sql, 1C сервер. При соединили этот mdf  файл. В итоге вроде все работает, но вот эти 4 таблицы... _Reference91 "Справочник.СерверыДокументооборота" - эта например, в 1с вообще не открывается,  эта "_Reference93 "Справочник.Склады" в 1с открывается, но новый склад создать невозможно. То самое с таблицей _Document252_VT7285 "Документ.СчетНаОплатуПокупателю.Товары"... А остальное-то вс е работает..     | |||
| 22
    
        Волшебник 23.04.24✎ 11:48 | 
        (21) Всё сносите и поднимайте заново из бэкапа     | |||
| 23
    
        evorle145 23.04.24✎ 11:50 | 
        (22) нет бэкапа достаточно свежего.. поэтому и подключали из mdf ...     | |||
| 24
    
        Ёпрст гуру 23.04.24✎ 11:55 | 
        (21) склады, можно взять с копии, можн0 ручками прям в скуле поправить (не думаю, что у вас там больше 10 записей)
 счет на оплату , с копии. ЗЫ: ну или хотя бы чек с REPAIR_ALLOW_DATA_LOSS запустить | |||
| 25
    
        evorle145 23.04.24✎ 11:58 | 
        (24) понял. Подскажите, пожалуйста, выгрузкой загрузкой xml из копии можно взять?  (копия еще только разворачивается, проверить не могу) Или это средствами sql в ssms  нужно делать? Если не трудно, намекните пример запросов на копирование таких таблиц. В гугле читаю - но пока нет уверенности, что понял как это сделать.     | |||
| 26
    
        Ёпрст гуру 23.04.24✎ 12:18 | 
        (25) как угодно, в скуле быстрее просто.
 truncate table [BaseName_1].[dbo].[_Document252_VT7285]; insert into [BaseName_1].[dbo].[_Document252_VT7285] SELECT * FROM [BaseName_Copy].[dbo].[_Document252_VT7285] | |||
| 27
    
        Ёпрст гуру 23.04.24✎ 12:20 | 
        Это, если обе базы на одном сервере, если на разных, то сперва прилинковать сервер, потом запрос.
 Можно и не писать это руками, а через импорт/экспорт.. тупо мышой в остнастке | |||
| 28
    
        evorle145 24.04.24✎ 08:49 | 
        В итоге пока застряли на том, что ищем подходящий бэкап, чтобы из него копировать эти 4 битых таблицы...
 Мне правда, не очень понятно, почему в базе все работает, но если я хочу создать новый склад, то валится с ошибкой повреждения данных таблиц sql. Ведь любой существующий склад 1с изменить дает. Почему так получается, что если таблица в sql по складам повреждена, почему туда новую запись нельзя сделать? | |||
| 29
    
        Волшебник 24.04.24✎ 09:12 | 
        (28) снесите эти таблицы и постарайтесь жить без них     | |||
| 30
    
        evorle145 24.04.24✎ 10:07 | 
        (29) но это же таблица складов.. Ведь если снести их, то что будет в документах, где есть ссылки на эти склады?
 Таблицу счетов на оплату, допустим, грохнуть можно... | |||
| 31
    
        Волшебник 24.04.24✎ 10:09 | 
        (30) Создадите новые склады, перенесёте ссылки     | |||
| 32
    
        arsik гуру 24.04.24✎ 10:11 | 
        (30) а в скуле дает селект по _Reference93, _Document252_VT7285 сделать?
 Если дает, сделайте селект + транк + инсерт Ну или выгрузите-загрузите в(из) DT | |||
| 33
    
        evorle145 24.04.24✎ 10:22 | 
        (32) да, запрос 
 SELECT TOP (1000) [_IDRRef] ,[_Version] ,[_Marked] ,[_PredefinedID] ,[_ParentIDRRef] ,[_Folder] ,[_Code] ,[_Description] ,[_Fld1459] ,[_Fld1460RRef] ,[_Fld1461RRef] ,[_Fld1462RRef] ,[_Fld1463RRef] ,[_Fld11802] FROM [namebase].[dbo].[_Reference93] выполняется. А что даст "селект + транк + инсерт"? типа выбрать таблицу и вставить ее саму в себя.. просто не очень понял идею? | |||
| 34
    
        evorle145 24.04.24✎ 10:20 | 
        (31) понял, попробую на копии базы сейчас. 
 А снести таблицу складов это вы имеете ввиду так: TRUNCATE TABLE _Reference93 ?или ее удалить, а потом как то добавить новую? | |||
| 35
    
        Волшебник 24.04.24✎ 10:21 | 
        (34) пофиг     | |||
| 36
    
        arsik гуру 24.04.24✎ 10:23 | 
        (34) 
 1) Создаете временную таблицу селектом из поломанной 2) Удаляете поломанную 3) Селектом из временной создаете новую примерно как то так | |||
| 37
    
        arsik гуру 24.04.24✎ 10:25 | ||||
| 38
    
        Ёпрст гуру 24.04.24✎ 11:22 | 
        (33) если селект из .[_Reference93] выполняется, но не даёт ввести новый, то скорее всего есть мусор в предопределенных данных - в табличке есть, в config нетуИли наеборот     | |||
| 39
    
        Ёпрст гуру 24.04.24✎ 11:26 | 
        покажи картинку, чего кажет
 select * from _Reference93 | |||
| 40
    
        evorle145 24.04.24✎ 12:42 | 
        (39) вот пожалуйста:
 https://postimg.cc/JsX2dncq и внизу еще написано, что запрос выполнен успешно https://postimg.cc/GBJSd5fT | |||
| 41
    
        evorle145 24.04.24✎ 12:43 | 
        (38) но это же справочник Склады.. База 1С БП... там же никогда не было предопределенных элементов.. Да и вторая таблица _Document252_VT7285 "Документ.СчетНаОплатуПокупателю.Товары" с тем же диагнозом. Новый счет на оплату не создать, старые редактировать дает.     | |||
| 42
    
        arsik гуру 24.04.24✎ 12:54 | 
        (41) А индексы не пробовали пересоздать?
 Вариант из (36) можно упростить. Без временной. Прям реальную таблицу создать в базе только с каким ни будь префиксом, потом удалить основную и переименовать созданную. И насколько база большая? Может все же проще в dt, из dt? | |||
| 43
    
        evorle145 24.04.24✎ 13:27 | 
        (42) понял! тоже думали над этим вариантом, будем пробовать его сегодня.
 "И насколько база большая? Может все же проще в dt, из dt?" ТИИ не проходит, думаю что в dt Тоже не выгрузится.. размер 450ГБ. год назад в dt выгружал (7 часов выгружалось) | |||
| 44
    
        evorle145 24.04.24✎ 13:28 | 
        (42) а можно индексы пересоздать по выбранным таблицам? подскажите, как это происходит? как это делать?     | |||
| 45
    
        Ёпрст гуру 24.04.24✎ 13:46 | 
        (41) проапдейть табличку и избавься от null в полях, из там быть не должно     | |||
| 46
    
        youalex 24.04.24✎ 14:08 | 
        (45) Там isfolder 0     | |||
| 47
    
        Ёпрст гуру 24.04.24✎ 14:25 | 
        (46) с телефончика не видно, еще и папки в папки есть..
 Ну, копия таблички, перенос всего, без иерархии, для начала, так бы сделал. Возможно, есть циклические ссылки в иерархии | |||
| 48
    
        evorle145 24.04.24✎ 15:28 | 
        (45) подскажите плиз, что имеете ввиду под проапдейтить?
 "избавься от null в полях, из там быть не должно" а там null не в элементах, а только в папках. То есть справочник склады иерархический, и там есть папки, вот для папок есть NULL в тех полях, где для группы реквизит не может быть указан... | |||
| 49
    
        Ёпрст гуру 24.04.24✎ 15:44 | ||||
| 50
    
        evorle145 26.04.24✎ 10:12 | 
        подскажите плиз:
 при проверке на логическую целостность, ругается на таблицу: "AccRgAT1593" "" "РегистрБухгалтерии.Хозрасчетный" "ИтогиПоСчетамССубконто1" я могу ее очистить? Она заполнится в момент Пересчета итогов? p.s. Сейчас на копии очищаю AccRgAT1593 , запускаю ТИИ и выполняется все кроме пункта "Реиндексация таблиц информационной базы". Я полагаю, это за битых таблиц по склады и СчетаНаОплату.Товары. (эти таблицы пока не удалось восстановить, бэкап пока не найден). | |||
| 51
    
        Волшебник 26.04.24✎ 10:23 | 
        (50) все итоги по счетам формируются на базе проводок     | |||
| 52
    
        evorle145 26.04.24✎ 10:42 | 
        (51) а в какой момент? ну то есть если я очищу эту таблицу в sql, что что надо будет мне сделать, чтобы она заполнилась по новой?     | |||
| 53
    
        Волшебник 26.04.24✎ 10:42 | 
        (52) ТИИ / Пересчёт итогов     | |||
| 54
    
        evorle145 26.04.24✎ 10:45 | 
        (53) благодарю! тоже так думал (и на копии пересчет итогов прошел успешно), но перед тем как провернуть аналогичные действия на рабочей базе - решил подстраховаться)     | |||
| 55
    
        Ёпрст гуру 26.04.24✎ 11:11 | 
        (54) 3 дня делаешь уже какой-то примитив. тебя там тапком не прибили еще ?     | |||
| 56
    
        Волшебник 26.04.24✎ 11:12 | 
        (55) Продажи стоят, наверное...     | |||
| 57
    
        evorle145 26.04.24✎ 11:18 | 
        (55) (56) да, сейчас мне не очень весело.. это точно.     | |||
| 58
    
        Волшебник 26.04.24✎ 11:39 | 
        (57) Вы тормоз продаж! Давно бы уже развернули базу хоть какую-то     | |||
| 59
    
        Ёпрст гуру 26.04.24✎ 11:50 | 
        (57) (24) делали на копии этой базы хотя бы ?     | |||
| 60
    
        evorle145 26.04.24✎ 12:17 | 
        (58) продажи в другой базе.. не в 1С.. правда и там не все хорошо... (59) вот сегодня хочу сделать.. До этого REPAIR_ALLOW_DATA_LOSS  не запускал, потому что могут быть потери данных .. хотя на копии базы, наверное, можно попробовать..     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |