Исправление 1с. Тестирование и исправление информационной базы

Если с вашей базой 1С (например, с ) возникли проблемы, полезли различные ошибки или даже она перестала запускаться, то не стоит торопиться вызывать . Вы можете самостоятельно выполнить тестирование и исправление базы 1С (конфигурации).

1 шаг. Первое и самое важное, что нужно сделать перед исправлением любой конфигурации, – . Мы не зря привели 2 способа создания резервной копии базы 1С. Даже если конфигурация перестала запускаться в режиме конфигуратора, вы всегда сможете сделать ее копию, воспользовавшись 1 способом - копированием фала конфигурации.

2 шаг. Запускаем систему 1с в режиме конфигуратора. В главном меню программы выберите «Администрирование – Тестирование и исправление…».

Если ваша конфигурация повреждена на столько, что не запускается даже в режиме Конфигуратора, то для ее восстановления можно , которая входит в комплект поставки 1С Предприятие 8.

3 шаг. Перед нами открывается окно с настройками режима проверки и исправления базы 1С. После выбора подходящего режима вы можете нажать кнопку «Выполнить».

Данная проверка в зависимости от размера вашей базы может выполняться очень долго. Поэтому рекомендуется выбирать по одному режиму проверки в порядке их следования (вначале только режим «Реиндексация таблиц информационной базы», затем только режим «Проверка логической целостности информационной базы» и т.д.) и после каждого исправления проверять пропали или нет ошибки в базе 1С.

Давайте рассмотрим все режимы проверки и исправления по-порядку:

Реиндексация таблиц информационной базы

Для ускорения поиска по определенным реквизитам объектов нашей конфигурации система 1с формирует индексы. В данном режиме исправления система сформирует все индексы заново.

Проверка логической целостности информационной базы

Как следует из названия, в данном режиме система проверяет и исправляет логические ошибки в структурах таблиц базы данных.

Проверка ссылочной целостности информационной базы

В данном режиме система проверяет существование всех ссылок на объекты. Если находятся ссылки на объекты, которые не существуют, то система может либо удалить такие сбойные ссылки, либо попытаться их исправить. Поэтому для данной проверки необходимо дополнительно указать, что делать с такими объектами: создавать новые, очищать или ничего не делать.

Пересчет итогов

Итоги - это своеобразные индексы для регистров. Например, итоги по регистру остатков товаров позволяют нам быстро получать остатки товаров на нужную дату и т.д. В данном режиме система пересчитывает все итоги за все периоды. Как правило это очень долгая по времени проверка.

Сжатие таблиц информационной базы

Данный режим больше относится к повышению быстродействия работы конфигурации, нежели к устранению ошибок, но тем не менее.

В процессе работы наша база 1с фрагментируется и её таблицы начинают занимать больше места, чем им реально требуется. Например, когда мы создали новый документ, то размер нашей базы немного увеличился, а когда мы это документ удалили, то размер нашей базы не вернулся к прежнему состоянию, а стал чуть больше прежнего. Сжатие таблиц информационной базы – это дефрагментация всех таблиц и как результат – уменьшение размера нашей конфигурации до оптимального значения.

Реструктуризация таблиц информационной базы

Самый действенный режим в борьбе с ошибками. Принцип реструктуризации следующий. Для каждой таблицы базы данных создается новая таблица с аналогичной структурой и все данные из старой таблицы переносятся в новую.

4 шаг . С помощью кнопки «Выполнить» запускаем проверку и ожидаем сообщение о её результатах.

С ошибками в работе баз данных, возникающими по самым разным причинам, начиная с отключения электричества, заканчивая поломкой оборудования, сталкивался любой пользователь и системный администратор. И если пользователь просто видит, что программа дает, например, перезагрузиться, но закрыть ее не получается, то администратор будет ошибки искать и бороться с ними.

Первым предложением каждого специалиста в такой ситуации, станет восстановление резервной копии. Если таковой не имеется или она устарела, необходимо будет предпринять ряд несложных действий, например, протестировать базу 1С. В данной статье мы рассмотрим только один из механизмов поиска и устранения ошибок в базах данных 1С, а также особенности его использования.

