К статье
Практический материал

Справочники и Данные · 11 мин

Где хранятся справочники 1С и как их найти

Объясняем, где физически хранятся справочники 1С: в таблицах СУБД, файловой базе 1Cv8.1CD и конфигурации. Как найти нужный справочник и не потерять данные.

Справочники 1С — это не отдельные файлы на диске и не документы в папке «Мои документы». Все элементы справочников (контрагенты, номенклатура, сотрудники, склады) хранятся внутри информационной базы: в файловом варианте — в едином файле 1Cv8.1CD, в клиент-серверном — в таблицах базы данных SQL Server, PostgreSQL или другой СУБД. Понимание этого принципа важно для резервного копирования, переноса данных и восстановления после сбоев.

При этом у термина «справочник» в 1С два смысла. Первый — метаданные, то есть описание структуры справочника (реквизиты, табличные части, формы), которое хранится в конфигурации. Второй — сами данные, то есть конкретные элементы, которые вводят пользователи. Метаданные живут в конфигураторе и файле конфигурации (.cf), данные — в таблицах базы. Путаница между этими уровнями — частая причина ошибок при обновлениях и переносах.

Ниже разберём, где именно находятся справочники в файловом и серверном вариантах, какие таблицы СУБД им соответствуют, как найти нужный справочник в конфигураторе и предприятии, и как безопасно делать копии, не рискуя потерять данные.

Два уровня хранения: конфигурация и данные

Когда разработчик открывает конфигуратор и видит в дереве метаданных ветку «Справочники», он работает с описанием структуры. Здесь задаются реквизиты (ИНН, КПП, единица измерения), табличные части, иерархия, подчинение владельцу, формы списка и элемента. Это описание сохраняется в конфигурации базы данных и может быть выгружено в файл .cf или .dt.

Данные — это уже конкретные записи: «ООО Ромашка», «Гвоздь 6х200», «Иванов И.И.». Они хранятся в таблицах базы данных и никак не попадут в файл конфигурации .cf. Именно поэтому выгрузка конфигурации не является резервной копией: структура сохранится, а все контрагенты и номенклатура — нет.

Практический вывод: для полной копии базы используйте выгрузку в .dt (через конфигуратор: «Администрирование → Выгрузить информационную базу») или штатные средства резервного копирования СУБД. Файл .cf годится только для переноса доработок конфигурации.

Файловый вариант: где лежит база на диске

В файловом варианте вся информационная база — это каталог, в котором главный файл называется 1Cv8.1CD. Внутри него в специальном формате хранятся все таблицы: справочники, документы, регистры, константы, настройки. Путь к каталогу виден при запуске: в окне выбора информационных баз выделите базу — путь отобразится внизу окна или в настройках.

Также путь можно посмотреть из режима «Предприятие»: меню «О программе» (или «Сервис → О программе») покажет каталог информационной базы. Рядом с 1Cv8.1CD могут лежать служебные файлы и папки: журнал регистрации (в новых форматах — каталог 1Cv8Log), файлы блокировок и индексов полнотекстового поиска.

Копировать файл 1Cv8.1CD напрямую можно только при полном отсутствии активных сеансов. Если пользователи работают, файл будет заблокирован, а скопированная версия может оказаться повреждённой или несогласованной. Безопаснее делать копию через выгрузку .dt или после завершения всех сеансов.

Клиент-серверный вариант: таблицы в СУБД

В клиент-серверном варианте данные справочников хранятся в таблицах базы данных на сервере СУБД (Microsoft SQL Server, PostgreSQL, Oracle, IBM Db2). Каждому справочнику конфигурации соответствует таблица с именем вида _ReferenceNNN, где NNN — внутренний номер объекта метаданных. Например, справочник «Номенклатура» может храниться в таблице _Reference31, а «Контрагенты» — в _Reference57.

Имена таблиц не совпадают с названиями справочников, потому что платформа присваивает номера автоматически. Сопоставление можно получить штатной функцией «ПолучитьСтруктуруХраненияБазыДанных()» в конфигураторе или через обработку, выводящую структуру хранения. В результате будет видно, какая таблица и какие поля соответствуют каждому справочнику и реквизиту (поля обычно называются _FldNNN).

Прямое обращение к таблицам СУБД запросами SELECT допустимо для чтения и аналитики, но любые UPDATE, INSERT или DELETE в обход платформы категорически не рекомендуются: нарушается логическая целостность (версии объектов, итоги, ссылки), и такая база теряет поддержку. Для изменения данных используйте только средства 1С: обработки, обмены, встроенный язык.

bsl
СтруктураХранения = ПолучитьСтруктуруХраненияБазыДанных();
Для Каждого Строка Из СтруктураХранения Цикл
    Если СтрНачинаетсяС(Строка.ИмяТаблицыХранения, "_Reference") Тогда
        Сообщить(Строка.Метаданные + " -> " + Строка.ИмяТаблицыХранения);
    КонецЕсли;
КонецЦикла;

Как найти нужный справочник в конфигураторе и предприятии

В конфигураторе справочники находятся в дереве конфигурации: ветка «Справочники» в общем списке метаданных. Если дерево не открыто, выполните «Конфигурация → Открыть конфигурацию». Поиск по имени работает через «Правка → Поиск» или поиск по метаданным (Ctrl+Shift+F в отдельных версиях), а также через кнопку поиска в панели метаданных.

В режиме «Предприятие» справочники доступны из интерфейса прикладного решения: обычно через разделы «Справочники», «НСИ», «Настройки» или через «Все функции» (в управляемом приложении: кнопка меню → «Все функции» → ветка «Справочники»). Если пункта «Все функции» нет, включите его в параметрах: «Сервис → Параметры → Отображать команду Все функции».

Если известно название элемента, но неизвестно, в каком он справочнике, используйте глобальный поиск по строке (Ctrl+Shift+F в предприятии) или полнотекстовый поиск по данным, если он включён администратором. Для поиска по ссылке в технических задачах применяют обработку «Поиск ссылок на объект».

Как определить, в какой таблице лежит справочник
  1. 1
    Откройте конфигуратор и убедитесь, что никто не работает с базой (для файлового варианта).
  2. 2
    Выполните код с ПолучитьСтруктуруХраненияБазыДанных() или откройте обработку структуры хранения.
  3. 3
    Найдите строку с именем метаданных, например Справочник.Номенклатура.
  4. 4
    Зафиксируйте имя таблицы вида _ReferenceNNN и имена полей _FldNNN для нужных реквизитов.
  5. 5
    Используйте эти данные только для чтения через СУБД или для диагностики.

Кэш метаданных и временные копии: что ещё хранится на компьютере

Помимо основной базы, платформа создаёт на клиентских компьютерах кэш метаданных — служебные каталоги в профиле пользователя, например в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. Там хранятся локальные копии структуры конфигурации для ускорения запуска. Это не данные справочников, а кэш описаний; его очистка иногда помогает при ошибках вида «потерян контекст» или несоответствии версий после обновления.

На сервере 1С (в клиент-серверном варианте) также существует каталог srvinfo с рабочими процессами и кэшем сеансовых данных. Удалять его содержимое при работающем сервере нельзя. Если подозреваете повреждение кэша, корректная последовательность — остановить службу агента сервера, очистить каталог, запустить службу заново.

Отдельно стоит упомянуть автосохранённые настройки пользователей (варианты отчётов, настройки списков): они хранятся в системных таблицах базы, а не в справочниках, и при выгрузке .dt переносятся вместе с базой.

Резервное копирование и перенос справочников

Чтобы сохранить справочники вместе с остальными данными, используйте выгрузку информационной базы в файл .dt: конфигуратор → «Администрирование → Выгрузить информационную базу». Выгрузка требует монопольного доступа, поэтому пользователи должны выйти. Для клиент-серверных баз альтернатива — резервное копирование средствами СУБД (например, BACKUP DATABASE в SQL Server), что обычно быстрее на больших объёмах.

