1с старая версия формата файла базы данных требуется выполнить конвертацию
Платформа 1С, начиная с релиза 8.3.8.1652, поддерживает новый формат хранения файловых баз данных.
Чем же так хорош этот новый формат? По заверениям 1С он более оптимизирован, а значит после перехода на него мы можем рассчитывать на некоторое увеличение производительности.
Кроме того, новый формат позволяет выбирать размер страницы данных. В старой версии формата (8.2.14) он всегда равен 4 килобайта, в новом же формате (8.3.8) он может быть: 4К, 8К, 16К, 32К или 64К.
Как его менять штатным способом
Чтобы изменить формат базы штатным способом:
- либо создайте новую пустую базу в новом формате (это так по умолчанию для версий платформы после 8.3.8.1652), а затем загрузите в неё dt-выгрузку из старой базы
- либо воспользуйтесь консольной утилитой от 1С cnvdbfl.exe (идёт с дистрибутивом 8.3.8)
Обновлятор поддерживает работу с утилитой cnvdbfl
Слава богам, что cnvdbfl.exe это нормальная утилита (в отличие от chdbfl.exe), которая поддерживает параметры командной строки.
Это позволило мне добавить возможность работы с форматом баз (одной или группы) прямо в Обновлятор-1С.
Сейчас я расскажу и покажу как это всё работает.
Выводим текущий формат баз
Пусть у нас имеются две торговые базы в "старом" формате (версии 8.2.14):
Попросим для начала обновлятор показать нам текущий формат этих баз.
Для этого, отметив их галками, раскроем пункт "Ещё", в котором последовательно перейдём:
- далее нажмём на пункт "6.17 Изменение формата файла БД"
В открывшемся диалоге ничего устанавливать не будем, просто нажмём выполнить:
Результат будет таким:
Меняем формат баз и размер страницы
Отлично. Сменим формат этих баз на 8.3.8 с размером страницы 16 килобайт. Для этого снова выбираем пункт 6.17 и в открывшемся диалоге устанавливаем следующие параметры:
Вот результат, к примеру, для первой базы:
Вы можете менять формат и в обратную сторону, можете экспериментировать с размером страниц, можете делать это для одной или сразу группы баз.
Работайте с удовольствием (то есть с обновлятором)!
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Порядок действий при переносе переносе бухгалтерия предприятия ред 1.6 в ред 2.0
Конвертируем Базу в 8.2, для этого:
1. Устанавливаем платформу 8.2
2. Запускаем 1С 8.2
3. Если список баз пуст, жмем «Добавить…»
Выбираем пункт Добавление в список существующей информационной базы
Добавление существующей информационной базы
4. Далее. Вводим название базы, любое (например БП 1.6), выбираем пункт на данном компьютере или в локальной сети. Жмем далее
На данном компьютере или в локальной сети
5. Далее. Выбираем каталог, где лежит информационная база.
Выбираем каталог информационной базы
6. На последнем окне оставляем все по умолчанию, обращаем внимание, что Версия 1С Предприятие — 8.2
Версия 1С предприятие 8.2
Теперь мы подключили базу 1С бухгалтерия 8.1 к платформе 8.2.
Если после этого мы запустим 1С в режиме предприятие, выскочит ошибка — Старая версия формата файла базы данных. Требуется выполнить конвертацию.
Ошибка Старая версия формата файла базы данных
Чтобы этого не произошло необходимо запустить 1С в режиме конфигуратора
Если информационная база не конвертирована, то появится окно с запросом преобразования.
Для работы с новой версией 1С предприятия должно быть выполнено преобразование информационной базы.После начала преобразования работа с данной информационной базой предыдущей версией 1С Предприятия будет невозможна. И т.д.
необходимо преобразовать информационную базу
7. Нажимаем Да (мы ведь сделали резервную копию информационной базы на всякий случай). Также Да отвечаем на следующий вопрос о преобразовании базы данных.
Проблема с востановлением базы - перестала запускаться база.
Конфигурация БП 3.0.64.54 Базовая - Знаю точно.
cnvdbfl И ТИИ не нужно предлагать уже все перепробовал в разных вариантах не помогает,
Поможет только Tool_1CD или Хэш редактор.
Резервных копий нет . ранее базу вел не я . я понимаю всю прелесь бекапов .
Формат Базы данных 8.3 при конвертации
cnvdbfl.exe -c -f 8.2.14 "C:\Base\. Base_TEST\1Cv8.1CD"
выходит ошибка База данных повреждена .
То есть для того чтобы воспользоваться Tool_1CD и перегрузить таблицы CONFIG и CONFIGSAVE из нормально рабочей БП 3.0.64.54 Базовой мне пришлось восопльзоваться cnvdbfl при этом были такие ошибки
Повреждена таблица размещения внутреннего файла
Повреждена таблица размещения внутреннего файла
Повреждена таблица размещения внутреннего файла
Повреждена таблица размещения внутреннего файла
Повреждены данные таблицы '_INFORG12288'. Восстановлено 2092 из 2110 записей.
Повреждены данные таблицы '_INFORG18300'. Восстановлено 3 из 3 записей.. Потеряно 1 значений полей неограниченной длины
Повреждены данные таблицы 'CONFIG'. Восстановлено 28875 из 41282 записей.
Повреждены данные таблицы 'PARAMS'. Восстановлено 0 из 29 записей.
Повреждены данные таблицы 'FILES'. Восстановлено 0 из 15 записей.
и тд - еще много чего .
Затем удалось переконвертировать формат БД на 8.2.14 и загрузить таблицы CONFIG и CONFIGSAVE из Нормальной базы.
Но при этом при открытии Конфигуратора - Ошибка формата потока.
если ли какой способ переконвертировать базу в формат 8.2.14 не исопльзуюя cnvdbfl ТИИ .
Или есть какой способ загрузить поврежденную Файловую базу на SQL .
Заранее огромное спасибо за любую помощь .
(1) Итак , текущую базу не поднять , DBSHEMA - потеряна, записи таблицы PARAMS тоже потеряны, конвертации в 8.2.14 происходит с ошибками , поэтому единственный вариант который я вижу - это ручной перенос таблиц в чистую базу с помощью утилиты Tools_1CD без конвертации поврежденной базы, Вариант конечно не надежный, и трудоемкий, но стоит попробовать и состоит он в следующем:
1) Создать чистую базу нужного релиза и сконвентировать его в формат 8.2.14 - открыть в tools_1cd (Tools_1cd для редактирования)
2) Открыть поврежденную базу в другой Tools_1cd читающий формат 8.3.8 но без возможности редактирования ( файл приложу ниже)
3) Пробежаться по всем таблицам поврежденной базы и посмотреть в каких из них есть данные (можно конечно смотреть не все а например только справочники, документы , регистры накопления и регистры сведений тут надо смотреть ) , желательно каждую такую таблицу куда-нибудь выписать например в Excel так же необходимо для каждой такой таблицы указать длину записи (см раздел описание )
4) Теперь самое сложное - найти соответствующую таблицу для каждой из выписанных таблиц в чистой базе. открываем tools_1сd с чистой базой , бежим по списку таблиц и ищем таблицу по длине записи - Например в Вашей базе есть таблица ACCUMRG15433 которая содержит какие-то данные , длина записи 239 а в чистой базе ее соответствует таблица ACCUMRG27021 с такой же длинной записи (см скрин)
5) Из новой базы экспортируем нужную таблицу куда-нибудь на диск создаться папка c именем экспортируемой таблицы с 3-5 файлами внутри (descr, data, index,blob,root)
6) Возвращаемся в tools_1cd с поврежденной базой выбираем нужную таблицу далее идем меню файл-Сохранить и выбираем 1 из 3 пунктов
Сохранить файл Records Таблицы - соответствует файлу data
Сохранить файл Blob Таблицы - соответствует файлу Blob
Сохранить файл index Таблицы - соответствует файлу index
т.е. выбрали пункт B]Сохранить файл Records Таблицы[/B] и этот файл сохраняем в папку из п.5 перезаписывая файл data и так для каждого пункта
7) Возвращаемся в tools_1cd с чистой базой и импортируем таблицу обратно уже с обновленными данными
И так повторить для каждой из таблиц с данными из поврежденной базы
Самое сложное здесь это поиск соответствия таблиц между новой и поврежденной базой и поле длина записи для таблиц одного и того же типа таблиц не уникальна , но другого выхода как сопоставить таблицы я не вижу.
Просмотрел базу через Tool_1C и определил, что регистры накопления Остатков расчетов с поставщиками и клиентами подошел к максимальному размеру в 4Гб. Почитал на просторах интернета информацию про новый формат файловой базы в 8.3.8 - ссылка 1 ссылка 2 ссылка 3
Раздобыл дистрибутив. Создал пустую базу. Как и писали по ссылкам выше, она создается все же изначально в старом формате. Сконвертировал в новый формат через командную строку с помощью утилиты идущей в поставке с дистрибутивом:
Потом запустил второй раз, чтобы убедиться, что она точно сконвертировалась и не делает это "по кругу". Запустил конфигуратор и начал загрузку ДТшника.
Получил снова ту же самую ошибку о превышении допустимого размера внутреннего файла. Ну как так?
(2) SaschaL, так ошибка не при конвертации, а при загрузке ДТшника (4Гб) в чистую базу, уже после конвертации чистой базы в формат 8.3.8.
(3) SaschaL, Windows 7/10 (пробовал на двух компьютерах), NTFS. Сам файл базы данных .1CD - 17Гб.
(4) CaptainMorgan, так я как раз и хочу избежать SQL, потому и решил попробовать 8.3.8. Если бы можно было просто поднять PostgreSQL или SQLITE и использовать в качестве файловой базы, то вопросов не было бы. Но ведь без установки сервера 1С в этом случае обойтись невозможно.
(10) PetroP, ну вот и получается, что я поставил для объектов размер страницы максимальный, но что-то не взлетает.
(11) PerlAmutor, а откуда уверенность, что при загрузке dt хоть как-то учитывается формат того места, куда этот dt грузится?
(12) sssss_aaaaa_2011, намекаете на то, что если написать обработку по созданию и проведению документов и одновременно запустить её на скульной и файловой базе, затем, когда наберется больше 50 миллионов записей в регистре остатков - тормознуть. Выгрузить скульный дтшник и попробовать накатить его на файловую базу, то все импортируется без проблем, т.к. размеры объектов регистров накопления будут примерно одинаковы и не потребуется расширение файловой базы?
Если при загрузке ошибка повториться, то "по взрослому" подумать о переходе на SQL.
(7) PetroP, Ссылка 2: "Таким образом, для страницы в 4К теоретический максимум размера файла - 16Тб, но другие ограничения не дадут реализовать этот потенциал."
(8) dj_serega, т. е. подразумевается размер внутреннего файла. Какие-то постоянные проблемы с терминологией у авторов статей.
Таким образом, для страницы в 64К теоретический максимум размера внутреннего файла (или одного объекта) - 16Тб
(1) PerlAmutor, пересчет итогов-то делали со сжатием таблиц? Если не помогает, то пробуйте свертку и думайте на счет перехода на клиент-серверный вариант
(14) RocKeR_13, делал, база еще больше становится после пересчета
А .dt вообще нормальный, не битый? Проверьте, загружается ли в любой SQL (MS/PG).
Какая именно таблица подошла к пределу? И какой именно "внутренний файл" - для индексов, данных или BLOBов (для регистров накопления вроде BLOBов не бывает)?
(17) Pasha1st, битость ДТшника попробую проверить сегодня. Таблиц, которые подошли к пределу - 2 и все они типа DATA и это остатки по расчету с поставщиками и покупателями. Я их открываю и вижу десятки миллионов записей. Ну и соответственно в Tool_1C - 2 колонки на этих таблицах, показывающие реальный размер в байтах и максимальный размер в байтах. Обе таблицы под 4Гб, когда максимальный 4Гб. Третья таблица 2Гб из 4Гб возможных.
Тестирование и исправление уже идет 24 часа, пока все так же 15% и журнал вырос до 500Мб (и продолжает расти).
(18) PerlAmutor, возможно вы достигли предела файлового варианта платформы. А что если изменить структуру конфигурации, разделить регистр остатков на несколько объектов. Например каждого крупного контрагента проводить по отдельному, закрепленному за ним, регистру. Это трудно в плане первоначального конфигурирования, свода остатков, но зато вы достигните цели в плане загружаемости базы в файловом варианте.
(17) Pasha1st, думал PostgreSQL будет поставить легче чем MSSQL (вот я наивный). Оказалось, что последние версии не подходят, да и вообще их надо собирать применяя патчи от 1С. В общем спасибо сайту и комментария про кодировку UTF8. В итоге ДТшник я туда все-таки залил, стало быть не битый. База из 4Гб ДТшника развернулась на 42Гб.
Ну что, будем пытаться заставить 8.3.8 кушать большую базу или идей больше нет?
Попробую отключить режим совместимости в конфигурации и выгрузить в другой ДТшник.
А вот почему .DT не хочет загружаться в базу, даже подготовленную в 8.3.8 - вопрос интересный. Если действительно всё сделано как надо, то остается только считать что это в платформа виновата, не зря же 1С по умолчанию базы в старом формате создают.
(21) Pasha1st, что-то явно сдвинулось с места после тестирования и исправления в базе PostgreSQL и выгрузки в новый .dt'шник. Теперь при разворачивании в файловую базу, она сначала разрастается до 30Гб (против 16Гб ранее), а затем конфигуратор начинает жадно кушать оперативную память, и когда отъедает 2,5Гб ОЗУ - падает с ошибкой "Недостаточно памяти". Похоже "вкусностями" нового формата могут воспользоваться только обладатели 64 битного конфигуратора в Linux.
Играюсь с /PAE, /3GB и increaseuserva .
---
Не спасло, до 3.7Гб отъело и рухнуло снова.
Ошибки:
--------------------------------------------------------------------------------
20.11.2011 23:19:29
Несоответствие версии формата файла информационной базы.
Конвертация выполняется в режиме запуска Конфигуратор.
Есть у нас лицензия на 8.2. Комплект многопользовательской лицензии на 5 человек.
Я установил 8.2.14.540x86 и 8.2.14.540x64 из шапки.
ОС Win7 SP1 x64.
Установил Сервер 1С:Предприятие потому что без него я даже не мог никуда подключится чтобы вбить свой пинкод для многопользовательской лицензии.
Потом на "сервере" расшарил папку с базой. На другом компьютере установил "тонкий клиент: файловый вариант" подключил к нему базу и загружаюсь.
И он снова спрашивает меня где лицензия? Я ему указываю имя компьютера "1c-ws" - на нем вроде как установлен сервер и менеджер лицензий. Но он не видит там лицензию и предгалагает мне заново заполнить анкету и ввести пин-код.
К примеру какие именно компоненты нужно ставить на пользовательскую машину?
Вот.
Ну и 5 лицензий на 1С Предприятие:
4601546038807 1С:Предприятие 8. Клиентская лицензия на 5 рабочих мест
Лицензии на сервер не покупали. У нас ведь не SQL и не терминал. А так. Файловый вариант.
И кстати еще вопрос сразу. Вот я вбил лицензию на 5 рабочих мест у себя на сервере через мастер получения лицензий. А как вот теперь понять и проверить что именно на 5? Раньше то можно было через ХАСП монитор посмотреть на аппаратные ключи, а сейчас как?
Т.е. у меня НЕТ USB ключа. Это чисто новая программная лицензия. Выдается на листочке. После забивания этих данных в мастер получения лицензии - на компьютере создается фаил ключ *.lic с лицензией именно под это железо, под эту конфигурацию. И вот как в случае обычного файлового варианта раздать этот ключ другим сотрудникам я не знаю.
Я уже учавтвую в переписке с юмансом. Но как я понял это невозможно. Они по всей видимости только в режиме терминальных серверов или sql редакции.
или
установить лицензию на сервер и запускать "1С:Предприятие" с произвольных компьютеров, но при этом ограничить количество одновременно запущенных сеансов.
Если использование лицензий с программной защитой приводит к существенным объективным проблемам у пользователя, то лицензии с программной защитой можно бесплатно обменять на лицензии с аппаратной защитой.
Читайте также: