03 сентября 2026

Восстановление файловой базы 1с

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

 

Платформа попыталась прочитать данные из файла, но их внутренняя структура оказалась нарушена или искажена. Это происходит из-за некорректного завершения работы.

Раньше такое тоже бывало, но на этот раз все пошло не по сценарию. Обычные способы исправления этой ошибки не сработали:

  • Очистка кэша;
  • Перенос файл базы 1Cv8.1CD в другой каталог;
  • В конфигураторе база не открылась, ни выполнить тестирование и исправление, ни выгрузить в файл 1Cv8.dt не дала;

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

Запуск утилиты chdbfl.exe к сожалению тоже не смог вернуть базу в работоспособное состояние. Но выдал важную информацию:

Повреждена таблица размещения внутреннего файла <Данные неограниченной длины таблицы 'CONFIG'>  Повреждены данные таблицы 'CONFIG'. Восстановлено 69475 из 78235 записей.
Это самая важная таблица, в которой хранится основная (рабочая) конфигурация со всеми объектами.
 
Пришлось прибегнуть к редактированию таблиц файловой БД с помощью tool1cd. Это специализированная бесплатная утилита, предназначенная для низкоуровневого чтения, анализа и восстановления файлов баз данных 1С:Предприятия 8. Она достаточно старая, в 2017 году автор утилиты Валерий Агеев открыл исходный код проекта и с тех пор его развивают независимые разработчики.
 
На официальном репозитории проекта github выложена версия v1.0.0-beta2 от 30 апреля 2018. Там есть исходники и в разделе релизов можно скачать архив с самой программой tool1cd-1.0.0.10.zip. Но в ней к сожалению не оказалось необходимого функционала, только чтение.
 
 
 
Существуют другие версии Tool_1CD.exe : v.0.3.0 и v.0.4.0. Скачать их бесплатно можно на сайте: koder.by
 
Перед тем как открыть файл базы 1Cv8.1CD необходимо проверить его формат. Для этого используем утилиту cnvdbfl.exe, входящую в поставку платформы 1с:
C:\Program Files\1cv8\8.3.25.1374\bin>cnvdbfl.exe -i "D:\test\T1\1Cv8.1CD"
Версия формата: 8.3.8
Размер страницы: 8192

Для того что бы была возможность редактировать базу в tool1cd нужен старый формат 8.2.14. Запустим процедуру конвертирования:
C:\Program Files\1cv8\8.3.25.1374\bin>cnvdbfl.exe -c -f 8.2.14 -p 4k "D:\test\T1\1Cv8.1CD"
После чего благополучно открываем файл, видим его внутреннюю структуру. 

 

Алгоритм для восстановления следующий:
1) Создать новую чистую базу донора с загруженной конфигурацией, такой же как была у поврежденной базы.

2) Сконвертировать ее в формат 8.2.14, как было рассмотрено выше.

3) Открыть файл базы-донора с помощью Tool_1CD, найти в списке таблицу CONFIG, перейти на вкладку «Дополнительно» и выбрать «Экспорт текущей таблицы», указав нужную папку.   

 

4) Затем открываем файл поврежденной базы, переходим к списку таблиц и выбираем поврежденную таблицу CONFIG. Нажимаем кнопку «Удалить текущие таблицы».

5) После окончания процесса удаления поврежденной таблицы, требовалось закрыть и файл и открыть его поновой. И уже только после этого переходить к загрузке из донора.

6) На вкладе дополнительно указываем папку CONFIG, куда вы сохраняли из чистой базы и нажимаем кнопку Создание и импорт таблицы

7) Повторяем те же самые действия для таблицы ConfigSave. Это конфигурация базы данных в процессе разработки (база конфигуратора).
8) Еще потребуется очистить таблицу пользователей v8users таким же образом, удалив и загрузив чистую донорскую. Иначе при открытии в конфигураторе, не будет достаточно прав доступа.
9) Теперь запускаем восстановленную базу в Конфигураторе, она должна открыться. И перейдем в меню: Администрирование -> Тестирование и исправление.
10) Отмечаем галочки:
  • Реиндексация таблиц
  • Проверка логической целостности
  • Проверка ссылочной целостности

Все, теперь база восстановлена, поздравляю! 

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

18 августа 2023

Статический маршрут на роутере Tomato

Обновил прошивку на роутере на следующую версию:  tomato-K26USB-1.28.RT-N5x-MIPSR2-140-miniVPN.zip. На ней обнаружилась проблема с сохранением данных. В частности не сохраняются и не устанавливаются статические маршруты для vpn-соединения, прописываемые в разделе "Remote subnet / netmask". 

Разрешил эту ситуацию так. Зашел через ssh на роутер:

1) В каталоге  /tmp создаются два файла. Один будет срабатывать при подключении к vpn-серверу, второй- при отключении.


Содержимое routes_up.sh

#!/bin/sh
iptables -t filter -I FORWARD -i br0 -o ppp4 -j ACCEPT
iptables -t filter -I FORWARD -i ppp4 -o br0 -j ACCEPT
route add -net 192.168.10.0/24 gw 192.168.89.1
Первые две строчки нужны, для маршрутизации трафика между двумя LAN. Это нужно сделать вручную, поскольку по умолчанию трафик между ними не марщрутизируется.

Вторая для создания статического маршрута до удаленной подсети  192.168.10.0/24

Содержимое  routes_down.sh

#!/bin/sh
route del -net 192.168.10.0/24 gw 192.168.89.1

Здесь удаляется статический маршрут.

2) Назначаются права chmod 744

3) Файлы сохраняются в энергонезависимой памяти, а то после перезагрузки они пропадут.

# nvram setfile2nvram /tmp/routes_up.sh
# nvram setfile2nvram /tmp/routes_down.sh
# nvram commit

3) B админ-панели Tomato GUI в разделе "Custom Configuration" прописал:

ip-up-script /tmp/routes_up.sh
ip-down-script /tmp/routes_down.sh

 4) Теперь при установлении соединения, автоматически поднимаются нужные маршруты и сети начинают видеть друг друга. 

Что бы убедиться, что маршрут создался, выполните команду 

# route

 

Всем мира и радости.