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

Первым предложением каждого специалиста в такой ситуации, станет восстановление резервной копии. Если таковой не имеется или она устарела, необходимо будет предпринять ряд несложных действий, например, протестировать базу 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 не подходит) информационной базы. Она проводит проверку физической целостности БД. Рассмотрим, где она находится и как ею пользоваться.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Beta
Меню

Внешнее и внутреннее тестирование базы 1С:Предприятие

Любому бывалому пользователю 1С:Предприятие внешнее и внутреннее тестирования базы данных — дело обыденное. Эта статья нацелена на начинающих пользователей, которые либо столкнулись с необъяснимой работой своей базы данных, либо пережили внезапное отключение питания ПК или ноутбука, после которого база данных перестала открываться, либо во время работы происходят «вылеты» и 1С просто закрывается без каких-либо сообщений об ошибках, либо многое другое (причин тестирования действительно масса, все перечислять не будем).

Процесс тестирования достаточно простой в обоих случаях, но в зависимости от размера базы и дисковой подсистемы ПК (HDD или SSD) может занимать достаточно длительный промежуток времени.

Внешнее тестирование базы данных 1С:Предприятие: проверка физической целостности файла БД

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

Перед любым тестированием обязательно сделайте копию файла 1Cv8.1CD!


Для проведения данной процедуры в указанной папке (версия платформы может быть любая)

C:Program Files (x86)1cv88.3.8.1784bin

лежит утилита chdbfl.exe
(синий бочонок с зелёной галочкой).

  1. Запускаем утилиту chdbfl.exe
    .
  2. В появившемся окне указываем пусть к файлу 1Cv8.1CD
    базы данных, которую требуется протестировать.
  3. Ставим галочку «Исправлять обнаруженные ошибки».
  4. Нажимаем «Выполнить».

После этого в папке с базой данных появится четыре новых файла с префиксом _$NEW$_. Не удаляйте эти файлы во время тестирования, они удаляться сами! Так же Вам покажется, что эта утилита «зависла» и ничего не происходит — это не так! Ни в коем случае не прерывайте работу этой утилиты! Эти действия безвозвратно испортят Вашу базу данных 1С!

После тестирования скорее всего Вы увидите сообщение «Ошибок не обнаружено», но это не значит, что с Вашей базой данных ничего не произошло. Первое: она точно стала меньше. Может даже в 2 раза — это нормально, даже хорошо. Второе, скорее всего проблемы больше нет и теперь 1С запустится. Проверяйте.

Если проблема серьезнее и не устранилась внешним тестированием, переходим к внутреннему тестированию.

Внутреннее тестирование базы данных: Тестирование и исправление информационной базы (ТиС)

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

Остались вопросы?

Что-то пошло не так? Специалисты нашей компании помогут Вам разобраться с возникшими проблемами! Обращайтесь! →

Также Ваши вопросы Вы можете задать в нашей группе ВК или на нашем
YouTube канале!

Эти статьи будут Вам интересны

У нашего клиента возникла вполне стандартная ситуация: Windows 10 получила большой пакет обновления и после перезагрузки ПК при запуске 1С:Предприятие пользователь увидел окно с текстом «Не обнаружена лицензия для использования программы». Пока ничего не обычного. Но после ввода нового пин-кода 1С:Предприятие и сообщения об успешной активации при очередном входе в программу сообщение о том, что лицензия не найдена снова всплывает. Разбираемся, в чём же дело.

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

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

Рассмотрим этот инструмент и как с ним работать. Особенно подробно разберем какие флаги надо ставить в интерфейсе.

Запустим программу в режиме конфигуратор:

Выбираем из меню Администрирование пункт “Тестирование и исправление”:

Какие галочки ставить?

Существуют различные варианты настройки тестирования, рассмотрим эти галки:

  • Реиндексация таблиц информационной базы
    — это полное перестроение индексов для таблиц базы данных. Реиндексация повышает скорость работы информационной базы. Процедура длительная, но никогда не будет лишней.
  • Проверка логической целостности информационной базы
    — проверять логическую и структурную целостность БД, исправляет ошибки в данных;
  • Проверка ссылочной целостности информационной базы
    — проверка «битых ссылок» в базе данных. Такие ошибки могут возникать при непосредственном удалении объектов системы или сбоях. Существует 3 варианта действий для исправления таких ошибок:

    • Создавать объекты
      — система создает элементы-заглушки, которые можно потом заполнить необходимой информацией,
    • Очищать ссылки
      — «битые» ссылки будут очищены,
    • Не изменять
      — система только покажет вам ошибки.
  • Пересчет итогов.
    Итоги — таблица предварительно подсчитанных результатов в регистрах накопления, расчета и бухгалтерии. Пересчет итогов, также как реиндексация, никогда не будет вредна и даст плюс в скорости работы программы;
  • Сжатие таблиц информационной базы
    — при удалении данных 1С не удаляет строки таблиц, а лишь «помечает» их на удаление. Они не видны пользователю, но продолжат находится в БД. Сжатие базы данных удаляет эти данные безвозвратно. Так же такого же эффекта можно достичь выгрузкой и загрузкой файла информационной базы (*.dt);
  • Реструктуризация таблиц информационной базы
    — долгий процесс, с помощью которого система осуществляет пересоздание таблиц базы. Такая процедура происходит и при внесение изменений в структуру конфигурации.

В нашем примере проставим все галочки как показано на рисунке и нажимаем “Выполнить”:

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

После окончания тестирования нажимаем “Закрыть”:

Результат выполнения операций мы можем увидеть в окне служебных сообщений.

Тестирование и исправление закончено.

Если конфигуратор не открывается: утилита chdbfl.exe

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

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

После того как нажали копировать, нажимаем правой кнопкой на пустом месте окна папки и нажимаем “Вставить”. Копия сделана, запускаем утилиту:

Появляется главное окно утилиты. Нам нужно указать имя файла базы данных. Нажимаем на три точки. Открывается окно выбора файла БД. Ищем каталог вашей базы и в нем указываем на файл 1Cv8.1CD. Нажимаем “Открыть”.

Ставим галочку “Исправлять обнаруженные ошибки” и нажимаем “Выполнить”.

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

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