Сохранённые варианты отчётов в 1С 8.3: в какой таблице они лежат и как их переносить

· 9 мин

Содержание

Варианты отчетов пользователей в 1С 8.3 хранятся в самой информационной базе, а не в файлах на компьютере. В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP) это справочник «Варианты отчетов», а в конфигурациях без БСП — системная таблица платформы _RepVarSettings. Локальный кеш клиента в %APPDATA%\1C\1cv8 вариантов не содержит, поэтому переустановка 1С или смена компьютера их не стирают.

Отсюда простое правило: где база, там и варианты. Сохранили отчёт с группировками и отборами — он записан в базу и будет доступен с любого рабочего места. Потерять его можно вместе с базой, при откате на старую копию или при неосторожной «очистке настроек».

Из чего состоит сохранённый отчёт: вариант и настройки

Прежде чем искать место хранения, разделим два понятия. Их часто путают, а лежат они в разных местах.

  • 📊 Вариант отчета — именованная схема: группировки, поля, сортировки, оформление. Его сохраняют командой «Сохранить вариант отчета » в форме отчёта. У варианта есть автор и признак доступности: только автору или всем пользователям.
  • ⚙️ Пользовательские настройки варианта — то, что человек меняет «на лету»: период, организация, быстрые отборы. Платформа запоминает их для каждого пользователя отдельно, обычно автоматически при закрытии отчёта.
  • 🧩 Предопределённые варианты — те, что поставляются в конфигурации разработчиком. Они описаны в схеме компоновки данных отчёта, а в базе хранится лишь их регистрация и пользовательские изменения.

За каждый вид данных в платформе отвечает своё хранилище. Их назначают в свойствах корня конфигурации в Конфигураторе:

Свойство конфигурацииЧто хранитСтандартная таблица платформы
Хранилище вариантов отчетовСохранённые варианты_RepVarSettings
Хранилище пользовательских настроек отчетовПериод, отборы, личные правки_RepSettings
Хранилище общих настроекПрочие настройки пользователя_CommonSettings
Хранилище системных настроекПоложение окон, колонки форм_SystemSettings

Если свойство пустое, платформа пишет данные в стандартную таблицу. Если в свойстве указан объект «Хранилище настроек» из конфигурации, данные идут туда, куда решил разработчик.

Откройте Конфигуратор, выделите корень дерева конфигурации и посмотрите свойство «Хранилище вариантов отчетов». Это самый быстрый способ точно узнать, где лежат варианты именно в вашей базе.

Где хранятся варианты отчетов в типовых конфигурациях на БСП

В конфигурациях на Библиотеке стандартных подсистем свойство «Хранилище вариантов отчетов» указывает на хранилище настроек ХранилищеВариантовОтчетов. Оно записывает каждый вариант элементом справочника Справочник.ВариантыОтчетов.

У элемента справочника есть всё, что нужно для поиска и переноса:

  • 🏷️ наименование варианта, которое видит пользователь;
  • 📁 ссылка на отчёт, к которому вариант относится;
  • 👤 автор и признак «только для автора»;
  • 🧾 сами настройки компоновки данных в упакованном виде;
  • 🗑️ пометка удаления: удалённый из формы вариант обычно не исчезает сразу, а помечается.

Посмотреть список можно без Конфигуратора. В Бухгалтерии 3.0 это раздел Администрирование → Печатные формы, отчеты и обработки → Варианты отчетов. Там видно, кто автор, кому доступен вариант и к какому отчёту он привязан. Похожий путь есть в ЗУП 3.1 и УТ 11 — в разделе «Администрирование».

Пользовательские настройки в БСП

Личные правки варианта (период, отборы) пишутся в хранилище пользовательских настроек отчетов. Управлять ими удобно через обработку «Настройки пользователей»: Администрирование → Настройки пользователей и прав → Настройки пользователей. На закладке «Настройки отчетов» видно, какие отчёты и варианты у сотрудника настроены, и их можно скопировать другому пользователю или очистить.

