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

В этой статье мы разберём все актуальные способы — от простого просмотра свойств файла до анализа бинарных данных с помощью специализированных утилит. Особое внимание уделим отличиям между файловой и SQL-базой, а также нюансам работы с конфигурациями разных поколений (1С 7.7, 8.0-8.2, 8.3). Вы узнаете, какие инструменты использовать, какие ошибки могут возникнуть, и как избежать повреждения данных при некорректном определении версии.

Важно: если вы работаете с облачными версиями (например, 1С:Фреш), файлового доступа к базе нет — используйте веб-интерфейс или API для получения информации о версии.

1. Способ: Анализ расширений файлов базы 1С

Самый быстрый, но и самый поверхностный метод — изучение расширений файлов в папке базы. Он подходит для файловых баз и позволяет приблизительно определить поколение , но не даёт точной версии платформы или конфигурации.

Типичная структура файловой базы 1С:Предприятие 8.3 включает:

  • 📁 1Cv8.1CD — основной файл базы данных (содержит все данные и метаданные).
  • 📄 1Cv8.lck — файл блокировки (появляется при открытой базе).
  • 📄 1Cv8Log — журнал транзакций (если включено ведение лога).
  • 📁 ext — папка с внешними отчётами и обработками (если используются).

Для сравнения, в 1С 7.7 вы увидите файлы с расширениями .dbf (таблицы данных) и .cdx (индексы). А в 1С 8.0-8.2 мог встречаться файл 1Cv8.dt (устаревший формат хранения данных).

Версия 1С Основной файл базы Дополнительные файлы Примечания
1С 7.7 .dbf, .cdx 1cv7.md (метаданные) Файловая структура, похожая на dBase.
1С 8.0-8.2 1Cv8.dt (устарело) 1Cv8.1CD (новый формат) В 8.2 начался переход на .1CD.
1С 8.3 1Cv8.1CD 1Cv8.lck, 1Cv8Log Актуальный формат для всех современных релизов.

⚠️ Внимание: Наличие файла 1Cv8.1CD не гарантирует, что база работает на последней версии платформы 8.3.23. Это лишь указывает на формат хранения, совместимый с 8.1 и выше. Для точного определения версии требуются другие методы.

2. Способ: Просмотр свойств файла 1Cv8.1CD

Файл 1Cv8.1CD содержит в своих метаданных информацию о версии платформы, на которой была создана или последней модифицирована база. Эту информацию можно извлечь без запуска , используя стандартные средства Windows или специализированные утилиты.

Инструкция для Windows:

  1. Найдите файл 1Cv8.1CD в папке базы.
  2. Кликните правой кнопкой мыши → Свойства → вкладка Подробно.
  3. Посмотрите поля Версия платформы или Описание.

Если поле пустое, попробуйте открыть файл в блокноте (первые 100 байт могут содержать читаемую информацию) или используйте утилиту 1Cv8ExtInfo (см. следующий раздел).

📊 Какой инструмент вы обычно используете для работы с базами 1С?
Конфигуратор
Внешние обработки
Скрипты на PowerShell
Утилиты от 1С
Другое

⚠️ Внимание: Некоторые антивирусы (например, Kaspersky) могут блокировать доступ к файлам как к "потенциально опасным". Перед анализом временно отключите защиту или добавьте папку с базой в исключения.

3. Способ: Использование утилиты 1Cv8ExtInfo

Официальная утилита 1Cv8ExtInfo.exe входит в комплект поставки 1С:Предприятие и позволяет извлечь расширенную информацию о базе, включая:

  • 🔹 Версию платформы, на которой создана база.
  • 🔹 Версию конфигурации (если она типовой).
  • 🔹 Дату последнего изменения.
  • 🔹 Размер базы и количество объектов.

Где найти утилиту:

- В папке установки (например, C:\Program Files (x86)\1cv8\8.3.23.1234\bin\).

- В дистрибутиве платформы (файл 1Cv8ExtInfo.exe).

Команда для запуска (в cmd):

1Cv8ExtInfo.exe "C:\Путь\к\базе\1Cv8.1CD"

Пример вывода:

Версия платформы: 8.3.21.1650

Версия конфигурации: Бухгалтерия предприятия, редакция 3.0 (3.0.125.40)

Дата создания: 15.03.2023

Размер базы: 1.2 Гб

💡

Если утилита не находит файл, проверьте права доступа к папке. Запускайте cmd от имени администратора.

4. Способ: Анализ SQL-базы (для клиент-серверного варианта)

Если база хранится на MS SQL Server, PostgreSQL или другом сервере, файлового доступа к 1Cv8.1CD нет. В этом случае версию можно определить через:

  • 🗃️ Системные таблицы (например, Config или Params в MS SQL).
  • 🔧 Утилиту ibconfig (для PostgreSQL).
  • 📋 Логи сервера 1С (папка srvinfo на сервере).

Пример запроса для MS SQL Server:

SELECT TOP 1 * FROM Config WHERE Name = 'Version'

Для PostgreSQL (если используется с Postgres):

SELECT * FROM information_schema.tables WHERE table_schema = 'public' AND table_name LIKE 'config%';

⚠️ Внимание: Не все таблицы в SQL-базе имеют одинаковую структуру. В старых версиях (до 8.3.10) имена системных таблиц могли отличаться. Перед выполнением запросов обязательно сделайте бэкап.

Создать резервную копию базы данных|Проверить права доступа к серверу|Уточнить версию СУБД (MS SQL/PostgreSQL)|Использовать официальные утилиты 1С-->

5. Способ: Чтение заголовка файла в шестнадцатеричном редакторе

