Варианты и настройки отчетов 1С 8.3: таблицы базы, хранилища, перенос и восстановление
Содержание
Пользовательские настройки отчетов в 1С 8.3 хранятся в самой информационной базе, а не на компьютере пользователя. В файловой базе это внутренние таблицы файла 1Cv8.1CD, в клиент-серверной — служебные таблицы СУБД: _RepSettings для пользовательских настроек и _RepVarSettings для вариантов отчетов. В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) сохранённые варианты дополнительно лежат в справочнике «Варианты отчетов».
Отсюда практический вывод: переустановка платформы, смена компьютера или очистка кэша настройки отчетов не трогают. А вот откат базы из старой копии или загрузка чужого .dt — затирают.
Тема общая для платформы 8.3 и управляемых форм, поэтому механизм одинаков во всех конфигурациях. Отличаются только инструменты БСП, через которые с настройками работает администратор.
Из чего состоят настройки отчета: варианты и пользовательские настройки
Отчет на системе компоновки данных (СКД) держит три слоя настроек. Путаница между ними — главная причина, почему «настройка пропала».
| Слой | Что в нём | Кто меняет | Хранилище платформы |
|---|---|---|---|
| Вариант отчета | Группировки, поля, отборы, оформление — «каркас» | Разработчик или пользователь через «Сохранить вариант» | ХранилищеВариантовОтчетов |
| Пользовательские настройки | Период, организация, быстрые отборы поверх варианта | Пользователь в шапке отчета | ХранилищеПользовательскихНастроекОтчетов |
| Системные настройки формы | Размер и положение окна, последний открытый вариант | Платформа автоматически | ХранилищеСистемныхНастроек |
Предопределённые варианты зашиты в макет схемы компоновки. Их нельзя «удалить» штатно — только скрыть. Всё, что пользователь сохранил сам, уходит в хранилища.
Каждая запись в хранилище адресуется тремя ключами:
- 🔑 ключ объекта — строка вида
Отчет.ОборотноСальдоваяВедомость; - 🔑 ключ настроек — имя варианта или сохранённой настройки;
- 👤 имя пользователя — чьи это настройки.
Значит, у двух бухгалтеров могут быть одноимённые варианты одного отчета, и они не мешают друг другу.
Кто решает, куда писать
В свойствах корня конфигурации есть группа хранилищ: «Хранилище общих настроек», «Хранилище пользовательских настроек отчетов», «Хранилище вариантов отчетов», «Хранилище настроек данных форм». Если свойство пустое, работает стандартное хранилище платформы. Если заполнено — разработчик переопределил его своим объектом «Хранилище настроек», и данные пишутся туда, куда решил код.
Проверить у себя: в Конфигураторе Конфигурация → Открыть конфигурацию, правый клик по корню дерева → Свойства, найдите эти четыре поля. Системные настройки переопределить нельзя — они всегда в стандартном хранилище.
Таблицы базы данных, где 1С хранит настройки отчетов
Стандартные хранилища платформа держит в служебных таблицах. В клиент-серверном варианте их видно в SQL Server или PostgreSQL рядом с таблицами данных.
| Таблица СУБД | Хранилище | Что внутри |
|---|---|---|
_RepVarSettings | Хранилище вариантов отчетов | Пользовательские варианты (если не переопределено БСП) |
_RepSettings | Хранилище пользовательских настроек отчетов | Период, отборы и прочее поверх варианта |
_CommonSettings | Хранилище общих настроек | Произвольные настройки, в том числе отчетные из кода |
_SystemSettings | Хранилище системных настроек | Состояние окон, последний выбранный вариант |
_FrmDtSettings | Хранилище настроек данных форм | Сохранённые значения реквизитов форм |
Основные колонки у них общие: _UserId (пользователь), _ObjectKey (ключ объекта), _SettingsKey (ключ настройки), _SettingsPresentation (представление) и _SettingsData — сами данные в двоичном виде.
Найти настройки конкретного отчета для диагностики можно запросом только на чтение:
-- MS SQL Server, только чтение
SELECT _UserId, _SettingsKey, _SettingsPresentation, DATALENGTH(_SettingsData) AS size_bytes
FROM dbo._RepSettings
WHERE _ObjectKey LIKE N'%ОборотноСальдоваяВедомость%';
Не меняйте и не удаляйте строки этих таблиц напрямую в СУБД. Платформа кэширует настройки и не ожидает правок мимо себя. Кроме того, прямое изменение базы средствами СУБД не поддерживается фирмой 1С — при проблемах это первый вопрос поддержки.
В файловой базе те же таблицы находятся внутри 1Cv8.1CD. Отдельных файлов настроек рядом с базой нет, поэтому скопировать «только настройки» файлом нельзя.
Справочник «Варианты отчетов» в конфигурациях на БСП
Библиотека стандартных подсистем переопределяет хранилище вариантов. В БП 3.0, ЗУП 3.1, УТ 11 и других типовых пользовательский вариант — это элемент справочника «Варианты отчетов», а схема настроек лежит в его реквизите типа ХранилищеЗначения. У элемента есть автор, признак доступности автору или всем, размещение в разделах и пометка удаления.
Предопределённые варианты из поставки описаны отдельно — в справочнике предопределённых вариантов. Их правят разработчики, а не пользователи.
Как открыть список вариантов:
Администрирование → Печатные формы, отчеты и обработки→ ссылка «Варианты отчетов».- Если ссылки нет — включите
Сервис и настройки → Параметры → Отображать команду «Все функции», затемВсе функции → Справочники → Варианты отчетов.
Здесь видно, кто создал вариант, когда и для какого отчета. Это самый удобный способ найти «пропавший» вариант коллеги.
Локальные кэши и файлы на компьютере: что там есть, а чего нет
В 8.3 на рабочем месте пользователя лежат каталоги в %APPDATA%\1C\1cv8\ и %LOCALAPPDATA%\1C\1cv8\. В подпапках с идентификаторами баз — кэш конфигурации, метаданных и часть клиентских параметров. Там же файлы списка баз ibases.v8i и параметров запуска 1cv8strt.pfl.
Настроек отчетов там нет:
- ❌ вариантов отчетов в локальных папках нет — они в базе;
- ❌ в реестре Windows 1С 8.3 настройки отчетов не держит;
- ✅ после входа с другого компьютера или из веб-клиента пользователь видит свои варианты;
- ✅ запуск с параметром
/ClearCacheили удаление кэш-папок варианты не стирает.
Если после очистки кэша «слетела» только раскладка окон или последний открытый вариант — это нормально. Сами варианты на месте, выберите их через Еще → Выбрать вариант.
Удалять кэш-папки нужно при закрытой 1С у этого пользователя. Иначе файлы заняты, а открытый сеанс может завершиться с ошибкой.
Исключение — неуправляемые обычные формы старых конфигураций. Там разработчики иногда сохраняли настройки в файлы на диске своим кодом. Это решение конкретной доработки, а не платформы.
Формат данных: как 1С сериализует настройки
В колонке _SettingsData и в реквизите справочника БСП лежит сериализованный объект платформы, обёрнутый в ХранилищеЗначения со сжатием. Для отчетов на СКД это обычно НастройкиКомпоновкиДанных (вариант) или ПользовательскиеНастройкиКомпоновкиДанных (пользовательская часть).
Что из этого следует на практике:
- 📦 прочитать данные можно только средствами 1С —
ХранилищеЗначения.Получить()или методами хранилища; - 🔄 объекты настроек компоновки поддерживают XDTO-сериализацию, поэтому их можно выгрузить в XML и загрузить обратно;
- 🧩 настройка ссылается на поля схемы по именам: если в новом релизе поле переименовали, оно в варианте станет недоступным и подсветится.
Для доступа из кода у платформы есть свойства глобального контекста: ХранилищеВариантовОтчетов, ХранилищеПользовательскихНастроекОтчетов, ХранилищеОбщихНастроек, ХранилищеСистемныхНастроек. У стандартного хранилища методы Сохранить, Загрузить, Удалить и ПолучитьСписок.
_RepSettings или переопределённое хранилище. Возвращаются при следующем открытии того же варианта._RepVarSettings и _RepSettings; заполненные — объект хранилища, указанный разработчиком._SystemSettings. Сам вариант не тронут — выберите его заново.Перенос настроек отчетов между базами и пользователями
Способ зависит от задачи: скопировать коллеге внутри одной базы, переехать всей базой или перенести выборочно.
| Способ | Когда подходит | Что переносит | Риски |
|---|---|---|---|
| Обработка «Настройки пользователей» БСП | Внутри одной базы, другому пользователю | Варианты и настройки отчетов, внешний вид | Перезаписывает настройки получателя |
| Общий вариант в справочнике | Нужно дать вариант всем | Один вариант | Видят все, кто имеет доступ к отчету |
Выгрузка .dt | Перенос базы целиком | Всё, включая все хранилища | Затирает базу-приёмник полностью |
| Выгрузка в XML кодом | Выборочно в другую базу | Конкретные варианты | Нужна внешняя обработка |
Внутри одной базы: другому пользователю
В типовых на БСП:
- Откройте
Администрирование → Настройки пользователей и прав → Настройки пользователей. - Выберите пользователя-источника.
- На вкладке «Настройки отчетов» отметьте нужные отчеты.
- Нажмите команду копирования и укажите получателей.
Альтернатива проще: автор открывает вариант в справочнике «Варианты отчетов» и делает его доступным всем пользователям. Тогда копировать ничего не нужно.
Между разными базами
Выгрузка .dt через Конфигуратор → Администрирование → Выгрузить информационную базу содержит служебные таблицы настроек. Но загрузка .dt заменяет базу целиком — для переноса пары вариантов это не вариант.
Выборочно переносят внешней обработкой. На серверной стороне она читает настройки из хранилища и пишет в XML:
&НаСервере
Процедура ВыгрузитьНастройкиОтчета(КлючОбъекта, ИмяФайла)
// КлючОбъекта, например: "Отчет.ОборотноСальдоваяВедомость"
Список = ХранилищеПользовательскихНастроекОтчетов.ПолучитьСписок(КлючОбъекта, ИмяПользователя());
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл(ИмяФайла);
Запись.ЗаписатьНачалоЭлемента("Настройки");
Для Каждого Элемент Из Список Цикл
Настройки = ХранилищеПользовательскихНастроекОтчетов.Загрузить(КлючОбъекта, Элемент.Значение, , ИмяПользователя());
Если Настройки = Неопределено Тогда
Продолжить;
КонецЕсли;
Запись.ЗаписатьНачалоЭлемента("Элемент");
Запись.ЗаписатьАтрибут("Ключ", Строка(Элемент.Значение));
СериализаторXDTO.ЗаписатьXML(Запись, Настройки, НазначениеТипаXML.Явное);
Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();
КонецПроцедуры
Обратная операция в базе-приёмнике: прочитать XML через ЧтениеXML, получить объект СериализаторXDTO.ПрочитатьXML(Чтение) и записать методом Сохранить(КлючОбъекта, Ключ, Настройки, , ИмяПользователя).
Код выполняется на сервере. В клиент-серверной базе файл появится на сервере 1С, а не на вашем компьютере — укажите каталог, к которому у службы есть доступ. Для вариантов из справочника БСП читать нужно реквизит элемента справочника, а не платформенное хранилище.
Перенос сработает, только если отчет в приёмнике той же структуры. Варианты от БП 3.0 в УТ 11 бессмысленны: имена полей схем разные.
Восстановление удалённых или повреждённых настроек отчетов
Вариант удалён в типовой на БСП
Удаление варианта сначала ставит пометку. Пока регламентное или ручное удаление помеченных объектов не прошло, вариант возвращается:
- Откройте список «Варианты отчетов» (путь выше).
- Включите показ помеченных на удаление, если они скрыты.
- Найдите вариант по отчету и автору, снимите пометку.
Если помеченные уже удалили — остаётся резервная копия.
Восстановление из резервной копии
Порядок безопасный, рабочую базу не трогает:
- Разверните копию в отдельную базу: загрузите
.dtв пустую базу или восстановите бэкап СУБД под новым именем. - Откройте копию и найдите нужный вариант.
- Выгрузите его в XML обработкой из раздела выше.
- Загрузите XML в рабочую базу.
Не загружайте старый .dt поверх рабочей базы ради одного варианта отчета. Пропадут все документы, введённые после даты копии.
Отчет не открывается или падает из-за настроек
Битая или устаревшая настройка проявляется так: отчет открывается с ошибкой про поле, которого нет в схеме, или зависает при формировании. Часто это бывает после обновления конфигурации, когда поле из отбора убрали.
Что делать по возрастанию радикальности:
- В форме отчета выполните
Еще → Стандартные настройки— сбрасывает пользовательскую часть к варианту. - Выберите другой вариант через
Еще → Выбрать варианти сохраните заново нужный. - В обработке «Настройки пользователей» на вкладке «Настройки отчетов» очистите настройки этого отчета для пользователя.
Очистка настроек удаляет их без корзины. Перед массовой очисткой сохраните варианты в XML, если они представляют ценность.
Если не помогло
Ошибка повторяется у всех пользователей и на стандартном варианте — проблема не в настройках, а в самом отчете или данных. Проверьте, открывается ли этот же отчет в демо-базе того же релиза. Если и там падает — это ошибка релиза, её исправляют обновлением.
Если отчет внешний или доработанный, сравните схему компоновки с поставочной: при доработке часто переименовывают поля, на которые ссылаются сохранённые варианты.
Частые вопросы о хранении настроек отчетов
Удалит ли обновление конфигурации пользовательские варианты отчетов?
Попадают ли настройки отчетов в выгрузку .dt?
.dt содержит все таблицы базы, включая служебные таблицы хранилищ. После загрузки в другую базу пользователи увидят свои варианты, если совпадают имена пользователей.