В предыдущей статье я рассказал, как можно узнать размер таблицы в базе данных 1С.
Возник вопрос, я для чего?
Дело в том, что при использовании файловой базы данных есть технические ограничения, которые накладываются платформой. Проще говоря, при определенном размере таблиц в базе данных программа может перестать работать.
Обычно у пользователя появляется ошибка вида:
Превышен максимально допустимый размер внутреннего файла
Что это за ограничения по допустимому размеру?
Файл базы данных (.1CD) внутри организован как множество так называемых внутренних файлов. Каждой из таблиц базы данных соответствует до четырех внутренних файлов:
- Файл описания таблицы — в нем находится описание таблицы.
- Файл записей данных — содержит данные всех записей таблицы, за исключением данных, содержащихся в полях неограниченной длины.
- Файл индексов — размещены все индексы, определенные для таблицы. Если не определено ни одного индекса, то этот файл отсутствует.
- Файл значений неограниченной длины — хранятся значения неограниченной длины, содержащиеся в полях таблицы.
Размер каждого из вышеперечисленных внутренних файлов не может превышать:
- для формата версии 8.2.14 — 4 Гб.
- для формата версии 8.3.8 с размером страницы 4096 байт — 4 Гб.
- для формата версии 8.3.8 с размером страницы 8192, 16384, 32768 и 65536 байт — 6 Гб.
С размерами понятно, мы знаем как их узнать, но как понять какой формат базы данных у нас используется и с каким размером страниц?
Утилита преобразования cnvdbfl.exe
Файл базы данных имеет несколько версий внутреннего формата:
- Версия 8.2.14 — имеет размер внутренней страницы файла базы данных равный 4096 байт. Размер внутреннего файла не может превышать 4 Гб.
- Версия 8.3.8 — размер внутренней страницы файла базы данных может принимать несколько значений: 4096, 8192, 16384, 32768 и 65536 байт. Кроме того, формат версии 8.3.8 обеспечивает более оптимальный формат хранения некоторых внутренних данных. Размер внутреннего файла не может превышать 4 Гбайта (при размере страницы в 4096 байта) и 6 Гбайт (при размере страницы 8192, 16384, 32768 и 65536 байт).
Утилита cnvdbfl.exe является утилитой командной строки и позволяет:
- Преобразовывать файлы 1Cv8.1CD между различными форматами;
- Изменять размер страницы файла для формата 8.3.8;
- Получат информацию о текущем формате и размере страниц;
Утилита по умолчанию расположена в каталоге исполняемых файлов платформы 1С.
Чтобы получить информацию о версии формата базы данных и размере страниц, можно выполнить следующую команду:
cnvdbfl -i <Путь к файлу базы данных>
Все возможности утилиты описаны в официальной документации.