Как устроена информационная база 1С и чем файл отличается от SQL
Содержание
База 1С — это информационная база: все ваши данные (справочники, документы, проводки, остатки) плюс конфигурация, по правилам которой эти данные обрабатываются. В 1С:Предприятие 8.3 базы бывают двух видов. Файловая хранит всё в одном файле 1Cv8.1CD в папке на диске. Клиент-серверная лежит в СУБД (MS SQL Server, PostgreSQL, IBM Db2 или Oracle), а работу с ней ведёт сервер 1С.
Для офиса на 3–5 человек обычно хватает файловой базы. Если одновременно работают 10–15 человек и больше, база весит десятки гигабайт или нужен круглосуточный доступ, выбирают вариант с сервером 1С и SQL.
Из чего состоит база 1С: платформа, конфигурация, данные
Три понятия часто путают, а от них зависит, что именно вы обновляете, копируете или переносите.
- 🧩 Платформа — программа
1cv8, которую ставят на компьютер. Она одна на все базы и отвечает за запуск, интерфейс, работу с файлами и сервером. - 📐 Конфигурация — прикладное решение: Бухгалтерия, ЗУП, УТ и т.д. Это описание справочников, документов, отчётов и алгоритмов.
- 📦 Данные — то, что ввели пользователи: контрагенты, накладные, зарплата.
Информационная база = конфигурация + данные. Платформа живёт отдельно. Поэтому одна и та же платформа запускает и Бухгалтерию, и ЗУП, а обновление платформы не меняет ни конфигурацию, ни данные.
В работе встречаются файлы разных форматов. Их полезно различать:
| Расширение | Что внутри | Когда нужно |
|---|---|---|
.1CD | Сама файловая база целиком | Рабочая база в файловом варианте |
.dt | Выгрузка базы: конфигурация + данные | Резервная копия, перенос, смена варианта |
.cf | Только конфигурация, без данных | Создание чистой базы, сравнение |
.cfu | Файл обновления конфигурации | Обновление типовой |
.cfe | Расширение конфигурации | Доработки без снятия с поддержки |
Список баз, который вы видите в окне запуска, — это не сами базы, а ссылки на них. Хранится он в файле ibases.v8i в профиле пользователя: %APPDATA%\1C\1CEStart\ibases.v8i. Удалили базу из списка — данные остались на месте.
Файловая база 1С: как хранятся данные
В файловом варианте вся база — один файл 1Cv8.1CD. Каждый пользователь открывает его по сети через общую папку. Сервера нет: любой компьютер с платформой 1С читает и пишет в файл сам.
Строка подключения в окне запуска выглядит так:
File="D:\Bases\Buh";
Или для сетевой папки:
File="\\fileserver\Bases\Buh";
Сильные стороны:
- ✅ ставится за 10 минут, отдельный сервер и СУБД не нужны;
- ✅ резервная копия — простое копирование папки с закрытой базой;
- ✅ нужны только клиентские лицензии, серверная не нужна;
- ✅ легко перенести на флешку или другой компьютер.
Слабые места:
- ⚠️ при записи данных блокируется таблица целиком, а не отдельные записи. Пока один проводит документ, другой ждёт;
- ⚠️ вся нагрузка идёт по сети: каждый клиент тянет нужные ему страницы файла к себе;
- ⚠️ обрыв сети или выключение компьютера во время записи может повредить файл;
- ⚠️ с ростом размера
.1CDи числа пользователей скорость падает заметно.
Файловую базу лучше держать на локальном диске той машины, где работают больше всего, или на файловом сервере с быстрой сетью. Хранить .1CD на NAS-хранилище с медленным диском или в синхронизируемой облачной папке — частая причина «тормозов» и повреждений.
Для удалённых сотрудников файловую базу публикуют на веб-сервере (IIS или Apache) и подключаются через браузер или тонкий клиент. Это снимает нагрузку с сети, но не отменяет табличных блокировок.
Клиент-серверная база 1С и роль SQL-сервера
Здесь данные лежат в СУБД, а пользователи не трогают их напрямую. Их запросы обрабатывает сервер 1С:Предприятия.
Цепочка выглядит так:
- Клиент (тонкий или толстый) обращается к агенту сервера
ragentна порт1540. - Агент передаёт соединение менеджеру кластера
rmngrна порт1541. - Работу выполняют рабочие процессы
rphost. Их порты берутся из диапазона, который задают в свойствах рабочего сервера; по умолчанию1560:1591. - Рабочий процесс обращается к СУБД и возвращает клиенту только результат.
Строка подключения:
Srvr="srv1c";Ref="buh";
Здесь srv1c — имя сервера 1С, buh — имя базы в кластере. Имя базы в СУБД может быть другим: его указывают при создании.
Какие СУБД поддерживает платформа 8.3:
| СУБД | Особенности |
|---|---|
| MS SQL Server | Самый распространённый вариант, нужна лицензия Microsoft |
| PostgreSQL | Бесплатная, сборки с патчами для 1С есть у 1С и Postgres Professional |
| IBM Db2 | Встречается редко |
| Oracle Database | Встречается редко, в основном в крупных компаниях |
Внутри SQL база 1С выглядит как набор таблиц с обезличенными именами: _Reference45, _Document123, _AccumRg678. Есть служебные таблицы Config, Params, Files, DBSchema — в них хранится конфигурация и описание структуры.
Не правьте таблицы 1С напрямую SQL-запросами. Платформа не узнает об изменениях, итоги регистров разойдутся с движениями, а в худшем случае база перестанет открываться. Для массовых правок есть обработки внутри 1С.
Файловая база или SQL: что выбрать
Главное отличие не в «скорости SQL», а в том, кто управляет блокировками и куда идёт нагрузка. В клиент-серверном варианте блокировки ставятся на уровне записей, а тяжёлые запросы выполняет сервер, а не компьютер бухгалтера.
| Критерий | Файловая | Клиент-серверная |
|---|---|---|
| Одновременных пользователей комфортно | до 5–10 | десятки и сотни |
| Блокировки при записи | целая таблица | отдельные записи |
| Лицензии | только клиентские | клиентские + лицензия сервера 1С (+ лицензия СУБД, если не PostgreSQL) |
| Установка и сопровождение | минимальные | нужен администратор |
| Резервное копирование | копия папки или .dt | средствами СУБД, по расписанию, без остановки работы |
| Устойчивость к сбоям сети | низкая | высокая: данные пишет сервер |
| Регламентные задания | только пока база открыта у кого-то | выполняются сервером сами |
По деньгам ориентир такой: лицензия сервера 1С ПРОФ ориентировочно стоит 80–100 тыс. руб., КОРП — заметно дороже. MS SQL Server Standard добавит ещё сотни тысяч рублей с клиентскими лицензиями, PostgreSQL бесплатен. Плюс сам сервер и время администратора. Цены меняются, уточняйте у партнёра.
Признаки, что файловой базе пора на сервер:
- 🐢 проведение документов «висит», пока другой сотрудник формирует отчёт;
- 🔒 часто выскакивает конфликт блокировок;
- 📈 файл
1Cv8.1CDперевалил за 10–20 ГБ и продолжает расти; - 🌙 нужны ночные регламентные задания (обмены, загрузка курсов) без открытого клиента.
Что лежит в каталоге файловой базы
Откройте папку базы — путь виден в окне запуска внизу при выборе базы. Типичный набор:
| Файл или папка | Назначение |
|---|---|
1Cv8.1CD | Сама база: конфигурация и данные |
1Cv8Log | Журнал регистрации: кто, когда и что менял |
1Cv8FTxt | Индекс полнотекстового поиска |
1Cv8.1CL | Файл блокировки, появляется при открытой базе |
Для копии вручную достаточно 1Cv8.1CD. Папку 1Cv8Log копируйте, если нужна история действий пользователей. Индекс поиска платформа перестроит сама.
Копировать 1Cv8.1CD можно только когда в базе никто не работает. Копия файла, снятая «на ходу», может оказаться битой. Надёжнее выгрузка в .dt через Конфигуратор.
Файл 1Cv8.1CL иногда остаётся после аварийного завершения и мешает входу. Удалять его можно, только убедившись, что базу никто не открыл: проверьте процессы 1cv8 на всех компьютерах с доступом к папке. Иначе вы выбьете работающих пользователей и рискуете повредить данные.
Для проверки файловой базы есть два инструмента:
- 🔧
Конфигуратор → Администрирование → Тестирование и исправление— нужен монопольный доступ, все пользователи должны выйти; - 🔧 утилита
chdbfl.exeв папкеbinплатформы — проверяет физическую целостность1Cv8.1CDбез запуска 1С.
У клиент-серверной базы «каталога» в этом смысле нет. Данные лежат в файлах СУБД, а настройки кластера — в каталоге службы сервера 1С (папка srvinfo). Копировать оттуда что-то вручную бессмысленно и опасно.
Перенос базы 1С: из файла в SQL и обратно
Универсальный способ сменить вариант — через выгрузку .dt. Он одинаково работает в обе стороны.
Файловая база → сервер 1С
- Попросите всех выйти из базы.
- Откройте базу в Конфигураторе и выполните
Администрирование → Выгрузить информационную базу. Сохраните.dt. - Создайте пустую базу на сервере. Проще всего — в окне запуска:
Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации, затем выберите вариант «На сервере 1С:Предприятия». Укажите кластер, имя базы, тип СУБД, сервер СУБД, имя базы данных и учётную запись СУБД. - Отметьте «Создать базу данных в случае её отсутствия».
- Откройте новую базу в Конфигураторе и выполните
Администрирование → Загрузить информационную базу, указав.dt. - Запустите базу в режиме 1С:Предприятие и проверьте остатки по ключевым счетам и пару отчётов.
Сервер 1С → файловая база
Порядок тот же: выгрузка в .dt из серверной базы, создание пустой файловой базы, загрузка .dt. Так делают, чтобы отдать копию аудитору или поднять тестовую базу на ноутбуке.
Загрузка .dt полностью заменяет содержимое базы-приёмника. Загрузили не в ту базу — данные в ней потеряны. Перед загрузкой сверьте строку подключения внизу окна Конфигуратора.
Почему не копировать базу средствами SQL при переезде между серверами? Можно, и для больших баз это быстрее: бэкап и восстановление в СУБД, затем регистрация базы в новом кластере с указанием существующей базы данных. Но при смене СУБД (MS SQL → PostgreSQL) работает только путь через .dt.
Ещё одна деталь: версия платформы на сервере и на клиентах должна совпадать полностью, вплоть до номера сборки. Иначе подключение не пройдёт.
Права доступа: кто и как защищает данные
Здесь два уровня: доступ к самой базе на уровне ОС или СУБД и пользователи внутри 1С.
Файловая база
Каждому пользователю нужны права на чтение и запись в папку базы. Это слабое место: кто может открыть папку, тот может и скопировать 1Cv8.1CD целиком. Пароли пользователей 1С от этого не спасают — файл открывается на другом компьютере средствами для работы с форматом.
Что делать:
- 🔐 давайте права на папку через группу домена, а не «Всем»;
- 🔐 не публикуйте папку базы как общий ресурс для всей сети;
- 🔐 для удалённых сотрудников используйте веб-публикацию или терминальный сервер вместо прямого доступа к папке.
Клиент-серверная база
Пользователи не видят СУБД вообще. К SQL подключается только служба сервера 1С под своей учётной записью. Защищают:
- 🛡️ учётную запись СУБД — отдельная, не
saи неpostgres, со сложным паролем; - 🛡️ администраторов кластера — без них любой с доступом к консоли может создать или удалить базу;
- 🛡️ администратора информационной базы — задаётся в свойствах базы в кластере.
Пользователи внутри 1С
Это общий уровень для обоих вариантов. В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) пользователей и группы доступа настраивают в разделе Администрирование → Настройки пользователей и прав. Там же включают ограничение доступа на уровне записей — например, чтобы менеджер видел только свои организации.
Можно настроить вход через учётную запись Windows: тогда пароль 1С не нужен, пользователя узнают по доменному логину.