Как-то раз мне пришлось залезть в файловую базу с помощью утилиты Tool_1CD, что бы кое что подправить, но последняя версия этой утилиты с возможностью редактирования не поддерживает базы начиная с платформы версии 8.3.8, видимо потому что размер внутренней страницы файла базы данных может быть не равный 4096 байт. Ну думаю на том и все, не видать мне потрохов базы. Но не давно узнал, что оказывается начиная с версии 8.3.8, с платформой поставляется консольная утилита cnvdbfl.exe, которая может изменять размер страницы файла. Так же узнал, что манипуляции с размером страницы файла могут увеличить скорость работы файловой базы по сети, а так же увеличить производительность в некоторых других случаях (более подробно читайте в публикации infostart.ru/public/934238/). Прочитать про эту утилиту можно на сайте ИТС. У кого нет доступа, вот краткая информация по данной утилите:
Файл базы данных имеет несколько версий внутреннего формата:
1. Версия 8.2.14 – имеет размер внутренней страницы файла базы данных равный 4096 байт. Размер внутреннего файла не может превышать 4 Гбайта. Более подробно про внутренний файл (см. здесь).
2. Версия 8.3.8 – размер внутренней страницы файла базы данных может принимать несколько значений: 4096, 8192, 16384, 32768 и 65536 байт. Кроме того, формат версии 8.3.8 обеспечивает более оптимальный формат хранения некоторых внутренних данных. Размер внутреннего файла не может превышать 4 Гбайта (при размере страницы в 4096 байта) и 6 Гбайт (при размере страницы 8192, 16384, 32768 и 65536 байт). Более подробно про внутренний файл (см. здесь).
Новый формат файловых баз данных предназначен для ускорения процесса открытия и работы с информационной базой, поэтому, начиная с версии платформы 8.3.9, новый формат используется по умолчанию при создании новых файловых баз данных.
В новом формате (версии "8.3.8") появились следующие возможности:
- Уменьшен размер и оптимизирована структура заголовка с метаинформацией в файле 1Cv8.1CD. Это позволяет существенно снизить число операций чтения файла при открытии базы данных и, тем самым, заметно ускорить время старта и начала работы программы.
- Теперь можно настраивать размер внутренней страницы файла данных. Это размер порции данных, в которых хранится информация и которыми обменивается программа с файловой системой. Предыдущий формат файловой базы данных (версии "8.2.14") поддерживал единственный размер внутренней страницы файла – 4Кб. Новый формат по умолчанию использует размер страницы 8Кб, но позволяет его менять в диапазоне от 4Кб до 64Кб.
Наибольший эффект от использования нового формата файловых баз данных ожидается в следующих сценариях:
- "холодный" запуск программы,
- работа с файлами базы данных по локальной сети,
- работа с сильно фрагментированной базой данных,
- использование дисковых подсистем с невысокой производительностью.
Система «1С:Предприятие» версии 8.3.8 и старше обеспечивает функционирование с файлом 1Cv8.1CD любого формата без дополнительных действий. Система «1С:Предприятие» версии 8.3.7 и младше обеспечивает функционирование с файлом 1Cv8.1CD только версии 8.2.14. Преобразование между двумя форматами возможно либо с помощью операции выгрузки/загрузки данных информационной базы в файл .dt, либо с помощью специальной утилиты cnvdbfl.
Утилита cnvdbfl является утилитой командной строки и позволяет:
1. преобразовывать файлы 1Cv8.1CD между различными форматами;
2. изменять размер страницы файла для формата 8.3.8.
Краткую справку по ключам использования утилиты можно узнать выполнив ее с ключом --help.
Ну вот собственно для этой консольной утилиты я и сделал GUI-обёртку.
При запуске программа ищет утилиты cnvdbfl.exe во всех установленных платформах и позволяет выбрать утилиту нужной версии в поле Версия cnvdbfl.exe, соответственно не нужно бродить по папкам bin в поисках утилиты. Далее выбираем файл базы данных . Файл так же можно выбрать перетянув его на форму мышкой. После выбора файла можно посмотреть информацию о файле , что бы узнать текущую версию формата и размер страницы.
После этого выбираем нужный формат и размер страницы и выполняем конвертацию. Предварительно можно сделать резервную копию файла базы данных. Вот собственно и все. В комментариях хотелось бы увидеть какие то еще практические примеры использования консольной утилиты cnvdbfl.exe (кому, когда, в каких ситуациях пригодилась).
Встречайте новое обновление с кучей улучшений!
Список изменений:
- Добавлены горячие клавиши на основные действия:
Ctrl+I(nfo) - получить информацию о файле информационной базы;
Ctrl+E(xplorer) - открыть каталог информационной базы в проводнике (найти файл информационной базы в проводнике);
Ctrl+O(pen) - выбрать файл для конвертации;
Ctrl+Enter - выполнить конвертацию файла; - Изменен внешний вид, добавлена "подложка" для перетягивания файлов в приложение и др.;
- Изменены некоторые подсказки;
- Компиляция приложения выполнена в последней версии IDE Delphi 10.4.1 Version 27.0.38860.1461, повышена стабильность работы;
- Исправлено отображение главного окна при запуске приложения, если используется несколько мониторов;
- UX адаптирован под более новые ОС, в связи с чем, для работы требуется ОС не ниже Windows Vista;
- Добавлена история последних обработанных файлов. Доступ к истории можно получить как из главного меню, так и из меню, вызываемого нажатием правой клавишей мыши по приложению в панели задач;
- Добавлен анализ списка информационных баз и поиск всех файловых баз в этом списке, благодаря чему выбрать нужный файл можно непосредственно из меню приложения, не заходя в каталог информационной базы;
- Добавлены 19 визуальных тем (скинов) приложения, не считая классической. Каждый сможет найти что-то для себя;
- Добавлена интеграция с оболочкой Windows: возможность встраивания дополнительного пункта в контекстное меню файлов *.1CD. Теперь обработать файл с помощью утилиты можно прямо из проводника щёлкнув правой клавишей и выбрав соответствующий пункт меню;
- Добавлена возможность ручного создания резервной копии файла ИБ, в том числе с возможность сжатия в zip-архив. Так же, теперь перед выполнением резервного копирования автоматическим выполняется блокировка файла информационной базы на время копирования, что предотвращает ее повреждение даже во время работы пользователей. Так что данную утилиту можно использовать просто для копирования ИБ во время работы пользователей. Так же резервное копирование можно выполнить из командной строки, т.е. данную утилиту можно использовать в скриптах резервного копирования файловых информационных баз выполняемых, к примеру, с определенной периодичностью. Для резервного копирования, утилиту следует вызывать с ключем /b:<ПолноеИмяФайлаКопии>.
Примеры:
cnvdbflGUI.exe "D:\Базы 1С\БПРФ 3 (демо)\1Cv8.1CD" /b:"D:\Базы 1С\БПРФ 3 (демо)\1Cv8.1CD.bak"
cnvdbflGUI.exe "D:\Базы 1С\БПРФ 3 (демо)" /b:"D:\Backup\BPRF.zip"
Все пути следует брать в двойные кавычки. В качестве первого параметра можно указывать полный путь к файлу информационной базы, либо указывать полный путь к каталогу информационной базы - в этом случае будет использовано имя файла по умолчанию 1Cv8.1CD. Если у конечного файла указать расширение .zip, то копия будет помещена в zip-архив, в противном случае файл базы будет просто скопирован. Если операция была выполнена успешно, то программа вернет код ошибки 0. По сути, Вы дополнительно получаете функционал внешней компоненты из публикации infostart.ru/public/1039557; - Добавлена возможность вызова утилиты chdbfl.exe с автоматическим вводом имени выбранного файла;
- Добавлена возможность открыть выбранный файл ИБ в конфигураторе;
Др. мелкие изменения и улучшения;
Благодаря последним 3 пунктам, возможно выполнить полный спектр мероприятий предшествующий конвертации, а именно: выполнить резервное копирование, выполнить внешнее тестирования/исправления базы, а затем, при желании, открыть базу в конфигураторе и выполнить внутреннее тестирование/исправление или какие-то дополнительные действия, и уже после этого выполнить конвертацию ИБ;
Если Вам не требуется дополнительный функционал, то вы можете воспользоваться последним релизом утилиты версии 1.x – там есть весь необходимый функционал для непосредственной конвертации ИБ с помощью утилиты cnvdbfl.exe.
Всем добра!