Информационная база (ИБ) — это сердце любой системы 1С:Предприятие. Без неё программа просто не сможет работать: не будет ни данных о контрагентах, ни истории документов, ни настроек пользователей. Но что именно скрывается за этим термином? Из каких элементов состоит база, где физически хранятся файлы, и как они взаимодействуют между собой?
Многие пользователи и даже начинающие администраторы представляют информационную базу как некий «чёрный ящик» — монолитный файл, который просто лежит на сервере. На деле это сложная система из десятков компонентов: от конфигурации и метаданных до временных файлов и журналов транзакций. Понимание структуры ИБ критично для резервного копирования, восстановления после сбоев, оптимизации производительности и даже для написания корректных запросов в 1С:Запросы.
В этой статье мы разберём:
- 📁 Физическую структуру — какие файлы входят в состав базы и за что каждый отвечает
- 🗃️ Логическую архитектуру — как данные организованы внутри (таблицы, индексы, BLOB-объекты)
- 🔄 Механизмы работы — как 1С взаимодействует с базой при запуске, обновлении и резервном копировании
- ⚠️ Типичные ошибки — что нельзя делать с файлами ИБ и почему
Информация будет полезна как администраторам, так и разработчикам, которые хотят глубже понять, почему некоторые операции с базой (например, тестирование и исправление) могут занимать часы, а неправильное копирование файлов приводит к потере данных.
1. Физическая структура информационной базы: какие файлы входят в состав
Когда вы создаёте новую базу в 1С:Предприятие, программа формирует на диске набор файлов. Их состав зависит от режима работы (файловый или клиент-серверный) и версии платформы. Рассмотрим типичный случай для файлового варианта (наиболее распространённого среди небольших компаний).
Основные файлы информационной базы:
- 📄
1Cv8.1CD— главный файл базы данных. Содержит все данные пользователей, документы, справочники и настройки. Именно его чаще всего копируют при резервировании. В клиент-серверном варианте этот файл заменяет база данных на MS SQL, PostgreSQL или другом сервере. - 📄
1Cv8.lgd— файл журнала регистрации. Хранит историю действий пользователей (кто и когда создавал/изменял документы). Полезен для аудита и восстановления данных после сбоев. - 📄
1cv8usr.lst— список пользователей базы. Здесь хранятся логины, пароли (в зашифрованном виде) и права доступа. При утере этого файла пользователи не смогут войти в систему. - 📄
1Cv8Log(расширение отсутствует) — временные файлы журналов транзакций. Используются для отката изменений при аварийном завершении работы. - 📁 Папка
ExtForms— хранит внешние формы и отчёты, если они подключены к базе.
В клиент-серверном варианте (например, при работе с MS SQL Server) структура иная:
- 🗄️ База данных на сервере (обычно одна на все информационные базы).
- 📄 Файлы конфигурации (
.cfи.cfu) — хранят структуру метаданных. - 📄
1Cv8.lgdи1cv8usr.lst— остаются локально на сервере приложений.
⚠️ Внимание: Никогда не копируйте только файл1Cv8.1CD, игнорируя остальные! Без1cv8usr.lstпользователи не смогут авторизоваться, а без1Cv8.lgdвы потеряете историю изменений. Полноценное резервное копирование должно включать все файлы каталога базы.
2. Логическая структура: как данные организованы внутри базы
Физические файлы — это только верхушка айсберга. Гораздо важнее понимать, как данные хранятся внутри информационной базы. 1С использует реляционную модель, но с рядом особенностей, обусловленных спецификой платформы.
Основные компоненты логической структуры:
- 🗂️ Таблицы данных — аналоги таблиц в классических СУБД. Например, таблица
Справочник.Контрагентыхранит все записи о партнёрах компании. Каждая таблица имеет первичный ключ (обычноСсылкаилиID). - 🔗 Индексы — ускоряют поиск данных. 1С автоматически создаёт индексы для полей, используемых в запросах и отборах. Например, индекс по полю
ИННв справочнике контрагентов. - 📊 BLOB-объекты — бинарные данные (например, файлы вложений, картинки, печатные формы). Хранятся отдельно от основных таблиц.
- 📝 Журналы регистрации — фиксируют все изменения в базе (кто, когда и что изменил). Используются для отката транзакций и аудита.
- 🔄 Транзакционные журналы — временные файлы, обеспечивающие целостность данных при аварийном завершении работы.
Особенность 1С — динамическая структура таблиц. При изменении конфигурации (например, добавлении нового реквизита в справочник) платформа автоматически модифицирует таблицы в базе данных. Это отличает её от классических СУБД, где структура таблиц жёстко фиксирована.
| Компонент | Описание | Пример |
|---|---|---|
| Таблица данных | Хранит записи объектов (документов, справочников) | Документ.ПоступлениеТоваров |
| Индекс | Ускоряет поиск по полям | Индекс по полю НомерДокумента |
| BLOB-объект | Бинарные данные (файлы, картинки) | Скан копия договора в справочнике контрагента |
| Журнал регистрации | История изменений (кто, когда, что сделал) | Запись: "Петров П.П. изменил документ №123 в 10:15" |
Важно понимать, что конфигурация (структура метаданных) и данные хранятся раздельно. Конфигурация описывает, что может храниться в базе (справочники, документы, отчёты), а данные — что именно записано (конкретные контрагенты, документы, остатки). Это позволяет обновлять конфигурацию без потери пользовательской информации.
Если база работает медленно, проверьте фрагментацию индексов в таблицах. В клиент-серверном варианте это делается через администратор СУБД (например, SQL Server Management Studio). В файловом — поможет тестирование и исправление базы с опцией "Реиндексация".
3. Где хранится информационная база: пути по умолчанию и как их изменить
По умолчанию 1С размещает информационные базы в стандартных каталогах, но администратор может перенести их в любое удобное место. Рассмотрим типичные пути для разных операционных систем и версий платформы.
Пути по умолчанию:
- 🪟 Windows (файловый вариант):
C:\Users\Public\Documents\1C\1Cv8\— для пользовательских баз.C:\Program Files (x86)\1cv8\— системные файлы платформы.
- 🐧 Linux (клиент-серверный вариант):
/var/1C/1cv8/— каталог с базами./opt/1cv8/— файлы платформы.
Чтобы изменить путь хранения базы:
- Запустите 1С:Предприятие в режиме
Конфигуратор. - Выберите
Администрирование → Информационные базы. - Нажмите
ДобавитьилиИзменить, затем укажите новый путь в полеКаталог информационной базы. - Сохраните изменения и перезапустите базу.
⚠️ Внимание: При переносе базы на другой диск или сервер обязательно проверьте права доступа! В Windows каталог должен быть доступен для записи пользователюSYSTEMи группеUsers. В Linux — права775для владельца и группы1c8.
В клиент-серверном варианте путь к базе данных указывается при её создании на сервере MS SQL или PostgreSQL. Сами файлы базы (.mdf, .ldf для SQL Server) хранятся в каталогах, настроенных в СУБД.
Убедиться, что на новом диске достаточно места (минимум в 1.5 раза больше размера базы)|Остановить все сеансы работы с базой|Скопировать ВСЕ файлы из старого каталога|Проверить права доступа на новом месте|Обновить путь в списке информационных баз в 1С|Перезапустить службу 1С:Предприятие (если используется сервер)
-->
4. Как 1С работает с базой: механизмы запуска, обновления и резервного копирования
При запуске 1С:Предприятие выполняет ряд действий с информационной базой, о которых пользователь даже не подозревает. Разберём ключевые механизмы:
1. Запуск базы:
- 🔍 Платформа считывает файл
1Cv8.1CD(или подключается к серверу СУБД). - 🔑 Проверяет права пользователя по файлу
1cv8usr.lst. - 📖 Загружает конфигурацию (метаданные) из файла
.cfили базы SQL. - 🖥️ Инициализирует сеанс работы и открывает основное окно.
2. Обновление конфигурации:
- 🔄 При обновлении платформа сравнивает текущую и новую версию конфигурации.
- 📝 Вносит изменения в структуру таблиц (добавляет/удаляет поля, индексы).
- 🗑️ Создаёт резервную копию старой конфигурации (файл
.cfu). - ⚠️ Если обновление прервать, база может остаться в нерабочем состоянии!
3. Резервное копирование:
- 💾 В файловом варианте копируются все файлы каталога базы (
1Cv8.1CD,1Cv8.lgdи др.). - 🗃️ В клиент-серверном — используется встроенные средства СУБД (например,
BACKUP DATABASEв MS SQL). - ⏱️ Рекомендуемая частота: ежедневно для рабочих баз, перед любыми изменениями конфигурации.
Один из самых важных файлов — 1Cv8Log (журнал транзакций). Он позволяет откатить изменения, если база была повреждена из-за внезапного отключения питания или сбоя программы. При восстановлении из резервной копии этот файл должен быть скопирован вместе с основной базой, иначе возможна потеря данных за период между последним бэкапом и сбоем.
Что будет, если удалить файл 1Cv8Log?
Без файла журнала транзакций база не сможет корректно завершить незавершённые операции. При следующем запуске 1С предложит выполнить тестирование и исправление, но часть данных (например, последний несохранённый документ) может быть утеряна. В худшем случае база не откроется вообще, и потребуется восстановление из резервной копии.
5. Типичные ошибки при работе с информационной базой и как их избежать
Даже опытные пользователи иногда допускают ошибки, которые ведут к потере данных или сбоям в работе 1С. Рассмотрим самые распространённые случаи и способы их предотвращения.
1. Копирование только файла 1Cv8.1CD:
- ❌ Ошибка: При резервном копировании берут только главный файл базы, игнорируя
1Cv8.lgdи1cv8usr.lst. - ✅ Решение: Всегда копируйте весь каталог базы! Используйте архиваторы (например, 7-Zip) для создания единого архива.
2. Изменение файлов базы вручную:
- ❌ Ошибка: Пытаются редактировать
1Cv8.1CDили1cv8usr.lstв блокноте или hex-редакторе. - ✅ Решение: Файлы 1С имеют бинарный формат. Любое ручное изменение приведёт к повреждению базы. Для редактирования данных используйте штатные средства конфигуратора.
3. Прерывание обновления конфигурации:
- ❌ Ошибка: Закрывают 1С или выключают компьютер во время обновления.
- ✅ Решение: Дождитесь завершения процесса. Если сбой произошёл, восстановите базу из резервной копии и повторите обновление.
4. Нехватка места на диске:
- ❌ Ошибка: База растёт, а свободное место на диске не контролируется.
- ✅ Решение: Настройте мониторинг свободного места. Для больших баз (от 10 ГБ) рекомендуется выделять диск объёмом в 2-3 раза больше текущего размера базы.
5. Использование сетевых папок для файловой базы:
- ❌ Ошибка: Размещают файловую базу на сетевом диске (например,
\\server\share\). - ✅ Решение: Файловая база должна храниться локально на компьютере или сервере. Сетевые задержки приводят к тормозам и повреждению данных. Для совместной работы используйте клиент-серверный вариант.
⚠️ Внимание: Если база повреждена, никогда не запускайте её в режиме 1С:Предприятие без предварительного тестирования! Используйте утилитуchdbfl.exe(входит в комплект поставки 1С) для проверки и исправления:chdbfl.exe "C:\Путь\к\базе\1Cv8.1CD" /FПараметр
/Fпринудительно исправляет ошибки. Без него утилита только проверит базу.
6. Оптимизация информационной базы: как ускорить работу
Со временем база 1С может начать работать медленнее. Это связано с фрагментацией данных, разрастанием журналов и другими факторами. Рассмотрим основные способы оптимизации.
1. Регулярное тестирование и исправление:
- 🔧 Запускайте тестирование базы не реже одного раза в месяц. В конфигураторе:
Администрирование → Тестирование и исправление. - 📊 Выбирайте опции:
- 🔸 Проверка логической целостности
- 🔸 Проверка ссылочной целостности
- 🔸 Реиндексация таблиц
- 🔸 Сжатие таблиц (уменьшает размер базы)
2. Очистка журнала регистрации:
- 🗑️ Файл
1Cv8.lgdможет разрастаться до гигантских размеров. Периодически архивируйте и очищайте его:- В конфигураторе:
Администрирование → Журнал регистрации → Настроить → Очистить. - Установите лимит размера журнала (например, 1 ГБ).
- В конфигураторе:
3. Оптимизация запросов:
- 🛠️ Медленные отчёты и обработки часто связаны с неоптимальными запросами. Используйте:
- 🔹 Индексы для полей, используемых в
ГДЕиУПОРЯДОЧИТЬ ПО. - 🔹 Виртуальные таблицы вместо прямых выборок.
- 🔹 Ограничение выборки (
ПЕРВЫЕ 100).
- 🔹 Индексы для полей, используемых в
4. Перенос на SSD:
- 💾 Если база файловая, разместите её на SSD-диске. Это ускорит чтение/запись в 3-5 раз по сравнению с HDD.
- 🗄️ В клиент-серверном варианте SSD рекомендуется для:
- 🔸 Файлов журналов транзакций (
.ldf). - 🔸 TempDB (в MS SQL).
- 🔸 Файлов журналов транзакций (
5. Разделение базы:
- 📂 Если база стала слишком большой (более 50 ГБ), рассмотрите возможность:
- 🔹 Выделения архивных данных в отдельную базу.
- 🔹 Перехода на клиент-серверный вариант.
Регулярная оптимизация базы (тестирование, очистка журналов, дефрагментация) может увеличить производительность на 30-50%. Особенно это заметно в файловом варианте работы.
7. Резервное копирование: стратегии и инструменты
Потеря данных в 1С может парализовать работу компании на дни. Поэтому резервное копирование — критически важная задача. Рассмотрим основные подходы и инструменты.
1. Ручное копирование (для небольших баз):
- 🖱️ Подходит для файлового варианта с базой до 5 ГБ.
- 📂 Алгоритм:
- Закройте все сеансы 1С.
- Скопируйте весь каталог базы в резервную папку.
- Сожмите архиватором (например, 7-Zip с максимальной степенью сжатия).
- Перенесите архив на внешний носитель или облако.
2. Автоматическое копирование (для средних и крупных баз):
- ⏱️ Используйте планировщик задач Windows или cron в Linux.
- 🤖 Скрипт для копирования (пример для Windows):
@echo offset DATE=%date:~0,2%-%date:~3,2%-%date:~6,4%
set TIME=%time:~0,2%-%time:~3,2%
xcopy "C:\1C\Base\" "D:\Backup\1C\%DATE%_%TIME%\" /E /I /Y
"C:\Program Files\7-Zip\7z.exe" a -tzip "D:\Backup\1C\%DATE%_%TIME%.zip" "D:\Backup\1C\%DATE%_%TIME%\*" -mx9
3. Копирование в клиент-серверном варианте:
- 🗃️ Для MS SQL используйте встроенные средства:
BACKUP DATABASE [YourDatabaseName] TO DISK = 'D:\Backups\YourDatabaseName.bak' WITH COMPRESSION; - 🐘 Для PostgreSQL:
pg_dump -U postgres -F c -b -v -f "D:\Backups\yourdb.backup" yourdb
4. Облачные резервные копии:
- ☁️ Сервисы:
- 🔸 1С:Линк — официальное решение для резервного копирования в облако.
- 🔸 Yandex Disk, Google Drive — для ручных копий.
- 🔸 AWS S3, Azure Blob Storage — для автоматизированных решений.
5. Проверка резервных копий:
- 🔍 Регулярно (раз в квартал) проверяйте, что копии работоспособны:
- Восстановите базу из резерва на тестовом сервере.
- Убедитесь, что все данные на месте и база открывается без ошибок.
- Восстановите базу из последней резервной копии.
- Если копии нет, используйте утилиту
chdbfl.exeдля исправления: - В крайнем случае обратитесь в службу поддержки 1С с файлом дампа ошибки.
- 🗑️ Очистите журнал регистрации (
1Cv8.lgd). - 🧹 Выполните тестирование и исправление с опцией Сжатие таблиц.
- 🗃️ Архивируйте и удаляйте старые документы (например, старше 5 лет).
- 🔍 Проверьте наличие крупных вложений (файлов, картинок) и оптимизируйте их хранение.
- Создайте новую базу на сервере MS SQL или PostgreSQL.
- В конфигураторе файловой базы выберите
Администрирование → Выгрузить информационную базу(файл.dt). - В новой клиент-серверной базе выберите
Администрирование → Загрузить информационную базу. - Настройте права доступа и подключение пользователей.
- 📂 Выгрузку архивных данных в отдельную базу.
- 🔗 Настройку связей между базами (например, через Распределённые информационные базы).
- 📊 Использование внешних отчётов для консолидации данных.
⚠️ Внимание: Храните резервные копии в двух разных местах! Например, одна копия на внешнем жёстком диске, другая — в облаке. Это защитит вас от потери данных при пожаре, краже или поломке оборудования.
FAQ: Частые вопросы об информационной базе 1С
Можно ли открыть файл 1Cv8.1CD в другой программе?
Нет, файл 1Cv8.1CD имеет проприетарный бинарный формат, который понимает только 1С:Предприятие. Попытки открыть его в текстовом или hex-редакторе приведут к повреждению данных. Для экспорта данных используйте штатные средства 1С (например, выгрузку в XML или Excel).
Что делать, если база не открывается после сбоя?
Сначала попробуйте запустить тестирование и исправление через конфигуратор (Администрирование → Тестирование и исправление). Если это не помогает:
chdbfl.exe "C:\Путь\к\базе\1Cv8.1CD" /F
Как уменьшить размер базы 1С?
Размер базы можно уменьшить несколькими способами:
В клиент-серверном варианте также можно сжать базу данных через администратор СУБД.
Можно ли перенести базу с файлового варианта на клиент-серверный?
Да, это стандартная процедура. Для переноса:
Что такое "разделение данных" в 1С и зачем оно нужно?
Разделение данных — это механизм, позволяющий хранить часть информации (например, документы за прошлые годы) в отдельной базе, а текущие данные — в основной. Это уменьшает размер рабочей базы и ускоряет её работу. Реализуется через:
Актуально для крупных компаний с историей данных более 5 лет.