Как да повредите база данни и след това да я върнете към живот

още няколко думи за 1C

Ако не сте специалист по работа с бази данни 1C, тогава можете да направите проста грешка при актуализиране: вместо да стартирате процедурата за обединяване (при която системата анализира разликите в структурата на данните), заменяте конфигурационния файл с нов, просто го записвате върху стария. Най-голямото изкушение да направите това е в случай на локална база данни във файловата версия, т.е. когато всички данни се съхраняват в DBF файлове. Ето един пример и ще ви кажа какво се случва и как да го поправите.

И така, след замяна на файла 1cv7.md с нова версия, при стартиране на 1C:Enterprise виждаме нещо като това съобщение: „Грешка в кодовата база, неразпознато име на поле…“

след

И зад него, например, това: „Структурата на данните на таблицата е нарушена ...“

повредите
Тези съобщения показват, че при отваряне на файлове на база данни системата открива, че тяхната структура, т.е. имената или параметрите на полетата в таблиците не съвпадат с това, което тя очаква да види. И да разбере какво иска да види е много просто: структурата на данните е описана в текстов файл, който се намира в същата папка като конфигурационния файл, нарича се 1cv7.dd. Като отворите този файл, например, със стандартен Notepad и потърсите по името на таблицата DH553, можете да разберете, че това е документ Изчисление, освен това тук можете да видите, че грешката е в заглавката на документа, т.к. табличната му част се съхранява във файл DT553 - това се вижда и в описанието на структурата.

Логиката на горния пример е проста: когато анализирате файла с описание на структурата на данните и самите данни, първо трябва да коригирате описанието на структурата към съществуващите данни и след това да върнете промените в конфигуратора, т.е. върнете детайлите в състоянието, което е описано в структурата преди ръчните корекции. И, разбира се, не забравяйте за резервните копия,всичко това може да се избегне просто чрез възстановяване на базата данни от копието, направено преди актуализацията.