Файловая и клиент-серверная база: физическое место

Логика хранения одинакова, отличается только «носитель».

Файловый режим

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

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

Клиент-серверный режим

На сервере СУБД (MS SQL Server, PostgreSQL) база — это набор таблиц. Системные хранилища видны под именами:

_RepVarSettings   — стандартное хранилище вариантов отчетов
_RepSettings      — пользовательские настройки отчетов
_CommonSettings   — общие настройки
_SystemSettings   — системные настройки
_FrmDtSettings    — настройки данных форм
_DynListSettings  — настройки динамических списков

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

Не правьте эти таблицы запросами SQL напрямую. Настройки лежат в упакованном двоичном виде, а платформа держит связанный кеш. Ручное изменение легко повредит данные, и исправлять придётся тестированием и исправлением базы.

Чтение таблиц через SQL допустимо для диагностики (например, посмотреть, сколько строк у пользователя). Любые изменения — только средствами 1С.

Что лежит в кеше на компьютере пользователя

В каталогах %APPDATA%\1C\1cv8\ и %LOCALAPPDATA%\1C\1cv8\ для каждой базы создаётся папка с именем-идентификатором. Там хранится кеш конфигурации, метаданных и часть служебных данных клиента.

Сохранённых вариантов отчетов там нет. Поэтому:

  • 🧹 запуск с ключом /ClearCache или удаление этих папок варианты не удаляет;
  • 💻 новый компьютер получает все варианты сразу после подключения к базе;
  • 🔁 если после изменения варианта на одном месте другой пользователь видит старую версию, достаточно переоткрыть отчёт — кеш тут обычно ни при чём.

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

Если кеш всё же нужно очистить, закройте 1С на этом компьютере: пока клиент запущен, часть файлов занята. Другие пользователи от этого не пострадают.

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

Готовой кнопки «перенести все варианты в другую базу» в типовых конфигурациях нет. Выбор способа зависит от объёма.

СпособКогда подходитРиски
Пересохранить вручную1–5 вариантовДолго, легко забыть отбор
Через файл настроекОдин отчёт, разные базыНужна обработка или код
Выгрузка справочника в XMLДесятки вариантовСсылки на пользователей и отчёты должны совпасть
Перенос базы целиком (.dt, копия)Новая база — копия старойПереносит вообще всё

Перенос через выгрузку справочника

Для массового переноса подходит универсальная обработка выгрузки и загрузки данных XML. Порядок такой:

  1. В исходной базе откройте обработку и отметьте к выгрузке справочник «Варианты отчетов».
  2. Отберите нужные элементы — например, по автору или отчёту.
  3. Выгрузите в файл XML.
  4. Сделайте резервную копию базы -приёмника.
  5. Загрузите файл в базу-приёмник той же конфигурации и близкого релиза.
  6. Откройте отчёт под нужным пользователем и проверьте, что вариант появился.

Главная ловушка — ссылки. Вариант ссылается на автора (элемент справочника «Пользователи») и на отчёт. Если пользователи в базах созданы независимо, у них разные идентификаторы, и вариант «повиснет» на несуществующем авторе. Тогда ставьте признак доступности «всем пользователям» до выгрузки или после загрузки переназначайте автора.

Перенос одного варианта кодом

Разработчику удобно выгрузить настройки компоновки в XML-файл и загрузить их в другой базе. Настройки компоновки данных сериализуются стандартно:

// Выгрузка настроек открытого отчёта в файл
Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\Temp\variant.xml");
СериализаторXDTO.ЗаписатьXML(Запись, Настройки);
Запись.Закрыть();

// Загрузка в другой базе
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл("C:\Temp\variant.xml");
Настройки = СериализаторXDTO.ПрочитатьXML(Чтение);
Чтение.Закрыть();
Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

Код выполняется на сервере в контексте объекта отчёта. После загрузки сохраните вариант обычной командой в форме отчёта — тогда он попадёт в хранилище вариантов этой базы.

Внутри одной базы

