Слетела кодировка в справочнике

puh14

Well-Known Member
11.07.2008
1 412
0
НеРезиновая
#1
Имеется 7.7 ТИС 9.2

Сегодня утром позвонили, сказали что у них в документах вместо товаров сплошное "объект не найден". Разница в справочниках из архива и текущем в 300 добавленых позиций. Попросил прислать файлы справочников номенклатуры из архива и текущий. ПРислали. Смотрю и фигею - у текущей версии первые две тыщщи позиций в какой-то совершенно невнятной кодировке - не дос, ни винда, вообще какой-то вьетнам. После двух тысячной всё идет в 1251 кодировке. Вопрос - можно ли это дело перекодировать как надо, или сшивать кусок от бекапа + новые? Если сшивать, то чем лучше?
 
K

krenk

Гость
#2
что сбилось? код справочника или внутренний идентификатор?

если "объект не найден", то , видимо идентификатор, тогда пипец.... :(
 

puh14

Well-Known Member
11.07.2008
1 412
0
НеРезиновая
#3
Ни то ни другое скорее всего. Сравнение по идентификаторам и кодам сказало что различий нету. Первый раз такое вижу - первые две тыщи позиций идут в кодировке ,отличной от 1251. может комп и идентификаторы из-за этого не воспринимает.
 
K

krenk

Гость
#4
мож попробовать выгрузить-загрузить базу.... тестирование прогнать.... мож база сама разберется где ошибка...
 

puh14

Well-Known Member
11.07.2008
1 412
0
НеРезиновая
#6
Еслиб ещё знать кто есть кто в этой кодировке. У меня такое чувство что в всей 1с кодировка стоит 1251 - а тут хрен знает какая. 1с пытается открыть справочник и на первой-же позиции дохнет ( или определяет что кодировка не та и дохнет).
Попробовал тупо в экселе склеить и подсунуть - не прокатило. Мож надо было cdx удалить?
Кстати - ДБФ какой версии использует 1с 7.7?

На данный момент решил попробовать через с 1с++ с прямыми запросами сделать и переписать таблицу - а то програмно до id не добраться.

Посмотрел в хекс эдиторе - изменен 00 байт (тип таблицы ), 01 - 03 байт - дата изменения таблицы, и 08-09 байты ( размер заголовка в байтах, кстати - нахрена он нужен? в архиве был 0). Попробую хексом поменять несовпадения, и посмотреть что будет. Индексы побайтово совпадают, наименованиея хрен - другие байты блин...
 

puh14

Well-Known Member
11.07.2008
1 412
0
НеРезиновая
#8
HEX помог - восстановилось. Слепил кусок из бекапа и из текущего. После склейки главное НЕ ИСПРАВЛЯТЬ КОНФИГУРАЦИЮ! Просто cdx снести. Иначе почти все родители подохнут. Ну и конечно всё надо переносить на свежую базу - косяков в структуре море. Кратко - косяк был такой: в каждом поле количество байт записано в 16 байте заголовка поля. Так блин в начале что-то перелопачило это дело (По параметрам в поле 9 байт, в реале - 4, соответственно асчо пять байт откусывало от следующего поля, на последующих полях так-же) - в результате всё сместилось и программа видела кашу из данных. Это было главной проблемой, ну и первые 32 байта тоже привел в соответствие.

Сильно сомневаюсь што это могли сделать ручками - скорее всего вирусняк какой.
 

vitfil

IT-интегратор
02.04.2004
2 062
0
44
Минск
#9
Сомневаюсь, что это был вирусняк... скорее всего либо файловая ошибка, либо кто-то влез ручками в DD и подправил.