Если нужно перенести только справочники между разными базами (например, номенклатуру из старой учётной системы в новую), применяют типовые обработки: «Универсальный обмен данными в формате XML», «Выгрузка и загрузка данных XML» (для идентичных конфигураций) или конвертацию данных с настроенными правилами обмена. При переносе в неидентичную конфигурацию правила сопоставления реквизитов настраиваются отдельно.

Проверка результата после переноса: сравните количество элементов в ключевых справочниках, откройте несколько случайных элементов и убедитесь, что реквизиты и табличные части заполнены, а ссылки на связанные объекты (единицы измерения, валюты, договоры) не битые.

Контрольные точки

Как проверить результат переноса справочников

Количество элементов
Норма

Совпадает с источником или отличается на известное число отборов

Тревожный признак

Существенная разница без объяснения — часть данных не перенеслась

Реквизиты элементов
Норма

Поля заполнены, типы значений корректны

Тревожный признак

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

Ссылки на другие объекты
Норма

Связанные элементы открываются без ошибок

Тревожный признак

«Объект не найден» — битые ссылки, перенос неполный

Типичные ошибки и ограничения

Самая распространённая ошибка — считать выгрузку конфигурации .cf резервной копией. После сбоя обнаруживается, что структура есть, а данные справочников потеряны. Вторая ошибка — копирование 1Cv8.1CD «на живую» и последующая работа с повреждённой копией. Третья — прямое редактирование таблиц SQL: база начинает выдавать ошибки согласованности, а восстановление требует участия специалиста.

Ещё одна ловушка — поиск справочников «по файлам» в каталоге базы. В файловом варианте нельзя открыть отдельный справочник как файл: всё внутри 1Cv8.1CD, и извлечь данные можно только штатными инструментами платформы или утилитами восстановления после повреждений.

Типичные ошибки
01
Считать файл .cf резервной копией — данные справочников в нём не сохраняются.
02
Копировать 1Cv8.1CD при работающих пользователях — копия может быть повреждена.
03
Править таблицы _ReferenceNNN напрямую в SQL — нарушается целостность и теряется поддержка.
04
Искать справочники как отдельные файлы в каталоге базы — они хранятся только внутри 1Cv8.1CD или СУБД.
05
Очищать каталог srvinfo на работающем сервере — приводит к сбоям сеансов.
Итог

Что важно запомнить

Справочники 1С хранятся внутри информационной базы: в файле 1Cv8.1CD (файловый вариант) или в таблицах _ReferenceNNN в СУБД (клиент-серверный). Структура справочников — в конфигурации, данные — в базе. Резервную копию делайте через .dt или средства СУБД, таблицы SQL напрямую не редактируйте.

Частые вопросы

Можно ли открыть справочник 1С без программы 1С?

Штатно — нет. Файл 1Cv8.1CD имеет закрытый формат, и прочитать его могут только платформа 1С или специализированные утилиты восстановления. В клиент-серверном варианте данные доступны через запросы к СУБД, но только для чтения и с пониманием структуры хранения.

Где взять путь к файловой базе, если я его забыл?

Откройте стартовое окно 1С (список информационных баз), выделите нужную базу — путь к каталогу отображается внизу окна. Также путь виден в режиме «Предприятие» через «О программе» в строке «Каталог».

Хранятся ли справочники в облаке при работе через 1С:Фреш?

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

Чем отличается таблица _Reference от _ReferenceChngR?

Таблица _ReferenceNNN хранит сами элементы справочника, а _ReferenceChngRNNN — зарегистрированные изменения для планов обмена. Вторая нужна механизму синхронизации и не содержит самих данных справочника.

Как перенести только один справочник в другую базу?

Для идентичных конфигураций подойдёт обработка «Выгрузка и загрузка данных XML» с отбором по нужному справочнику. Для разных конфигураций используют «Универсальный обмен данными в формате XML» с правилами конвертации или пишут перенос на встроенном языке через COM/OLE.

Удалил элемент справочника — где искать его восстановление?

Штатной «корзины» в 1С нет: удалённый элемент восстанавливается только из резервной копии (.dt или бэкапа СУБД). Если пометка на удаление ещё не удалена монопольно, объект можно вернуть, сняв пометку. Поэтому регулярное резервное копирование — единственная надёжная защита.