Между пользователями одной базы переносить проще. Откройте Настройки пользователей, выберите сотрудника-источника, закладку «Настройки отчетов» и команду копирования другим пользователям. Сам вариант при этом достаточно сделать доступным всем.

Варианты отчетов в 1С:Фреш и при работе через 1С:Линк

1С:Фреш и другие сервисы с разделением данных

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

Что из этого следует на практике:

  • ☁️ доступа к SQL и к файлам у абонента нет — работать с вариантами можно только из интерфейса программы;
  • 📦 выгрузка приложения из сервиса (архив данных) переносит и справочник «Варианты отчетов»;
  • 🔄 при переезде из облака в локальную базу через такую выгрузку варианты обычно сохраняются, а личные настройки пользователей стоит проверить отдельно.

1С:Линк

1С:Линк — не облако, а способ безопасно подключиться через интернет к базе, которая работает на вашем компьютере или сервере. Хранение вариантов здесь ничем не отличается от обычной файловой или серверной базы: всё лежит в ней самой. Сотрудник, подключившийся через Линк, видит те же варианты, что и в офисе.

Пропал сохранённый вариант: как найти и вернуть

Порядок проверок — от безобидных к тяжёлым.

Диагностика: выберите симптом

Восстановление из резервной копии

Если вариант удалён окончательно (после удаления помеченных объектов), вернуть его можно только из копии. Не разворачивайте копию поверх рабочей базы — потеряете все новые документы.

  1. Разверните резервную копию в отдельную базу (файловую или на сервере).
  2. Найдите в ней нужный вариант в справочнике «Варианты отчетов».
  3. Перенесите его в рабочую базу выгрузкой XML или кодом из раздела про перенос.
  4. Проверьте автора и доступность варианта в рабочей базе.

Порядок в вариантах: чтобы отчёты открывались быстро

Хранилище вариантов редко тормозит само по себе. Проблемы начинаются, когда за годы набираются сотни вариантов и тяжёлые личные настройки.

  • 🗂️ Чистите дубли. «Продажи», «Продажи 2», «Продажи новый» — классика. Раз в год просматривайте справочник с группировкой по отчёту и помечайте ненужное.
  • 👥 Делайте общие варианты. Один вариант «для всех» вместо десяти личных копий проще поддерживать.
  • 🧾 Удаляйте настройки уволенных. Через «Настройки пользователей» очистите их настройки отчётов — список у администратора станет короче.
  • ⏱️ Не храните в варианте огромный период. Если отчёт по умолчанию открывается за пять лет, он и формироваться будет долго. Ставьте в варианте короткий период, а длинный выбирайте вручную.
  • 🔍 Ищите причину медленного открытия в самом отчёте. Обычно тормозит запрос с тяжёлыми отборами, а не загрузка варианта.

Удаление помеченных объектов и очистка настроек пользователей необратимы. Перед массовой чисткой сделайте резервную копию базы.

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

Можно ли найти файл с вариантами отчетов на диске?
Нет. Варианты хранятся в базе: в файловом режиме — внутри 1Cv8.1CD, в серверном — в таблицах СУБД. Отдельного файла нет.
Удалятся ли варианты при переустановке платформы 1С?
Нет. Платформа и кеш на компьютере не содержат вариантов. После переустановки подключитесь к той же базе — всё на месте.
Видит ли администратор чужие личные варианты?
В справочнике «Варианты отчетов» администратор с полными правами видит все варианты, включая доступные только автору. Обычный пользователь чужие личные варианты не видит.
Переносятся ли варианты при обновлении конфигурации?
Да, обновление не трогает данные справочника и хранилищ настроек. Исключение — отчёты, которые разработчик удалил или заменил: их варианты могут перестать открываться.
Как узнать, в какую таблицу SQL пишутся варианты именно в моей базе?
Посмотрите в Конфигураторе свойство корня «Хранилище вариантов отчетов». Пусто — таблица _RepVarSettings; указан объект — смотрите его модуль, а имя таблицы справочника дает ПолучитьСтруктуруХраненияБазыДанных().