Пользователи и администраторы системы 1С:Предприятие 8.3 часто сталкиваются с необходимостью переноса или восстановления сохраненных вариантов отчетов. В процессе работы аналитики создают сложные макеты, настраивают отборы и группировки, которые затем сохраняют для повторного использования. Однако при переносе баз или сбоев оборудования возникает закономерный вопрос о физической локации этих данных. Понимание того, где именно обосновались пользовательские настройки, критически важно для системных администраторов и разработчиков конфигураций.
Хранение информации в платформе 1С 8.3 распределено по нескольким уровням в зависимости от типа отчета и способа его настройки. Стандартные отчеты, построенные на системе компоновки данных (СКД), используют специфические служебные таблицы, тогда как пользовательские формы могут хранить данные иначе. Неправильное представление о структуре хранения может привести к потере ценных аналитических наработок или ошибкам при миграции данных между серверами. В этой статье мы детально разберем архитектуру хранения настроек.
Важно сразу отметить, что настройки могут находиться как внутри самой информационной базы, так и во внешних файлах на локальном диске пользователя. Разделение происходит в зависимости от версии платформы и конкретных настроек безопасности, заданных администратором. Для глубокого понимания процессов необходимо рассмотреть как табличную часть базы данных SQL или файлового хранилища, так и файловую систему клиентских рабочих мест.
Архитектура хранения в таблицах информационной базы
Основной массив данных о пользовательских настройках отчетов, созданных непосредственно в интерфейсе программы, resides в специальных служебных таблицах внутри информационной базы. Для конфигураций на базе БСП (Библиотека Стандартных Подсистем) используется унифицированный механизм. Платформа не хранит настройки в виде отдельных колонок в таблицах документов, а выделяет для этого специализированные регистры сведений или таблицы значений.
Ключевой таблицей, где физически лежат данные, является СистемаКомпоновкиДанныхНастройкиОтчетов или аналогичная структура, зависящая от версии конфигурации. В файловых базах эти данные упакованы внутри единого файла 1Cv8.1CD, а в клиент-серверном варианте — в соответствующих таблицах СУБД (Microsoft SQL Server, PostgreSQL). Каждая запись в этой таблице привязана к уникальному идентификатору пользователя и конкретному объекту метаданных.
Структура хранения позволяет сохранять не только визуальные параметры, но и логику отбора данных. Это означает, что при восстановлении настройки из базы пользователь получает полностью рабочий инструмент анализа. Однако стоит помнить, что объем этих таблиц может расти экспоненциально, если пользователи активно создают новые варианты без удаления старых.
Регулярно проводите очистку таблицы настроек отчетов от устаревших записей пользователей, которые уже не работают в системе, чтобы оптимизировать размер базы данных.
Доступ к этим данным напрямую через SQL-запросы возможен, но не рекомендуется для изменения без глубокого понимания внутренней структуры. Любое прямое вмешательство в системные таблицы может нарушить целостность ссылки между пользователем и его настройками, что приведет к ошибкам при открытии отчетов.
Локальное хранение настроек на клиентском рабочем месте
Помимо серверного хранения, платформа 1С 8.3 активно использует локальные ресурсы компьютера пользователя для кэширования и хранения временных или персональных настроек интерфейса. Это особенно актуально для толстого клиента или при работе в режиме, где настройки сохраняются в профиль пользователя. Файлы настроек часто имеют расширение .css (не путать с каскадными таблицами стилей веб-дизайна) или хранятся в специализированных каталогах профиля.
Типичный путь к локальным настройкам в операционной системе Windows выглядит следующим образом: C:\Users\ИмяПользователя\AppData\Roaming\1C\1Cv8\.... Внутри этой иерархии папок находятся подкаталоги с именами информационных баз, где и лежат файлы вариантов отчетов. Такой подход позволяет работать с настройками даже при отсутствии постоянного соединения с сервером, если используется файловый вариант базы.
- 📂 Файлы настроек часто имеют сложные имена, состоящие из хеш-сумм или GUID, что затрудняет их ручное редактирование без специальных утилит.
- 💾 При переустановке операционной системы эти данные теряются, если не была выполнена резервная копия профиля пользователя.
- 🔄 Синхронизация локальных настроек с сервером происходит автоматически при сохранении варианта отчета с флагом"Доступен всем" или"Персональный".
⚠️ Внимание: При очистке диска утилитами типа CCleaner будьте осторожны с папкой
AppData. Удаление кэша 1С может сбросить все персональные настройки интерфейса и сохраненные варианты отчетов на конкретном рабочем месте.
Для разработчиков важно понимать разницу между настройками, хранящимися в базе (доступными всем), и локальными (видимыми только одному пользователю). При отладке отчетов часто возникает ситуация, когда отчет работает у разработчика, но выдает ошибку у пользователя из-за рассинхронизации локального кэша настроек.
Структура таблицы вариантов отчетов СКД
Система компоновки данных (СКД) является фундаментом для большинства современных отчетов в 1С 8.3. Настройки СКД представляют собой сложную древовидную структуру, которая сериализуется в XML или бинарный формат перед записью в базу данных. Таблица, отвечающая за хранение этих вариантов, обычно имеет префикс, указывающий на принадлежность к подсистеме отчетов.
Внутри таблицы каждая строка содержит несколько ключевых полей: ссылку на владельца (пользователя или общую папку), имя варианта, описание и само тело настроек. Тело настроек хранится в поле типа ХранениеЗначения или Макет. Именно в этом поле зашифрована вся логика: параметры отбора, настройки полей, сортировки и оформления.
| Поле таблицы | Тип данных | Описание содержимого |
|---|---|---|
Владелец |
ПланВидовХарактеристик | Ссылка на пользователя или общую настройку |
Наименование |
Строка | Читаемое имя варианта отчета |
Настройки |
ХранениеЗначения | Сериализованный XML структуры СКД |
ПометкаУдаления |
Булево | Флаг мягкого удаления настройки |
Анализ содержимого поля настроек требует использования встроенных средств платформы. Простой просмотр таблицы через внешний SQL-клиент покажет лишь бинарные данные или сжатый текст, который невозможно прочитать без десериализации объектом НастройкиКомпоновкиДанных. Это обеспечивает защиту от случайной порчи структуры данных внешними программами.
Как посмотреть XML настроек через код?
Для просмотра содержимого необходимо считать значение из таблицы, поместить его в перемензу типа НастройкиКомпоновкиДанных и выгрузить в формат XML с помощью метода ЗаписатьXML.
Внешние обработки и файлы настроек
Часто пользователи предпочитают выгружать удачные варианты отчетов во внешние файлы для переноса между базами или для архивации. В интерфейсе 1С 8.3 эта функция реализована через кнопку"Сохранить настройки во внешний файл". Такие файлы обычно имеют расширение .mxl (если это макет) или специфическое расширение, зависящее от типа отчета, но чаще всего это текстовые файлы в формате XML.
Хранение настроек во внешних файлах дает гибкость, но создает рискиности. Если структура отчета в базе изменилась (добавились новые поля, изменились типы данных), внешний файл настроек может стать несовместимым. При попытке загрузить такую настройку система выдаст ошибку о несоответствии структуры или проигнорирует устаревшие поля.
Разработчики часто используют этот механизм для поставки предустановленных вариантов отчетов вместе с обновлением конфигурации. В этом случае файл настройки кладется в папку с обработкой внешнего отчета или в специальную папку шаблонов. При первом запуске отчет может автоматически подхватывать эти настройки.
- 📥 Загрузка внешних настроек возможна через форму отчета, что позволяет быстро тиражировать успешный опыт аналитики.
- ⚠️ Файлы настроек не защищены паролем по умолчанию и могут быть отредактированы в текстовом редакторе опытными пользователями.
- 🔗 Ссылки на объекты метаданных во внешних файлах хранятся в виде UUID, что делает их универсальными для разных баз одной конфигурации.
⚠️ Внимание: При обновлении типовой конфигурации внешние файлы настроек, созданные в старой версии, могут перестать работать корректно. Всегда проверяйте работоспособность загруженных вариантов после обновления платформы или конфигурации.
Программный доступ и управление настройками
Для автоматизации процессов переноса и управления настройками отчетов разработчики используют встроенный язык 1С. Платформа предоставляет богатый инструментарий для работы с объектом НастройкиКомпоновкиДанных. Программный доступ позволяет читать, модифицировать и записывать настройки без участия пользователя, что удобно для массового обновления отчетов.
Пример кода для получения настроек из базы данных демонстрирует, как можно программно перебрать все сохраненные варианты и проанализировать их содержимое. Это часто используется в обработках обслуживания для поиска"битых" настроек или дублей.
// Пример получения настроек отчета
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ Настройки.Настройки ИЗ РегистрСведений.НастройкиОтчетов КАК Настройки";
Результат = Запрос.Выполнить;
Выборка = Результат.Выбрать;
Пока Выборка.Следующий Цикл
НастройкиСКД = Выборка.Настройки.Получить;
// Анализ структуры НастройкиСКД
КонецЦикла;
Использование программного метода Получить для поля типа ХранениеЗначения является ключевым моментом. Он автоматически десериализует данные в объект 1С. Обратный процесс — запись — выполняется методом ПолучитьХранениеЗначения, который подготавливает данные для записи в регистр сведений.
Программное управление настройками позволяет массово исправлять ошибки в отчетах после обновления конфигурации, экономя часы ручной работы пользователей.
Проблемы миграции и переноса баз данных
При переносе информационной базы на новый сервер или при выгрузке/загрузке в формат dt настройки отчетов обычно переносятся корректно, так как они являются частью данных конфигурации. Однако существуют нюансы, связанные с правами доступа и уникальными идентификаторами пользователей. Если пользователь создавал настройку в одной базе, а затем его учетная запись была пересоздана в другой с новым UUID, связь с настройками может потеряться.
Особое внимание следует уделить общим настройкам, которые помечены как доступные всем пользователям. При конвертации базы из одной версии платформы в другую (например, с 8.3.10 на 8.3.20) может потребоваться пересохранение настроек из-за изменений в формате сериализации СКД. Платформа обычно делает это автоматически при первом открытии, но в фоновых заданиях могут возникнуть ошибки.
Для минимизации рисков при миграции рекомендуется использовать обработку"Универсальный обмен данными" или специализированные инструменты администрирования, которые проверяют целостность регистров сведений перед выгрузкой. Это гарантирует, что ни одна строка с настройками отчетов не будет потеряна в процессе транспортировки.
Где физически лежит файл настроек в файловой базе 1С?
В файловой базе все данные, включая настройки отчетов, хранятся внутри основного файла базы данных (обычно 1Cv8.1CD). Отдельного файла для настроек нет, они являются записями в внутренних таблицах этого контейнера.
Можно ли перенести настройки отчета просто копированием файлов?
Нет, простое копирование файлов из AppData не гарантирует перенос настроек в другую базу, так как там хранятся ссылки на конкретные объекты внутри конкретной базы данных. Используйте функцию экспорта/импорта внутри самого отчета.
Почему пропали настройки отчетов после обновления 1С?
Чаще всего это связано с изменением структуры метаданных отчета. Если разработчик удалил поле, используемое в настройке, или изменил его тип, старая настройка становится невалидной и может быть скрыта или сброшена системой.
Как найти удаленные настройки отчетов в базе?
Удаленные настройки помечаются флагом пометки удаления. Их можно найти через консоль запросов, выбрав данные из регистра сведений с условием"ПометкаУдаления = Истина", и затем восстановить пометку.
Влияет ли смена компьютера на сохраненные варианты отчетов?
Если отчеты сохранены в базе данных (серверные настройки), то смена компьютера не повлияет на них. Если же использовалось локальное сохранение в профиль пользователя, то на новом компьютере настроек не будет.