Для опытных пользователей существует метод анализа "сырых" данных файла 1Cv8.1CD с помощью шестнадцатеричных редакторов (например, HxD, 010 Editor или даже Notepad++ с плагином Hex-Editor). Версия платформы и конфигурации хранится в заголовке файла в текстовом или бинарном виде.

Инструкция:

  1. Откройте файл 1Cv8.1CD в HxD.
  2. Прокрутите до смещения 0x20 (32 байт от начала).
  3. Ищите строки вида 8.3.21.1650 или ConfigVersion=3.0.125.40.

Критичная информация: В файлах баз 1С, созданных на платформе 8.3.19 и выше, версия конфигурации может храниться в зашифрованном виде. В этом случае шестнадцатеричный анализ не сработает — используйте 1Cv8ExtInfo.

Пример того, как может выглядеть заголовок (первые 100 байт):

43 6F 6E 66 69 67 56 65 72 73 69 6F 6E 3D 33 2E ConfigVersion=3.

30 2E 31 32 35 2E 34 30 0D 0A 50 6C 61 74 66 6F 0.125.40..Platform

72 6D 56 65 72 73 69 6F 6E 3D 38 2E 33 2E 32 31 rmVersion=8.3.21

2E 31 36 35 30 0D 0A .1650..

Что делать, если файл повреждён?

Если при открытии файла в HxD вы видите вместо текста случайный набор байтов (например, ÿØÿà JFIF), это признак повреждения. Восстановить такую базу можно только через chdbfl.exe (утилита проверки и восстановления баз 1С) или из резервной копии.

6. Способ: Через внешнюю обработку или скрипт

Если у вас есть доступ к работающей базе (хоть и не к конфигуратору), но нужно автоматизировать проверку версий для множества файлов, можно использовать:

  • 📊 Внешнюю обработку (например, "Анализ версий баз 1С" из каталога 1С-Отчётность).
  • 🤖 Скрипт на PowerShell (для массовой обработки файлов).
  • 🐍 Python-скрипт с библиотекой py1c.

Пример скрипта на PowerShell для чтения версии из файла:


$file = "C:\Base\1Cv8.1CD"

$stream = New-Object System.IO.FileStream($file, [System.IO.FileMode]::Open)

$reader = New-Object System.IO.BinaryReader($stream)

$reader.BaseStream.Position = 32 # Смещение к версии

$versionBytes = $reader.ReadBytes(20)

$version = [System.Text.Encoding]::ASCII.GetString($versionBytes).Trim([char]0)

Write-Host "Версия платформы: $version"

$reader.Close()

⚠️ Внимание: Скрипты, работающие напрямую с бинарными данными , могут нарушить целостность файла при некорректном использовании. Тестируйте их на копиях баз, а не на рабочих файлах.

7. Частые ошибки и как их избежать

При определении версии базы по файлам пользователи часто сталкиваются с следующими проблемами:

Ошибка 1: Файл заблокирован процессом .

- Причина: База открыта в пользовательском режиме или в конфигураторе.

- Решение: Закройте все сеансы или используйте утилиту 1cv8.exe /Disconnect для принудительного отключения пользователей.

Ошибка 2: Утилита 1Cv8ExtInfo выдаёт "Не является файлом базы данных".

- Причина: Файл повреждён или имеет неверный формат (например, это архив или резервная копия).

- Решение: Проверьте файл на целостность или попробуйте извлечь данные из бэкапа.

Ошибка 3: В SQL-базе нет таблицы Config.

- Причина: Устаревшая структура базы (до 8.3.8) или нестандартная конфигурация.

- Решение: Ищите версию в таблице Params или используйте утилиту dbconfig из комплекта .

💡

Если ни один из методов не сработал, скорее всего, у вас не стандартная база 1С, а кастомная разработка или архив. В этом случае обратитесь к разработчику конфигурации за документацией.

FAQ: Ответы на частые вопросы

Можно ли определить версию конфигурации, если база зашифрована?

Да, но только если шифрование применено на уровне (например, через SetAuthentication()). В этом случае используйте утилиту 1Cv8ExtInfo с ключом /P и укажите пароль. Если же файл зашифрован сторонним ПО (например, TrueCrypt), сначала расшифруйте его.

Как узнать версию базы, если есть только бэкап (.zip или .dt)?

Распакуйте архив и анализируйте файл 1Cv8.1CD (или .dt для старых версий) любым из описанных методов. Если бэкап в формате .dt, это указывает на версию платформы не выше 8.2.

Почему 1Cv8ExtInfo показывает версию платформы 8.3.10, а в конфигураторе — 8.3.21?

Это нормально. Версия в файле 1Cv8.1CD фиксируется при создании или конвертации базы. Если база была создана на 8.3.10, а потом открывалась на 8.3.21, файл не обновляется автоматически. Актуальную версию платформы смотрите в окне "О программе" в конфигураторе.

Можно ли по файлу определить, какая конфигурация используется: Бухгалтерия, ЗУП или УТ?

Да, но не всегда точно. Утилита 1Cv8ExtInfo показывает имя типовой конфигурации (например, "Бухгалтерия предприятия (3.0)"). Если конфигурация сильно доработана, имя может отсутствовать. В этом случае анализируйте структуру метаданных через конфигуратор.

Как проверить версию базы на Linux-сервере?

Используйте те же методы, но с учётом особенностей Linux:

  • Для 1Cv8ExtInfo запускайте через Wine или в терминале с монтированным сетевым диском.
  • Для анализа SQL-базы подключайтесь через psql (для PostgreSQL) или sqlcmd (для MS SQL).
  • Используйте hexdump вместо HxD для просмотра бинарных данных.