Тестирование и исправление информационной базы 1С мы рассмотрим на примере конфигурации 1С Бухгалтерия редакции 3.0 (релиз – 3.0.54.20), платформа - 8.3.10.2561. Для более старых редакций и других конфигураций, а также версий платформы 8.2, алгоритм работы данной утилиты аналогичен.

Начнем с нашего обязательного напоминания о том, что перед ЛЮБЫМИ манипуляциями с конфигуратором 1С, в том числе и перед тем, как провести тестирование и исправление базы 1С 8.3, рекомендуется создать резервную копию той базы данных, с которой мы собираемся иметь дело.

Нужный нам режим работы, созданный, чтобы протестировать базу 1С и исправить найденные ошибки, доступен в конфигураторе, в разделе меню «Администрирование».


Запустив утилиту, мы увидим следующее окно:


Оно содержит перечень проверок и режимов, а также способы тестирования. Остановимся на каждом из них подробнее.

Реиндексация таблиц ИБ – при постановке галочки проводится реиндексация таблиц. Это процесс полного перестроения индексов таблиц БД. Реиндексация достаточно сильно улучшает производительность и быстродействие систем 1С.

Контроль логической целостности ИБ – механизм проверки организации данных, а также нахождения ошибок в логической и структурной целостности исследуемой БД.

Ссылочная целостность ИБ – проверяет ИБ на наличие «битых» или «пустых» ссылок, которые появляются при некорректной обработке информации, а зачастую и при удалении данных или некорректно настроенном обмене данными.

Пересчет итогов, с понятием о которых мы сталкиваемся в регистрах 1С. Это таблицы результатов, подсчитанные данные из которых анализировать проще и быстрее, чем «пересматривать» весь регистр. Процедура способна увеличить скорость работы БД.

Сжатие таблиц ИБ – уменьшает объем БД. Дело в том, что при удалении объектов из БД, 1С не удаляет их окончательно, а только помечает на удаление. Т.е. они остаются в БД, но не доступны в работе. Если такие данные не удаляются специальной обработкой, то они удаляются при сжатии таблиц ИБ. Того же эффекта, кстати, можно достичь выгрузкой/загрузкой файла БД.

Реструктуризация таблиц ИБ – во время этого процесса система пересоздает таблицы БД. Обычно это происходит при внесении изменений в структуру метаданных конфигурации. Процесс может занять длительное время.

Чуть ниже этого списка находится поле выбора вида тестирования: будет ли проходить просто тестирование, при котором система покажет имеющиеся ошибки, но не будет их исправлять, или тестирование с дальнейшим исправлением. В этом случае система постарается исправить все найденные ошибки.

Еще ниже находятся варианты работы с «битыми» ссылками и при частичной потере данных. Доступны три варианта:

  • Создавать объекты – система создает пустой элемент, который потом можно будет заполнить данными вручную.
  • Очищать ссылки – «битые» ссылки и объекты с частичными данными будут удалены.
  • Не изменять – только показав ошибки, объекты система менять не станет.

И последняя зона нашего окна – возможность приостановить и продолжить прерванное тестирование. Дело в том, что в некоторых БД процесс тестирования и исправления может занять длительное время (от 1-2, до 20-30 часов). При наличии подозрений на то, что система будет проводить проверку очень долго, можно поставить галочку «Прервать выполнение проверки через» и установить временной промежуток, по истечении которого выполнение проверки будет приостановлено.


При наличии галочки «Продолжить прерванное ранее тестирование», нажатие кнопки «Выполнить» продолжит тестирование с места остановки.

Утилита chdbfl.exe

Если в силу ряда причин попасть в конфигуратор мы не можем – нет прав на запуск, например, то можно воспользоваться утилитой «chdbfl.exe». Это, по сути, аналог тестирования и исправления файловой (для SQL не подходит) информационной базы. Она проводит проверку физической целостности БД. Рассмотрим, где она находится и как ею пользоваться.

Заходим в папку с установленной платформой. Скачивать файл не надо.


После запуска мы увидим следующее окно:


В нем нужно указать путь к файлу БД и подтвердить (или не делать этого) необходимость исправления выявленных ошибок. Путь к файлу БД можно узнать из списка баз данных.


После окончания проверки система сообщит о найденных ошибках.

Функционирование программы может нарушиться вследствие аварийного прекращения работы, например при отключении электроэнергии. Потом в базу данных не удается войти.

Иногда функционирующая программа может показывать неверные результаты. Из списка «исчезают» документы, при попытке открыть документ программа зависает, в отчетах появляются странные результаты. Все эти «глюки» прекращаются после тестирования и исправления 1C.

Ошибки могут проявляться не столь грубо, но любые странности и неточности являются поводом для «ремонтных работ».

Причины, ведущие к проблемам:

  • Аварийное прекращение работы (внезапное отключение питания);
  • Физический износ жесткого диска;
  • Сбои в работе компьютера.

Перед исправлением базы сделайте резервную копию

Прежде чем тестировать базу данных, обязательно нужно сделать ее резервную копию.

Это можно сделать прямым копированием каталога, где находится информационная база. Если не удается войти в Конфигуратор, то сделать копию можно только таким способом.

Если удалось войти в Конфигуратор, то нужно выбрать в меню опцию Администрирование → Выгрузить информационную базу, как на рис.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

Подведем итоги. Если программа не запускается после аварийного прерывания работы, нужно сделать следующее:

  • Сделать резервную копию;
  • Попытаться войти через Конфигуратор и воспользоваться опцией Тестирование и исправление;
  • Если в Конфигуратор не удается войти, найти программу exe и попытаться спасти данные при помощи этой программы;
  • Если все попытки не дают результата, нужно обратиться за помощью к специалистам;
  • В случае невосстановимой потери данных установить последнюю работоспособную резервную копию;
  • Если резервное копирование не выполнялось – восстанавливать данные по первичным документам и бумажным распечаткам.

Удачное восстановление данных происходит не всегда. Страховкой от потери данных является ежедневное резервное копирование: если информационная база повреждена, можно вернуться на день назад и быстро восстановить потерянные записи.

vk.com/buhcenter группа вконтакте.
1-bc.ru сайт компании, на котором можно ознакомиться с услугами.
 Реиндексация таблиц информационной базы.
Для быстрого поиска информации к основным таблицам с основными данными добавляются вспомогательные таблицы, в которых данные сортируются по заданным полям основной таблицы - таблицы индексирования. За счет использования таблиц индексирования в разы увеличивается производительность 1с, поскольку нет необходимости перебирать всю основную таблицу данных для выборки, можно воспользоваться индексным файлом и выбрать необходимые записи оттуда.
При записи данных в основные таблицы данных, таблицы индексирования так же заполняются. Но по разным техническим причинам индексы могут сбиваться, что в итоге может приводить к ошибкам. Для исправления данного класса ошибок, когда выполняется тестирование и исправление базы 1с 8.3 необходимо установить галочку у данного пункта меню.
 Проверка логической целостности информационной базы
В момент создания новых объектов в конфигурации 1с в базе данных создаются новые таблицы, в которых указываются связи с другими таблицами базы. По различным причинам связи могут становиться некорректными (например из за некорректного обновления или неожиданного отключения электричества в момент записи). Что бы исправить такого рода ошибки выбираем данный пункт меню.
 Проверка ссылочной целостности информационной базы
Вероятно, вам приходилось видеть «битые ссылки» в 1с конфигурациях. Если нет, то вы счастливчик!
Для выявления и исправления этих ошибок выбираем данный пункт меню, при этом ниже активируются варианты обработок таких ошибок (см. рис. выше). Мы можем выбрать, каким образом исправлять ошибки при при наличии ссылок на несуществующие объекты: создавать объекты, очищать ссылки, не изменять; и при частичной потере данных: создавать объекты, удалять объект, не изменять.
 Пересчет итогов
Для выполнения быстрых выборок данных в базе 1с существуют таблицы с уже просчитанными данными с периодичностью месяц. Когда мы обращаемся за этими данными - они не собираются из основных таблиц (это заняло бы много времени), а выдаются сразу же из данных таблиц итогов. Соответственно, что бы этот механизм работал, необходимо иметь корректные итоги за прошедшие периоды. Поэтому в случае, если 1с «обманывает» в отчетах, то исправляется такая ошибка этим пунктом меню.
 Сжатие таблиц информационной базы
Удаление объектов в базе данных - операция достаточно кропотливая и долгая, поэтому в конфигурациях 1с процесс удаления разделен на 2 этапа. Когда вы удаляете объекты в конфигурации, в базе данных 1с данные зануляются и из-за этого не участвуют в дальнейших операциях, хотя физически остаются на месте. Что бы вычистить таблицы от этих записей делают тестирование и исправление базы 1с 8.3 с пунктом меню «Сжатие таблиц информационной базы».
 Реструктуризация таблиц информационной базы
При изменении реквизитов какого либо объекта метаданных 1с, базе данных необходимо дополнить все таблицы измененного объекта новыми записями. Это делается через реструктуризацию таблиц базы данных. В процессе реструктуризации создаются копии таблиц базы данных с структурой текущей конфигурации, после этого осуществляется перенос данных в созданные таблицы. В случае добавления реквизита в метаданных 1с, для него будет создана незаполненная колонка в новой таблице; в случае удаления реквизита - в новой таблице колонка под этот реквизит не будет создана, и, соответственно, он не перенесется.
В процессе реструктуризации будут пересозданы все таблицы базы данных, поэтому эта операция - самая длительная.

Если с вашей базой 1С возникли проблемы, полезли различные ошибки или даже она перестала запускаться, то следует выполнить тестирование и исправление базы 1С.Первое и самое важное, что нужно сделать перед исправлением любой конфигурации, – . Мы не зря привели 2 способа создания резервной копии базы 1С. Даже если конфигурация перестала запускаться в режиме конфигуратора, вы всегда сможете сделать ее копию, воспользовавшись 1 способом (копированием файла конфигурации).

Теперь, когда резервная копия сделана, запустите базу в режиме конфигуратора:

Если ваша конфигурация повреждена на столько, что не запускается даже в режиме Конфигуратора, то для ее восстановления можно , которая входит в комплект поставки 1С Предприятие 8.

Выберите пункт ‘Администрирование’-‘Тестирование и исправление…’ :

Перед вами откроется окно с настройками режима проверки и исправления базы 1С, которые нужно выбрать и нажать кнопку ‘Выполнить’.

Данная проверка в зависимости от размера вашей базы может выполняться очень долго. Поэтому рекомендуется выбирать по одному режиму проверки в порядке их следования (вначале только режим «Реиндексация таблиц информационной базы», затем только режим «Проверка логической целостности информационной базы» и т.д.) и после каждого исправления проверять пропали или нет ошибки в базе 1С.

Рассмотрим все режимы проверки и исправления по порядку:

Реиндексация таблиц информационной базы.

Для ускорения поиска по определенным реквизитам объектов нашей конфигурации система 1с формирует индексы. В данном режиме исправления система сформирует все индексы заново.

Проверка логической целостности информационной базы.

Как следует из названия, в данном режиме система проверяет и исправляет логические ошибки в структурах таблиц базы данных.

Проверка ссылочной целостности информационной базы.

В данном режиме система проверяет существование всех ссылок на объекты. Если находятся ссылки на объекты, которые не существуют, то система может либо удалить такие сбойные ссылки, либо попытаться их исправить. Поэтому для данной проверки необходимо дополнительно указать, что делать с такими объектами: создавать новые, очищать или ничего не делать.

Пересчет итогов.

Итоги - это своеобразные индексы для регистров. Например, итоги по регистру остатков товаров позволяют нам быстро получать остатки товаров на нужную дату и т.д. В данном режиме система пересчитывает все итоги за все периоды. Как правило это очень долгая по времени проверка.

Сжатие таблиц информационной базы.

Данный режим больше относится к повышению быстродействия работы конфигурации, нежели к устранению ошибок, но тем не менее. Со временем базы данных сильно увеличиваются в размерах. Это происходит, потому что в базе накапливается много данных, которые мы пометили на удаление, затем удалили, но на самом-то деле в базе они по-прежнему остались (просто мы их больше не видим). Сжатие таблиц информационной базы производит их настоящее удаление и база сокращается в размере.

Реструктуризация таблиц информационной базы.

Самый действенный режим в борьбе с ошибками. Принцип реструктуризации следующий. Для каждой таблицы базы данных создается новая таблица с аналогичной структурой и все данные из старой таблицы переносятся в новую.

Выбрав нужный пункт, запустите проверку нажав на кнопку ‘Выполнить’.

Вверх