Имя: Пароль:
1C
1C 7.7
v7: Восстановление dbf
0 Mafiozaa
 
14.12.23
09:06
Приветствую, всех с наступающим, подскажите пожалуйста посыпалась номенклатура, когда захожу в нее там кракозябры, и сразу вылетает, запускал ТиИ, физ целостность, реиндексация. Удалял cdx и делал переиндексацию, 3-и сутки стоит логическая целостность, что можете посоветовать к восстановлению, ближайшая целая более менее копия, месячной давности, ее дергать не хочу так как при последущих обменах все ссылки поплывут, хочется как нибудь восстановить именно текущую базу, есть ли варианты?)
1 DimVad
 
14.12.23
09:11
(0) Я семёрки не знаю но вот вопрос "А можно взять справочник номенклатуры из базы что на другом узле" ?

Там же вроде просто dbf скопировать (а потом переиндексироваться). Ну или сразу с cdx.
2 Андрей_Андреич
 
naïve
14.12.23
09:14
Ну и не факт что посыпалась только номенклатура
3 Mafiozaa
 
14.12.23
09:15
(1) Думал об этом, но на практике постеснялся, но ведь на другом узле совсем другие ссылки, сдернуть дбф и сделать переиндексацию, не положит ли он мне всю базу?
4 Mafiozaa
 
14.12.23
09:15
(2) Я больше скажу, определенно не факт, еще посыпалась табличная часть дока переоценки, при нажатии заполнить зависает и ничего не происходит, если прерываю, бывает залетает Объект не найден
5 DimVad
 
14.12.23
09:19
(4) Ну ведь либо восстанавливать с узла - либо с копии.
Делайте копию еженощно :-)
6 Mafiozaa
 
14.12.23
09:21
(5) Копии делаются ежедневно после рабочего дня, вот только дело в том что обратились только тогда когда уже вылетала 1ска из номенклатуры, начал по копиям искать целую номенклатуру наткнулся на живую только в месячной давности
7 Mafiozaa
 
14.12.23
09:22
Проверка логической целостности может выправить эту ситуацию? на крайний момент просмотра, она там восстанавливала объекты других справочников
8 Андрей_Андреич
 
naïve
14.12.23
09:24
Вычищать годами будете. Есть повод перейти на восьмерку.
9 AAA
 
14.12.23
09:28
Если проверка физической целостности проходит, значит таблица не разрушена. Другое дело, почему тогда кракозябры. Видимо все-таки в таблицу (и скорее всего не в одну номенклатуру) записался мусор. Ищите просмотрщики dbf файлов (фокпро и просто вьюеры есть) и смотрите кищки файлов. Мусор можно вычистить вручную.
10 AAA
 
14.12.23
09:28
(8)а в файловой 8-ке и жизни не хватит )
11 AAA
 
14.12.23
09:30
пришлите dbf файл номенклатуры на почту, могу глянуть что в нем
12 Mafiozaa
 
14.12.23
09:35
(11) Через часов 5 буду дома, сброшу, физ целостность проходит без ошибок
13 Андрей_Андреич
 
naïve
14.12.23
09:36
Я обычно сначала делаю выгрузить-загрузить. Куча косяков DBF уходит при этом - часто этого и хватает
14 Mafiozaa
 
14.12.23
09:38
(13) Этого тоже не пробовал, подумал что если шлак выгружу то шлак и загружу
15 andrewalexk
 
14.12.23
10:04
(8) :) Нуралиев перелогинься лысый черт
16 АгентБезопасной Нацио
 
14.12.23
10:16
(15) разве Нуралиев лысый?
17 АгентБезопасной Нацио
 
14.12.23
10:23
(3) если миграция номенклатуры - полная, то никаких "других ссылок" быть не может.
Если на периферийках номенклатура живая - значит, можно просто взять файл оттуда. недостающие элементы можно создать контролем логической целостности.
18 АгентБезопасной Нацио
 
14.12.23
10:25
(8) за пару-тройку часов можно вообще с нуля из базы и лога создать файл номенклатуры...
19 Mafiozaa
 
14.12.23
10:35
(17) Хорошо, опробую вариант, спасибо
20 АгентБезопасной Нацио
 
14.12.23
10:40
(19) и не забывай про переиндексацию
21 uno-group
 
14.12.23
13:34
Ид что в локале что в перифирии, что в копии одинаковый тупо подсовываешь не битый файл и переиндексируешся потом ТИ с созданием элементов. ИЗ другой базы открываешь файл номенклатуры программно и работаешь с ним вычещая мусор. потом переиндексация.
22 uno-group
 
14.12.23
13:36
+За последний месяц пересматриваешь приходы на момент создания новой номенклатуры восстанавливаешь ее название по бумажным документам.
23 АгентБезопасной Нацио
 
14.12.23
13:55
(22) название и из ЖР легко подтянуть можно.
24 Mafiozaa
 
14.12.23
14:02
(11) Отправил вам файлик
25 АгентБезопасной Нацио
 
14.12.23
14:05
(24) ну и мне уж кинь (mikeware на mail_ru). погляжу.
26 uno-group
 
14.12.23
15:00
(23) Для созданных ТИ удаленных элементов проблемно будет их сопоставить с конкретной записью ЖР.
Создавать по ЖР и потом находить где они в документах использовались исправлять эти документы дольше и проблемнее.
27 АгентБезопасной Нацио
 
14.12.23
15:11
(26) созданные ТиИ элементы будут иметь тот же ид, с которым найдены ссылки  на отстутствующий в справочнике элемент. Т.е. тот же ид, который был при создании элемента. Т.е. тот же ид, который записан в ЖР. Т.е. совершенно ничего сложного нет. тривиальщина.
28 Mafiozaa
 
14.12.23
15:14
(25) Ушло
29 uno-group
 
14.12.23
15:22
(27) Объект не найден (174/ВО) в представлении объектра Номенклатура код наименование
ИД вроде как длиннее. Сам ее восстанавливал по журналу давно не помню. У меня много элементов программно создаются при экспорте документа и в логи журнала это не пишется.
30 АгентБезопасной Нацио
 
14.12.23
15:24
(28) нормальное файло, без всяких ошибок. 494215 записей.
31 АгентБезопасной Нацио
 
14.12.23
15:26
(29) ну, это вы кошек готовить не умеете...
32 Mafiozaa
 
14.12.23
15:29
(30) Только вылетает через 3-5 сек как открываю номенклатуру,  и куча поехавших индексов, по типу кусок наименования в коде, в наименовании всякие внутрение коды, аля 22FFLD99 1 3NVB1 1J
33 uno-group
 
14.12.23
15:29
Может у него там всякие символы до 13 кода затесались в полях. Другие просмотрщики ДБФ их нормально хавают а проверка 1сная на них ругается. Она и на Украинские і ї дает ошибки при проверке хотя все работает просто проверка не проходит.
34 uno-group
 
14.12.23
15:30
(32) Основное представление в виде кода, а не наименование случайно не включили?
35 Mafiozaa
 
14.12.23
15:31
(34) Нее, ни в коем случае)
36 uno-group
 
14.12.23
15:32
Пришли файл гляну
37 uno-group
 
14.12.23
15:34
В NEW_STRU глянь случайно нет файла номенклатуры может кто то недавно ему все таки поменял структуру
38 Mafiozaa
 
14.12.23
15:35
(37) Ушел файл, пустая папка
39 Mafiozaa
 
14.12.23
15:36
Удалил cdx переиндексировался, залез в номенклатуру, если не вставать на косячный элемент, то вроде как могу потихоньку перемещаться по папкам, встаю, подвис, вылетел
40 Mafiozaa
 
14.12.23
15:39
41 АгентБезопасной Нацио
 
14.12.23
15:53
(39)Есть таки косяки
42 uno-group
 
14.12.23
16:03
отправил смотри
43 АгентБезопасной Нацио
 
14.12.23
16:09
(39) в общем, если с перифериек нормальный не возьмешь (ошибки в записях вроде с 51183 физической записи, там десяток записей битых) - пиши либо в почту, либо сюда в тему, либо в телегу
44 Mafiozaa
 
14.12.23
16:12
(43) Хорошо, спасибо. Завтра с другого магаза сдерну, проверю
45 Mafiozaa
 
14.12.23
16:12
(42) заменил, переиндексируюсь, отпишусь
46 Mafiozaa
 
14.12.23
16:14
(42) Тоже самое
47 Djelf
 
14.12.23
16:23
(40) Ой, ой, ой. Точно такого я еще не видел!
Но у меня совсем недавно сбился внутренний пойнтер в dbf на одном файле и в результате новая запись затерла часть хидера с описанием полей dbf, результат предсказуем. Восстановил из копии, благо сбой произошел в выходные.

Можно вот так еще попробовать:

Если ЗагрузитьВнешнююКомпоненту("1sqlite.dll")=0 Тогда
    Сообщить("1sqlite.dll не загрузилась");
    Возврат;
КонецЕсли;
ТекстЗапроса="
|DELETE FROM Справочник_Номенклатура AS Номенклатура
|WHERE substr(Номенклатура.CODE,1,1)=' '
|";
База = СоздатьОбъект("SQLiteBase");
База.Открыть(":memory:");
База.РазрешитьDELETE(1);
Запрос = База.НовыйЗапрос();
Запрос.ВыполнитьЗапрос(ТекстЗапроса);


Должно на любой моей сборке сработать: https://cloud.mail.ru/public/9znr/ZJ6ULE9aR
А потом ТиИ с созданием потеряных объектов.

P.S. "кривые" коды начинаются с пробела, а "прямые" с него не начинаются! Вот мы все кривые разом и грохнем, все равно в них информация бесполезна.
48 AAA
 
14.12.23
16:18
(43)а в чем косяк в 51183? вроде целая, это группа как я понял
49 Mafiozaa
 
14.12.23
16:23
(47) Я на глаз после обработки врятле увижу изменения? Так то вроде ошибки не выдало
50 Mafiozaa
 
14.12.23
16:25
(47) Вру, База.РазрешитьDELETE(1) поле агрегатного не обнаружено
51 Djelf
 
14.12.23
16:25
(49) > А потом ТиИ с созданием потеряных объектов.
Иначе не увидишь.
52 AAA
 
14.12.23
16:26
Отсортировал по коду, вначале мусор
53 Djelf
 
14.12.23
16:34
(50) Значит у тебя есть оригинальная версия от Орефкова, она такое не умеет, но загружается она.
Я точно не помню, может и мои первые версии не умели.
Забирай последнюю - не ошибешься.
54 AAA
 
14.12.23
16:28
Там дохрена кривых записей, просто очень много
55 АгентБезопасной Нацио
 
14.12.23
16:28
(48) номер примерный, я просто обработку написал, запустил и домой поехал.
56 Djelf
 
14.12.23
16:35
(52) Код в (47) удалит по RowID, но скрин в (52) интересный...
Видимо WHERE substr(Номенклатура.CODE,1,1)=' ' будет недостаточно, что-то еще костылить в этом же стиле придется.
57 AAA
 
14.12.23
16:33
Это похоже на сбой дисковой системы Там просто мусор реально
58 AAA
 
14.12.23
16:34
Там есть пустые коды, потом куча кодов типа "   0 "
"    1 "
59 Mafiozaa
 
14.12.23
16:36
(58) Я тоже думал про винт, поэтому первым делом у них перенес на другой винт базу
60 AAA
 
14.12.23
16:38
короче файл по моему дерьмо, куча записей с пустым Id, есть с Id = 1.000  )
61 AAA
 
14.12.23
16:40
Вычистить это можно, но какое доверие, что то что осталось достаточно. Надо брать с периферии
62 Mafiozaa
 
