Тестування і виправлення бази 1с
Функціонування програми може порушитися внаслідок аварійного припинення роботи, наприклад при відключенні електроенергії. Потім в базу даних не вдається увійти.
Іноді функціонуюча програма може показувати невірні результати. Зі списку «зникають» документи, при спробі відкрити документ програма зависає, в звітах з'являються дивні результати. Всі ці «глюки» припиняються після тестування і виправлення.
Помилки можуть виявлятися не настільки грубо, але будь-які несподіванки й неточності є приводом для «ремонтних робіт».
Причини, які ведуть до проблем:
- Аварійне припинення роботи (раптове відключення живлення);
- Фізичний знос жорсткого диска;
- Збої в роботі комп'ютера.
Перед виправленням бази зробіть резервну копію
Перш ніж тестувати базу даних, обов'язково потрібно зробити її резервну копію.
Якщо вдалося увійти в Конфігуратор, то потрібно вибрати в меню опцію Адміністрування → Вивантажити інформаційну базу, як на рис.1. У вікні, потрібно задати каталог для запису резервної копії та ім'я файлу, в якому буде збережений архів.
Перед тестуванням і виправленням копія робиться обов'язково, оскільки при виправленні виконуються незворотні зміни даних. Іноді (дуже рідко) вони можуть не поліпшити, а погіршити стан бази даних.
При нормальній роботі резервні копії потрібно робити регулярно, найкраще - щодня. Для того, щоб ця робота виконувалася автоматично, встановіть безкоштовну програму Бекапер-1С Резервні копії бухгалтерії.
Краще зберігати резервні копії не на тому ж носії, де розташована сама база. Підійде флешка, сховище в Інтернеті, інший жорсткий диск. Адже іноді втрата даних буває пов'язана з фізичним зносом жорсткого диска.
Наявність резервних копій - страховка від втрати даних. Однак не можна поручитися, що в резервних копіях все ідеально, тому актуальність опції Тестування і Виправлення не зменшується.
Мал. 1. Вивантаження даних.
- Резервні копії потрібно робити регулярно;
- Резервні копії потрібно зберігати на іншому носії;
- Для автоматизації є програма Бекапер-1С Резервні копії бухгалтерії;
- Перед тестуванням і виправленням обов'язково роблять копію бази.
Виправлення інформаційної бази внутрішніми засобами програми
Після того, як зроблена резервна копія, відкриємо базу в режимі Конфігуратора. Вибираємо опцію меню Адміністрування → Тестування і виправлення інформаційної бази.
У вікні, потрібно проставити галочки (рис.2).
Але краще не робити цього: не всі операції, перераховані в меню, необхідні при ремонті після аварії.
Рис.2. Вікно тестування і виправлення 1с 8 з проставленими галочками у всіх пунктах. Так робити НЕ ТРЕБА:

Якщо відзначити всі пункти, запуститься довгий процес. Результати тестування і виправлення відображається в нижній частині вікна. Після виконання дій потрібно клацнути по кнопці Закрити.
Виконати всі - не найкращий варіант! Кваліфіковані користувачі виконують дії поетапно і вибірково.
етапи виправлення
Розглянемо всі пункти меню Тестування і виправлення.
- Реіндексація таблиць інформаційної бази;
- Перевірка логічної цілісності;
- Перевірка посилальної цілісності;
- Перерахунок підсумків;
- Стиснення таблиць;
- Реструктуризація таблиць.
Перший етап, реіндексація таблиць інформаційної бази, допомагає вирішити 90% проблем. Що відбувається в процесі реіндексація?
Внесення даних в довідники, створення нових документів супроводжується їх автоматичним упорядкуванням. Назви шикуються в алфавітному порядку, документи - по датах і т.д. При цьому фізичний порядок проходження записів не змінюється. Записи виводяться на екран у певному порядку, тому що їм присвоєні номери (індекси), і відповідність індексу фізичного номеру запису міститься в таблицях індексів.
Індекси дуже важливі:
- Пошук в індексованих таблицях відбувається у багато разів швидше, ніж в неіндексованих;
- Індексний номер - це унікальний «код» записи, за індексами виконується зв'язок між записами з різних таблиць;
- Індексні таблиці - це каркас інформаційної бази; без них програма 1с не працює.
Порушення індексних таблиць призводить до хаосу в уявленні документів. Може, наприклад, засвітитися документ, в якому відсутні найменування товарів, але є їх кількість.
Кожна нова запис супроводжується змінами в таблицях індексів: наприклад, після внесення в довідник записи, що починається на букву А, їй буде присвоєно один з перших індексів, а всі інші індексні номери будуть змінені. Невелика пауза, що виникає після внесення нового запису, пов'язана з перерахунком індексів; чим більше база, тим помітніше пауза.
Створення документа і записів в ньому надає руху кілька індексних таблиць (іноді кілька десятків). Фактично, реіндесація таблиць в 1с ведеться постійно під час роботи з даними. Але в робочому режимі індексуються кожен раз одна або кілька таблиць, а при тестуванні та способи їх усунення виконується повна індексація всіх таблиць, і цей процес, для великих баз, займає тривалий час.
Отже, при переиндексации відбуваються такі процеси:
- Записи заново ранжуються і упорядковуються;
- Відновлюється зв'язок між таблицями та іншими об'єктами;
- У багатьох випадках - відновлюється робота програми.
Після переиндексации можна перевірити - відновилася чи працездатність бази.
Наступний етап - перевірка логічної цілісності. Перевіряється відповідність реальної структури інформаційної бази і її опису в Зміни (наявність об'єктів, наявність зв'язків між об'єктами). Ця перевірка часто повідомляє про помилки навіть у чинній базі, не слід панікувати при таких повідомленнях. Однак це привід для звернення за консультацією до фахівця.
Перерахунок підсумків - тривала і ризикована процедура. В 1с проводиться перерахунок результатів в штатному режимі, але він ведеться не «від початку часів», а з початку місяця. Підсумкові значення відслідковуються в регістрах, це прискорює роботу. Якщо включити перерахунок підсумків в режимі тестування і виправлення, то перерахунок здійсниться від моменту створення бази, причому правильні поточні значення регістрів можуть "поплисти" через давно видалених або виправлених «заднім числом» документів. В результаті тривала робота по перерахунку не принесе користі.
Якщо немає необхідності, то від перерахунку підсумків краще утриматися.
Стиснення таблиць - це процедура фізичного видалення записів, які були помічені на видалення і перестали виводитися на екран. Таких записів може бути дуже багато, вони без користі роздмухують обсяг бази даних.
Стиснення таблиць - корисна функція, хоча її виконувати не обов'язково.
Реструктуризація таблиць - операція, актуальна при переході на нову версію програми. При реструктуризації створюються порожні таблиці з форматом, заданим в конфігурації, і в них переноситься, запис за записом, інформація зі старих таблиць. У нових таблицях можуть бути розширені поля, додані нові поля. Реструктуризація - це операція, яка повинна підготувати інформаційну базу для роботи по-новому, і вона абсолютно необхідна при оновленнях.
Якщо ніякі версії не змінювалися, то реструктуризація не потрібна, ця тривала процедура нічого не додасть і не змінить.
Отже, при виправленні «впала» програми необхідні і корисні опції:
- Реіндексація таблиць інформаційної бази
- Перевірка логічної цілісності
- Перевірка посилальної цілісності
Що робити, якщо не вдається запустити Тестування і виправлення?
Якщо база сильно пошкоджена і навіть в Конфігуратор не вдається увійти, залишається ще одна можливість відновлення: скористайтеся утилітою chdbfl.exe. Файл можна знайти в папці Bin каталогу установки (рис.3).
Мал. 3. Вибір утиліти chdbfl.exe

За записи в командному рядку, показаної на рис.3, видно, що шлях до файлу лежить через каталог 1сv8.2, або 1сv8.3, коротше кажучи, через каталог програми. Він може бути розташований в папці Program Files або в іншій папці. Потрібно знайти місце розташування каталогу і відкрити його. Усередині каталогу відкрити папку Bin,
Запустивши виконуваний файл, вибирайте базу, що підлягає виправленню, і дозвольте виправляти виявлені помилки (рис.4)
Рис.4. Вікно програми chdbfl.exe

Підведемо підсумки. Якщо програма не починається після аварійного переривання роботи, потрібно зробити наступне: