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

Отчеты и Аналитика · 13 мин

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

Где хранятся настройки отчетов в 1С 8.3: хранилище пользовательских настроек, варианты отчетов, файлы XML, способы найти, перенести и очистить настройки СКД.

Пользовательские настройки отчетов в 1С 8.3 сохраняются не внутри самого отчета, а в отдельном системном хранилище — стандартном хранилище настроек информационной базы. Физически это таблицы базы данных, в которых платформа фиксирует, какие отборы, группировки и периоды выбрал конкретный пользователь для конкретного отчета. Именно поэтому после изменения отбора при следующем открытии отчет «помнит» прошлое состояние.

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

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

Как устроено хранение настроек отчетов в платформе 8.3

Платформа 1С:Предприятие 8.3 использует механизм системных хранилищ настроек. Для отчетов задействованы два основных: хранилище вариантов отчетов и хранилище пользовательских настроек отчетов. Оба по умолчанию реализованы как стандартные хранилища — то есть данные записываются в служебные таблицы самой информационной базы, а не в отдельные файлы.

Ключевая особенность: настройки привязаны к трем параметрам одновременно — к объекту (конкретному отчету и его варианту), к пользователю информационной базы и к ключу настройки. Поэтому два бухгалтера, работающие с одним отчетом «Оборотно-сальдовая ведомость», видят каждый свои отборы и периоды. Это нормальное поведение, а не ошибка.

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

Где искать настройки конкретного отчета через интерфейс

Самый простой способ увидеть, что именно сохранено для отчета, — открыть сам отчет и перейти в меню управления настройками. В форме отчета на СКД доступны команды «Ещё → Сохранить настройки», «Выбрать настройки» и «Установить стандартные настройки». Список сохраненных наборов показывает все пользовательские настройки текущего пользователя по этому отчету.

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

Если нужно увидеть настройки всех пользователей сразу, штатного интерфейса в типовых конфигурациях обычно нет — потребуется либо специальная обработка, либо программное обращение к хранилищу. Некоторые конфигурации включают административную обработку очистки настроек в разделе «Администрирование → Обслуживание».

Как найти и просмотреть настройки программно

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

Типовой сценарий диагностики выглядит так: определить ключ объекта отчета (обычно «Отчет.ИмяОтчета/ИмяВарианта» или полное имя для внешнего отчета), получить список настроек по этому ключу, при необходимости выгрузить или удалить конкретные записи. Имя пользователя в методах указывается как имя пользователя информационной базы, а не представление из справочника пользователей.

bsl
СписокНастроек = ХранилищеПользовательскихНастроекОтчетов.ПолучитьСписок("Отчет.ОборотноСальдоваяВедомость/Основной", "ИвановИИ");
Для Каждого Элемент Из СписокНастроек Цикл
    Сообщить(Элемент.Значение);
КонецЦикла;

Для разовых задач удобнее готовые внешние обработки «Управление настройками» или «Редактор хранилища настроек», которые показывают дерево всех сохраненных настроек базы по пользователям и объектам. Они позволяют скопировать настройку другому пользователю или удалить устаревшие записи без программирования.

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

Внешние отчеты (файлы .erf и .epf) — отдельный случай. Сам файл содержит только макет СКД и предопределенные варианты, заложенные разработчиком. Пользовательские настройки, сделанные при работе с внешним отчетом, сохраняются в том же системном хранилище базы, но ключ объекта формируется от полного имени файла или от имени, под которым отчет зарегистрирован в справочнике «Дополнительные отчеты и обработки».

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

Чтобы настройки внешнего отчета были переносимыми, их нужно сохранять в файл XML вручную: в форме настроек отчета на СКД есть возможность выгрузить настройки, а разработчик может загрузить их программно через СериализаторXDTO или методы компоновщика настроек.

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

Перенос внутри одной базы между пользователями выполняется программно: настройка загружается из хранилища с указанием имени исходного пользователя и сохраняется методом Сохранить с именем целевого пользователя. Это стандартный прием при увольнении сотрудника или при вводе нового работника взамен прежнего.

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

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

Порядок переноса настройки другому пользователю
  1. 1
    Определите ключ объекта отчета и имя исходного пользователя ИБ
  2. 2
    Загрузите настройку через ХранилищеПользовательскихНастроекОтчетов.Загрузить с именем исходного пользователя
  3. 3
    Сохраните её методом Сохранить с именем целевого пользователя
  4. 4
    Войдите под целевым пользователем и откройте отчет
  5. 5
    Проверьте, что отборы и группировки применились

Почему настройки пропадают и как это исправить

Наиболее частая причина «пропажи» настроек — смена ключа объекта. Она происходит при переименовании отчета в конфигурации, изменении ключа варианта, замене внешнего отчета файлом с другим именем. Старые записи в хранилище при этом остаются, но платформа их больше не находит, потому что ищет по новому ключу.

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

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

Типичные ошибки
01
Поиск настроек в файле отчета — пользовательские настройки хранятся в базе, а не в .erf
02
Удаление пользователя ИБ без предварительного переноса его настроек — записи хранилища теряются вместе с пользователем
03
Прямая правка служебных таблиц в СУБД — приводит к повреждению сериализованных данных
04
Копирование файловой базы с переименованием без проверки — настройки переносятся, но внешние отчеты могут получить новые ключи

Как очистить настройки отчетов безопасно

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

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

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

Проверка результата и диагностика

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

Если отчет открывается «пустым» или с чужими параметрами, диагностируйте по цепочке: правильный ли пользователь, тот ли вариант отчета выбран, не изменился ли ключ объекта после обновления. Список фактически сохраненных настроек по ключу объекта покажет, есть ли вообще записи в хранилище и кому они принадлежат.

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

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

Открытие отчета после переноса
Норма

Применяются перенесенные отборы и группировки

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

Отчет открывается со стандартными настройками — ключ объекта не совпал

Повторное открытие после изменения отбора
Норма

Последний отбор восстанавливается

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

Отбор сбрасывается — настройки не сохраняются, проверить права и хранилище

Список настроек по ключу объекта
Норма

Есть записи с именем нужного пользователя

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

Список пуст — настройки удалены или пользователь переименован

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

Итог

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

Настройки отчетов 1С 8.3 хранятся в системном хранилище информационной базы с привязкой к пользователю, отчету и варианту, а не в файле отчета. Управлять ими можно через интерфейс отчета, справочник «Варианты отчетов» в типовых конфигурациях или программно через ХранилищеПользовательскихНастроекОтчетов. Перед массовой очисткой всегда делайте резервную копию.

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

Почему у двух пользователей один и тот же отчет выглядит по-разному?

Потому что настройки в 1С 8.3 персональны: платформа сохраняет для каждого пользователя ИБ собственный набор отборов, периодов и группировок. Чтобы у пользователей был одинаковый вид, нужно либо скопировать настройку программно, либо дать обоим общий сохраненный вариант отчета и запретить его изменение.

Переносятся ли настройки отчетов при выгрузке базы в dt и загрузке в новую?

Да. Системные хранилища настроек — это таблицы информационной базы, они полностью попадают в файл выгрузки. После загрузки dt в новую базу все пользовательские настройки отчетов сохраняются, если имена пользователей и ключи отчетов не изменились.

Можно ли восстановить настройки отчета после их удаления?

Штатных средств восстановления нет: удаление из хранилища необратимо. Восстановить настройки можно только из резервной копии базы, сделанной до удаления, — например, загрузив копию в отдельную базу и перенеся нужные записи программно.

Где хранятся настройки, если отчет открывается через веб-клиент?

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

Как сбросить отчет к типовому виду, если пользователь «испортил» вариант?

В форме отчета откройте «Ещё → Установить стандартные настройки» — это вернет настройки компоновки к состоянию, заданному в варианте. Если испорчен сам вариант в типовой конфигурации, администратор может восстановить его из поставки конфигурации или удалить пользовательский вариант, после чего отчет вернется к предопределенному виду.

Влияет ли обновление конфигурации на сохраненные настройки отчетов?

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