Графическая оболочка для консольной утилиты cnvdbfl.exe




Графическая оболочка для консольной утилиты cnvdbfl.exe предназначенной для преобразования размера внутренней страницы файла базы 1С.

Как-то раз мне пришлось залезть в файловую базу с помощью утилиты 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 (кому, когда, в каких ситуациях пригодилась).

 

 Обновление 2024/04/19

 

43 Comments

  1. Davurov

    Охо! Как раз недавно в консольке мучались =) А тут все на блюдечке! Спасибо!

    Reply
  2. apic

    Блииин, не знал, что есть такая утилита как cnvdbfl.exe. Сейчас попробовал конвертнуть базу, все получилось, стала открываться в Tool_1CD. Я новичек в 1С, так что для меня информация оказалась полезной и интересной…

    Reply
  3. Dream_kz

    Вот это полезная вещь! Редко конвертирую базы, но когда надо, приходится каждый раз вспоминать ключи и прописывать путь до базы. Однозначно +

    Reply
  4. RocKeR_13

    Есть же в Обновляторе-1С)

    Reply
  5. rybusha

    Не работает для платформы 8.3.10.2561 — не выбирает. Если ввести руками не показывает версию.Не конвертирует.Из командной строки версия 8.2.14

    Reply
  6. frkbvfnjh

    Ща гляну у себя на 8.3.10

    Reply
  7. frkbvfnjh

    (5) У меня 3 платформы на виртуалке: http://joxi.ru/8An5VYKCj4q8J2

    Даже 64-х битную нашел, все работает. Какая у Вас ОС и какая разрядность?

    Reply
  8. rybusha

    windows 7 профессиональная 64 разрядная

    Reply
  9. frkbvfnjh

    (8) Попробую найти семерку, проверю

    Reply
  10. frkbvfnjh

    (8) Проверил — все норм, очень странно, пробовали на др. компьютерах?

    Reply
  11. rybusha

    нет ,не пробовала

    Reply
  12. rybusha

    Вы знаете, что помогло- запуск из проводника от имени администратора.Я на компе прописана юзером с административными правами.Видимо этого мало

    Reply
  13. frkbvfnjh

    (12) Оооооо, думаю да, причина в этом, на что то не хватает прав. Подумаю над этим…

    Reply
  14. Evil Beaver

    По-моему, Tool1CD все-таки научился работать с разными размерами страниц.

    Попробуйте отсюда https://yadi.sk/d/4fzFrdDvjR6fq

    R.I.P awa

    Reply
  15. Infactum

    (14)

    R.I.P awa

    серьезно?

    Reply
  16. JohnyDeath

    (15) К сожалению, да.

    Доржи рассказал об этом на инфостарте. Все были в шоке.

    Reply
  17. frkbvfnjh

    (16) Я только что афигел… Из мох коллег тоже никто не знал.

    Reply
  18. the1

    Что-то не увидела не одной версии, хотя стоят платформы 8.3.5-8.3.10

    Reply
  19. frkbvfnjh

    (18) Попробуйте запустить утилиту от имени администратора

    Reply
  20. the1

    (19) Помогло

    Reply
  21. alek111---

    А действительно размер внутреннего файла не может превышать 6 Гбайта (при размере страницы 8192, 16384, 32768 и 65536 байт)?

    Если так, то зачем вообще размер страницы 16384, 32768 и 65536 байт нужен?

    Reply
  22. frkbvfnjh

    Я думаю, что истинно правильный ответ знают только разработчики платформы или эксперты. Хотелось бы тоже узнать правильный ответ…

    Reply
  23. yarsort

    А с помощью чего сделали GUI?

    Reply
  24. frkbvfnjh

    (23) Delphi

    Reply
  25. 🅵🅾️🆇

    Не пользую файловые базы в релизе.

    Можете в рамках ликбеза, вкрации объяснить зачем оно надо?)

    Reply
  26. MRAK

    (25) для фирм, у которых нет денег на Сервер 1С, SQL-сервер и нормального админа.

    + некоторые настраивают связку файловой базы + SSD (естественно с бекапом), которая работает значительно быстрее, чем на SQL, когда пользователей 1-2-3

    Reply
  27. 🅵🅾️🆇

    (26)

    Ох, ваша правда)

    Просто привык или к тому, что всегда есть $$$ или можно воровать)

    Reply
  28. 3vs

    (26)А ежели сделать RAID-0 из SSD да в терминале, тогда вообще жить можно,

    но недолго, пока база гигов до 12 не распухнет, тогда всё грустно…

    Reply
  29. 3vs

    (14)Обман, скачал по ссылке программу, фигвам! 🙁

    Неподдерживаемый формат 8.3.8!

    Reply
  30. Кадош

    (28) файловая база 30 Гб, 55 пользователей. УТ 10.3. Все летает.

    Reply
  31. 3vs

    (30)Тут, видимо, как спроектирована база.

    У нас на 1С Отель всё на 12 гигах сдохла при 4-5 пользователях.

    Reply
  32. a_titeev

    (31)

    ирована база.

    У нас на 1С Отель всё на 12 г

    Дело в размере ОДНОЙ из внутренних таблиц. То есть например, если таблица с чеками превысила, то все.

    Reply
  33. 3vs

    (32)Таблица там, в самом деле, подошла к 4 Гб., пришлось конвертировать из формата 8.2.14 в 8.3.8, чтобы ограничение стало до 6 Гб., просто

    всё стало жутко тормозить при работе в терминале и база на SSD диске.

    Работает на толстом клиенте, по сети вообще было невозможно работать изначально.

    Разработчики, правда сразу говорят — нужен SQL сервер, но когда покупали софт об этом никто не предупредил, пришлось извращаться с ViTerminal-ом.

    В конце концов пришлось хотя бы на PostgreSQL переходить.

    Reply
  34. FreeArcher

    А до какого размера таблицы можно раскачать файловую базу этой утилитой?

    Reply
  35. frkbvfnjh

    (34) ИТС:

    Размер внутреннего файла не может превышать 4 Гбайта (при размере страницы в 4096 байта) и 6 Гбайт (при размере страницы 8192, 16384, 32768 и 65536 байт)

    Получается, что максимум до 6 ГБ

    Reply
  36. FreeArcher

    (35) Спасибо. Не такой и большой выигрыш в итоге.

    Reply
  37. frkbvfnjh

    (36) Ну, как ни как 50% и дает время для перехода на SQL. Работать всем нужно здесь и сейчас, а для установки и настройки сервера 1С и сторонней СУБД может понадобиться не один час.

    Reply
  38. AllexSoft

    (31)

    У нас на 1С Отель

    сочувствую, вы держитесь там.. код до сих пор на английском там?

    Reply
  39. 3vs

    (38)В код не залезал, но объекты да, на англицком.

    Да, в принципе, это и правильно, ежели народ сразу замахнулся на

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

    Вот если они сделают продукт полностью на управляемых формах, тогда это будет большой шаг!

    А в общем, жить можно! 🙂

    Reply
  40. AllexSoft

    (39) я его активно смотрел в 2010 году, похоже ничего не изменилось с тех пор (объекты на английском, весь код на английском и частично закрыт, интерфейс если это можно так назвать сделан через одно место, с настройками без ящика алкоголя не разобраться и тд.). Повезло вам что вы не заглядываете в код этой конфы и ничего там не дорабатываете и ничего не перенастраиваете. Не представляю кто возьмется за переработку этого продукта под УФ, да и зачем есть есть продукты 1С от компании Кинт (например Кинт:Отель) — не реклама, просто он один УФ, с приятным интерфейсом и развивается насколько я вижу.

    Насколько я понимаю 1С:Отель назывался ранее Румба 8: Управление отелем, писался изначально не под наши страны, а под гостиницы где то в азии (Вьетнам кажись).

    Reply
  41. 3vs

    (40)Что-то под УФ у них и сейчас есть.

    Но, как говорил у них главный спец по внедрению, планы по переводу

    всего на УФ у них есть, но это будет совсем другой продукт и неизвестно когда

    это случится.

    Мы встали к ним на техподдержку по самому дешёвому тарифу.

    В общем-то проблемы решаются.

    У нас было всё просто, пришёл новый директор, посмотрел, сколько

    мы отдаём денег за поддержку Фиделио и сказал, ищите альтернативу.

    На глаза в 2012 году попался 1С Отель, вот его и взяли…

    Reply
  42. AllexSoft

    (41) фиделио это да, для большинства отелейгостиниц вещь ненужная и слишком дорогая. У нас примерно так же произошло, был куплен практически даром по NFR версии 1С:Отель (меньше 10тыс), поигрались, посмотрели, поняли что это не оно.. на тот момент альтернативных решений на 1С не было, в итоге написал полностью свою конфу, которая и работает до сих пор.

    Reply
  43. 3vs

    (42)Самое главное, в фиделио не было выгрузки в 1С Бухгалтерию!

    И техподдержка фиделио в этом не помогла.

    Не, конечно, если спецы для этого есть, тогда конечно,

    у нас перед фиделио тоже была самописка, паренёк типа Билли Гейтса

    с незаконченным высшим, но с квадратной головой, наваял, работало,

    пока кому-то не захотелось заработать на внедрении фиделио…

    А так, я скажу, 1С Отель штука серьёзная, развивается, главное,

    есть внешняя обработка по выгрузке в 1С Бухгалтерию! 🙂

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *