Работа с системой компоновки данных (СКД) в 1С — это мощный инструмент, позволяющий пользователям самостоятельно изменять структуру отчетов, добавлять фильтры и группировки. Однако часто возникает вопрос: где физически сохраняются эти изменения и как передать удачную настройку от одного коллеги другому, не прибегая к разработке в конфигураторе? Давайте подробно разберем механизмы хранения настроек и способы их администрирования.
Прежде чем искать место хранения, нам необходимо четко разделить два типа данных, которые платформа 1С обрабатывает по-разному. Проанализируем их суть:
Рассмотрим ситуацию: если нам нужно «расшарить» отчет на всех, мы работаем с вариантом. Если нужно просто передать установленные фильтры — с настройками.
Если в вашей конфигурации не используются дополнительные библиотеки, 1С применяет стандартные системные механизмы. Выясним, где именно в базе данных находятся эти записи. Платформа использует специализированные объекты — хранилища настроек:
ХранилищеВариантовОтчетов (ReportsOptionsStorage) — здесь лежат структуры пользовательских вариантов.ХранилищеПользовательскихНастроекОтчетов (ReportsUserSettingsStorage) — здесь хранятся фильтры и параметры.ХранилищеОбщихНастроек (CommonSettingsStorage) — в нем могут находиться мелкие правки интерфейса форм отчетов.Важный технический нюанс: В клиент-серверном варианте (на MS SQL или PostgreSQL) эти данные хранятся в таблице Files в бинарном виде. Попытка найти их прямым SQL-запросом не увенчается успехом, так как данные сериализованы и привязаны к сложным внутренним идентификаторам (UUID) пользователей и объектов.
В современных типовых решениях (таких как 1С:ERP, Управление торговлей 11, Бухгалтерия предприятия 3.0 или ЗУП 3.1) логика хранения перехвачена Библиотекой Стандартных Подсистем (БСП). Проанализируем, как это меняет дело:
Вместо скрытых системных таблиц данные выносятся в доступные программисту объекты:
Рассмотрим самый простой и правильный путь решения задачи без написания кода. Если нам нужно передать настройки в типовой конфигурации, воспользуемся встроенными помощниками.
Способ 1: Копирование через панель администрирования
Способ 2: Использование Менеджера вариантов (для опытных пользователей)
Прямо в форме отчета можно нажать «Выбрать вариант» — «Показать все». В открывшемся окне (это и есть интерфейс управления вариантами БСП) можно изменить автора варианта или поставить флаг «Доступен всем пользователям». Это автоматически «расшарит» ваш труд на всю компанию.
Иногда возникают задачи, когда перенос нужно выполнить программно, например, при миграции данных или создании специфической обработки. Для этого разберем работу с менеджером хранилища.
Для получения списка всех вариантов отчета программно можно использовать следующий подход:
// Получаем список всех сохраненных вариантов для конкретного отчета
СписокВариантов = ХранилищеВариантовОтчетов.ПолучитьСписок("Отчет.Продажи");
Для Каждого ЭлементСписка Из СписокВариантов Цикл
// Выводим информацию о варианте
Сообщить("Название варианта: " + ЭлементСписка.Представление);
Сообщить("Пользователь: " + ЭлементСписка.Пользователь);
КонецЦикла;
Если нам нужно программно скопировать настройку от пользователя "Иванов" пользователю "Петров", мы сначала получаем настройки (метод Получить), а затем сохраняем их под именем другого пользователя (метод Сохранить):
КлючОбъекта = "Отчет.ОстаткиТоваров/ОсновнойВариант";
ИмяПользователяИсточника = "Иванов";
ИмяПользователяПриемника = "Петров";
// Извлекаем настройки источника
Настройки = ХранилищеВариантовОтчетов.Получить(КлючОбъекта, , , ИмяПользователяИсточника);
// Сохраняем их приемнику
ХранилищеВариантовОтчетов.Сохранить(КлючОбъекта, , Настройки, , ИмяПользователяПриемника);
Мы выяснили, что место хранения зависит от архитектуры вашей программы. В «чистой» платформе 1С — это системные хранилища, недоступные напрямую через таблицы БД. В современных конфигурациях — это справочники БСП.
Рекомендации по работе:
Проанализировав эти механизмы, мы видим, что 1С предоставляет гибкую систему управления пользовательским опытом, позволяя минимизировать работу программиста за счет административных инструментов.