Где хранятся настройки СКД в управляемых формах и как их скопировать другому пользователю

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Работа с системой компоновки данных (СКД) в 1С — это мощный инструмент, позволяющий пользователям самостоятельно изменять структуру отчетов, добавлять фильтры и группировки. Однако часто возникает вопрос: где физически сохраняются эти изменения и как передать удачную настройку от одного коллеги другому, не прибегая к разработке в конфигураторе? Давайте подробно разберем механизмы хранения настроек и способы их администрирования.

Разграничение понятий: Вариант отчета и Пользовательские настройки

Прежде чем искать место хранения, нам необходимо четко разделить два типа данных, которые платформа 1С обрабатывает по-разному. Проанализируем их суть:

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

Рассмотрим ситуацию: если нам нужно «расшарить» отчет на всех, мы работаем с вариантом. Если нужно просто передать установленные фильтры — с настройками.

Системные хранилища платформы (уровень «движка» 1С)

Если в вашей конфигурации не используются дополнительные библиотеки, 1С применяет стандартные системные механизмы. Выясним, где именно в базе данных находятся эти записи. Платформа использует специализированные объекты — хранилища настроек:

Важный технический нюанс: В клиент-серверном варианте (на MS SQL или PostgreSQL) эти данные хранятся в таблице Files в бинарном виде. Попытка найти их прямым SQL-запросом не увенчается успехом, так как данные сериализованы и привязаны к сложным внутренним идентификаторам (UUID) пользователей и объектов.

Особенности хранения в конфигурациях на базе БСП

В современных типовых решениях (таких как 1С:ERP, Управление торговлей 11, Бухгалтерия предприятия 3.0 или ЗУП 3.1) логика хранения перехвачена Библиотекой Стандартных Подсистем (БСП). Проанализируем, как это меняет дело:

Вместо скрытых системных таблиц данные выносятся в доступные программисту объекты:

Как скопировать настройки другому пользователю через интерфейс

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

Способ 1: Копирование через панель администрирования

  1. Перейдем в раздел Администрирование — Обслуживание.
  2. Найдем пункт Управление настройками пользователей (в некоторых версиях — «Настройки пользователей и прав»).
  3. Выберем гиперссылку Копирование настроек.
  4. В открывшемся окне в поле «От кого» выберем пользователя-источника, у которого уже настроен отчет.
  5. В списке настроек выберем нужный отчет (можно выбрать как вариант целиком, так и настройки фильтров).
  6. В поле «Кому» выберем одного или нескольких пользователей (или даже группу «Все пользователи»).
  7. Нажмем Скопировать и закрыть.

Способ 2: Использование Менеджера вариантов (для опытных пользователей)

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

Программный доступ к настройкам

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

Для получения списка всех вариантов отчета программно можно использовать следующий подход:


// Получаем список всех сохраненных вариантов для конкретного отчета
СписокВариантов = ХранилищеВариантовОтчетов.ПолучитьСписок("Отчет.Продажи");

Для Каждого ЭлементСписка Из СписокВариантов Цикл
    // Выводим информацию о варианте
    Сообщить("Название варианта: " + ЭлементСписка.Представление);
    Сообщить("Пользователь: " + ЭлементСписка.Пользователь);
КонецЦикла;

Если нам нужно программно скопировать настройку от пользователя "Иванов" пользователю "Петров", мы сначала получаем настройки (метод Получить), а затем сохраняем их под именем другого пользователя (метод Сохранить):


КлючОбъекта = "Отчет.ОстаткиТоваров/ОсновнойВариант";
ИмяПользователяИсточника = "Иванов";
ИмяПользователяПриемника = "Петров";

// Извлекаем настройки источника
Настройки = ХранилищеВариантовОтчетов.Получить(КлючОбъекта, , , ИмяПользователяИсточника);

// Сохраняем их приемнику
ХранилищеВариантовОтчетов.Сохранить(КлючОбъекта, , Настройки, , ИмяПользователяПриемника);

Подведем итоги

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

Рекомендации по работе:

Проанализировав эти механизмы, мы видим, что 1С предоставляет гибкую систему управления пользовательским опытом, позволяя минимизировать работу программиста за счет административных инструментов.

← На главную