Варианты и настройки отчетов 1С 8.3: таблицы базы, хранилища, перенос и восстановление

· 9 мин

Содержание

Пользовательские настройки отчетов в 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 и других типовых пользовательский вариант — это элемент справочника «Варианты отчетов», а схема настроек лежит в его реквизите типа ХранилищеЗначения. У элемента есть автор, признак доступности автору или всем, размещение в разделах и пометка удаления.

Предопределённые варианты из поставки описаны отдельно — в справочнике предопределённых вариантов. Их правят разработчики, а не пользователи.

Как открыть список вариантов:

  1. Администрирование → Печатные формы, отчеты и обработки → ссылка «Варианты отчетов».
  2. Если ссылки нет — включите Сервис и настройки → Параметры → Отображать команду «Все функции», затем Все функции → Справочники → Варианты отчетов.

Здесь видно, кто создал вариант, когда и для какого отчета. Это самый удобный способ найти «пропавший» вариант коллеги.

Локальные кэши и файлы на компьютере: что там есть, а чего нет

В 8.3 на рабочем месте пользователя лежат каталоги в %APPDATA%\1C\1cv8\ и %LOCALAPPDATA%\1C\1cv8\. В подпапках с идентификаторами баз — кэш конфигурации, метаданных и часть клиентских параметров. Там же файлы списка баз ibases.v8i и параметров запуска 1cv8strt.pfl.

Настроек отчетов там нет:

  • ❌ вариантов отчетов в локальных папках нет — они в базе;
  • ❌ в реестре Windows 1С 8.3 настройки отчетов не держит;
  • ✅ после входа с другого компьютера или из веб-клиента пользователь видит свои варианты;
  • ✅ запуск с параметром /ClearCache или удаление кэш-папок варианты не стирает.

Если после очистки кэша «слетела» только раскладка окон или последний открытый вариант — это нормально. Сами варианты на месте, выберите их через Еще → Выбрать вариант.

Удалять кэш-папки нужно при закрытой 1С у этого пользователя. Иначе файлы заняты, а открытый сеанс может завершиться с ошибкой.

Исключение — неуправляемые обычные формы старых конфигураций. Там разработчики иногда сохраняли настройки в файлы на диске своим кодом. Это решение конкретной доработки, а не платформы.

Формат данных: как 1С сериализует настройки

В колонке _SettingsData и в реквизите справочника БСП лежит сериализованный объект платформы, обёрнутый в ХранилищеЗначения со сжатием. Для отчетов на СКД это обычно НастройкиКомпоновкиДанных (вариант) или ПользовательскиеНастройкиКомпоновкиДанных (пользовательская часть).

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

  • 📦 прочитать данные можно только средствами 1С — ХранилищеЗначения.Получить() или методами хранилища;
  • 🔄 объекты настроек компоновки поддерживают XDTO-сериализацию, поэтому их можно выгрузить в XML и загрузить обратно;
  • 🧩 настройка ссылается на поля схемы по именам: если в новом релизе поле переименовали, оно в варианте станет недоступным и подсветится.

Для доступа из кода у платформы есть свойства глобального контекста: ХранилищеВариантовОтчетов, ХранилищеПользовательскихНастроекОтчетов, ХранилищеОбщихНастроек, ХранилищеСистемныхНастроек. У стандартного хранилища методы Сохранить, Загрузить, Удалить и ПолучитьСписок.

Где искать вашу настройку отчета?

Перенос настроек отчетов между базами и пользователями

Способ зависит от задачи: скопировать коллеге внутри одной базы, переехать всей базой или перенести выборочно.

СпособКогда подходитЧто переноситРиски
Обработка «Настройки пользователей» БСПВнутри одной базы, другому пользователюВарианты и настройки отчетов, внешний видПерезаписывает настройки получателя
Общий вариант в справочникеНужно дать вариант всемОдин вариантВидят все, кто имеет доступ к отчету
Выгрузка .dtПеренос базы целикомВсё, включая все хранилищаЗатирает базу-приёмник полностью
Выгрузка в XML кодомВыборочно в другую базуКонкретные вариантыНужна внешняя обработка

Внутри одной базы: другому пользователю

В типовых на БСП:

  1. Откройте Администрирование → Настройки пользователей и прав → Настройки пользователей.
  2. Выберите пользователя-источника.
  3. На вкладке «Настройки отчетов» отметьте нужные отчеты.
  4. Нажмите команду копирования и укажите получателей.

Альтернатива проще: автор открывает вариант в справочнике «Варианты отчетов» и делает его доступным всем пользователям. Тогда копировать ничего не нужно.

Между разными базами

Выгрузка .dt через Конфигуратор → Администрирование → Выгрузить информационную базу содержит служебные таблицы настроек. Но загрузка .dt заменяет базу целиком — для переноса пары вариантов это не вариант.

Выборочно переносят внешней обработкой. На серверной стороне она читает настройки из хранилища и пишет в XML:

&НаСервере
Процедура ВыгрузитьНастройкиОтчета(КлючОбъекта, ИмяФайла)
    // КлючОбъекта, например: "Отчет.ОборотноСальдоваяВедомость"
    Список = ХранилищеПользовательскихНастроекОтчетов.ПолучитьСписок(КлючОбъекта, ИмяПользователя());
    Запись = Новый ЗаписьXML;
    Запись.ОткрытьФайл(ИмяФайла);
    Запись.ЗаписатьНачалоЭлемента("Настройки");
    Для Каждого Элемент Из Список Цикл
        Настройки = ХранилищеПользовательскихНастроекОтчетов.Загрузить(КлючОбъекта, Элемент.Значение, , ИмяПользователя());
        Если Настройки = Неопределено Тогда
            Продолжить;
        КонецЕсли;
        Запись.ЗаписатьНачалоЭлемента("Элемент");
        Запись.ЗаписатьАтрибут("Ключ", Строка(Элемент.Значение));
        СериализаторXDTO.ЗаписатьXML(Запись, Настройки, НазначениеТипаXML.Явное);
        Запись.ЗаписатьКонецЭлемента();
    КонецЦикла;
    Запись.ЗаписатьКонецЭлемента();
    Запись.Закрыть();
КонецПроцедуры

Обратная операция в базе-приёмнике: прочитать XML через ЧтениеXML, получить объект СериализаторXDTO.ПрочитатьXML(Чтение) и записать методом Сохранить(КлючОбъекта, Ключ, Настройки, , ИмяПользователя).

Код выполняется на сервере. В клиент-серверной базе файл появится на сервере 1С, а не на вашем компьютере — укажите каталог, к которому у службы есть доступ. Для вариантов из справочника БСП читать нужно реквизит элемента справочника, а не платформенное хранилище.

Перенос сработает, только если отчет в приёмнике той же структуры. Варианты от БП 3.0 в УТ 11 бессмысленны: имена полей схем разные.

Восстановление удалённых или повреждённых настроек отчетов

Вариант удалён в типовой на БСП

Удаление варианта сначала ставит пометку. Пока регламентное или ручное удаление помеченных объектов не прошло, вариант возвращается:

  1. Откройте список «Варианты отчетов» (путь выше).
  2. Включите показ помеченных на удаление, если они скрыты.
  3. Найдите вариант по отчету и автору, снимите пометку.

Если помеченные уже удалили — остаётся резервная копия.

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

Порядок безопасный, рабочую базу не трогает:

  1. Разверните копию в отдельную базу: загрузите .dt в пустую базу или восстановите бэкап СУБД под новым именем.
  2. Откройте копию и найдите нужный вариант.
  3. Выгрузите его в XML обработкой из раздела выше.
  4. Загрузите XML в рабочую базу.

Не загружайте старый .dt поверх рабочей базы ради одного варианта отчета. Пропадут все документы, введённые после даты копии.

Отчет не открывается или падает из-за настроек

Битая или устаревшая настройка проявляется так: отчет открывается с ошибкой про поле, которого нет в схеме, или зависает при формировании. Часто это бывает после обновления конфигурации, когда поле из отбора убрали.

Что делать по возрастанию радикальности:

  1. В форме отчета выполните Еще → Стандартные настройки — сбрасывает пользовательскую часть к варианту.
  2. Выберите другой вариант через Еще → Выбрать вариант и сохраните заново нужный.
  3. В обработке «Настройки пользователей» на вкладке «Настройки отчетов» очистите настройки этого отчета для пользователя.

Очистка настроек удаляет их без корзины. Перед массовой очисткой сохраните варианты в XML, если они представляют ценность.

Если не помогло

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

Если отчет внешний или доработанный, сравните схему компоновки с поставочной: при доработке часто переименовывают поля, на которые ссылаются сохранённые варианты.

Частые вопросы о хранении настроек отчетов

Удалит ли обновление конфигурации пользовательские варианты отчетов?
Нет. Обновление меняет метаданные, а таблицы хранилищ и справочник вариантов остаются. Поля, которые разработчик убрал из схемы, в старых вариантах станут недоступны.
Попадают ли настройки отчетов в выгрузку .dt?
Да. Файл .dt содержит все таблицы базы, включая служебные таблицы хранилищ. После загрузки в другую базу пользователи увидят свои варианты, если совпадают имена пользователей.
Сохраняются ли настройки, если сменить компьютер или работать через браузер?
Да. Настройки хранятся в информационной базе и привязаны к пользователю 1С, а не к компьютеру. Веб-клиент и тонкий клиент читают одни и те же данные.
Почему администратор не видит мой вариант отчета?
В типовых на БСП вариант может быть доступен только автору. Администратор найдёт его в списке «Варианты отчетов», а в самом отчете он появится после того, как автор откроет доступ всем.
Можно ли сделать резервную копию только настроек отчетов?
Штатной кнопки для этого нет. Используйте выгрузку в XML внешней обработкой или регулярную полную копию базы, из которой при необходимости достаются нужные варианты.