14.12.23
16:48
(61) Нашел на ноуте старую базу переферийную с нее сдернул номенклатуру, щас проиндексируюсь гляну че по итогу получится
63 AAA
 
14.12.23
16:48
у кучи записей съехали поля - в поле наименования комбинация из других полей.
64 Mafiozaa
 
14.12.23
16:52
Вообщем заменил с другой периферии, открыл все красиво, буду завтра тянуть актуальную номенклатуру со свежей базы
65 Djelf
 
14.12.23
16:55
(61) Если она есть, то тоже должна быть повреждена, обмен то туда-сюда (если не хитрить с обменом).
(0) Откатывай на последнюю рабочаю копию dbf`ки номенклатуры, все что мы тут уже посоветовали не восскресит базу. Терять все равно уже нечего.
66 Djelf
 
14.12.23
16:57
(64) Это повезло, а синхронизация тоже сломалась когда повредился файл в основной базе?
67 Mafiozaa
 
14.12.23
16:59
(66) Что странное, к ним ежедневно приходят обмены с центральной, и оно проходит нормально, что туда что обратно
68 Mafiozaa
 
14.12.23
17:01
(66) я обменом не рулю, поэтому не знаю, возможно по номенклатуре нет обратки,потому что они на точке в номенклатуре не могут ничего изменить, все изменения с номенклатурой летят от центральной
69 Mafiozaa
 
14.12.23
17:06
Подскажите еще, нужно ли будет делать логическую целостность, после того как я заброшу целую номенклатуру, ибо она на моем домашнем компе +- сильном, 3и сутки идет и конца не видать)))
70 AAA
 
14.12.23
17:14
Эти записи просто не мигрировали, так как их никто не менял. Из-за сбоя на диске просто файл попортился. Все кривые записи в серединке и среди 500 000 записей их сначала и не видно.
71 Djelf
 
14.12.23
17:30
(69) Оно где-то зациклилось, так бывает.

Тут все как обычно - перезагрузи комп 4 раза.
Поставь обкуривание компа вьетнамской палочкой.
И обязательно бубен, без бубна это не работает!

Прервать процесс. Он где-то зациклился.
Увы, такое бывает, непредсказуемо, день у меня висел такой, потом прибил процесс и за 2 часа загрузил.

Тут нет правил, только замеры и ощущения и если что-то работает, но не так - перезагрузите компьютер 3 раза.

Ну можно 2, или даже 1.

А лучше вырубите комп из розетки на ночь и дайте ему отдохнуть, и сами тоже отдохните.
72 Mafiozaa
 
14.12.23
17:28
(71) Интересно смогу ли я щас могу оставить в базе только CDX и DBF Одной номенклатуры и запустить логику, он только ее обработает, потом закинуть все что вытащил и запуститься
73 Mafiozaa
 
14.12.23
17:30
(72) Ерунду смолол, с какими он будет таблицами связи искать тогда)
74 АгентБезопасной Нацио
 
14.12.23
17:39
(67) и это нормально. наиболее вероятно, что изменяются (и летают туды-сюды) последние записи. А похерились где-то в серединке.
(68) тем не менее, в файле - элементы, созданные в разных базах
(69) если  будет свежий файл - проводить не надо. в конце концов, сделаешь копию и гоняй на ней хоть месяц до результа....
75 АгентБезопасной Нацио
 
14.12.23
17:42
(73) (73) у тебя там штук 10 ссылочных типов. оставь еще и те справочники  (перечисления и так останутся), и запускай. Только это бессмысленно от слова совсем - ты не найдеешь ссылкок на ОТСУТСТВУЮЩИЕ элементы
В лучшем случае проверишь валидность структуры справочника.
76 Mafiozaa
 
15.12.23
07:50
Всем большое спасибо за подсказоньки и потраченное время, закинул целую свежую номенклатуру, сделал переиндексацию, сделал обмен в центральную, все везде зашло без ошибок.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший