При работе с распределенными или автономными узлами 1С:Управление нашей фирмой (УНФ) часто возникает задача тиражирования пользовательских настроек. Например, когда в головном офисе созданы удобные варианты отчетов, и их необходимо быстро распространить на все розничные точки, которые работают в отдельных базах. В этой статье мы подробно разберем, где хранятся эти данные и какими способами их можно перенести.
Прежде чем приступать к переносу, проанализируем структуру хранения данных. В современных конфигурациях на базе БСП (Библиотеки стандартных подсистем), к которым относится и УНФ, информация распределена по нескольким объектам:
Если нам необходимо перенести настройки массово, воспользуемся универсальным механизмом обмена данными — для этого подойдёт обработка настройки обмена данными между базами 1С. Этот метод не требует написания кода, но требует внимательности при выборе объектов. Рассмотрим по шагам процесс выгрузки:
ВыгрузкаЗагрузкаДанныхXML в исходной базе — поможет универсальный перенос данных между базами 1С.ВариантыОтчетов.ПользовательскиеНастройкиОтчетов.Важный нюанс: Чтобы отчеты «подцепились» к пользователям в новой базе, имена пользователей (логины) должны полностью совпадать. Если UUID пользователей разные (а в разных базах они почти всегда разные), система может не распознать владельца настроек.
Начиная с платформы 8.3.15, в интерфейсе Managed Forms появилась возможность сохранять варианты настроек в локальный файл. Этот способ идеален, если нужно передать 2-3 сложных отчета.
Разберем алгоритм действий:
.xml).Когда требуется автоматизировать процесс или стандартные обработки не справляются (например, из-за специфики хранения в системных таблицах), нам придется написать небольшую обработку. Выясним причину сложности: данные в ХранилищеВариантовОтчетов упакованы в двоичные данные. Для работы с ними используются методы ПолучитьСписок() и Получить().
Посмотрим на пример кода для извлечения списка настроек конкретного отчета:
СписокНастроек = ХранилищеВариантовОтчетов.ПолучитьСписок("Отчет.Продажи");
Для Каждого Настройка Из СписокНастроек Цикл
ДанныеНастройки = ХранилищеВариантовОтчетов.Получить("Отчет.Продажи", Настройка.Ключ);
// Далее следует сериализация ДанныеНастройки в XML или запись в файл
КонецЦикла;
При загрузке в другую базу мы используем метод ХранилищеВариантовОтчетов.Сохранить(). Проанализируем ситуацию с привязкой к пользователю: при программной записи важно явно указывать имя пользователя в параметрах метода, иначе настройки станут общими или недоступными.
Для профессиональной работы с хранилищами настроек рекомендуется использовать расширение «Редактор хранилищ настроек» из состава Инструментов Разработчика (ИР) — есть расширение Редактор хранилищ настроек для Инструментов Разработчика. Этот инструмент позволяет:
Также можно поискать на специализированных ресурсах, таких как Инфостарт, готовые обработки под заголовком «Перенос настроек пользователей». Зачастую они уже содержат механизмы сопоставления пользователей по наименованию, а не по внутреннему идентификатору GUID, что решает главную проблему при миграции данных между автономными УНФ.
Проверьте версии конфигураций: Перед переносом убедитесь, что структура метаданных (состав регистров, справочников и их реквизитов) в базах совпадает. Если в целевой базе отсутствует поле, которое используется в группировках или отборах переносимого отчета, система выдаст критическую ошибку Ошибка компоновки данных при попытке формирования отчета.
Синхронизация справочников: Если вариант отчета настроен с отбором по конкретному складу или контрагенту, помните, что эти элементы также должны иметь одинаковые UUID в обеих базах, иначе отборы в отчете окажутся пустыми или будут содержать «Объект не найден».
Рассмотренные методы позволяют гибко решать задачу переноса настроек: от простого копирования файлов до создания полноценных систем синхронизации настроек в распределенной сети магазинов — ускоряет автоматизированный обмен данными между конфигурациями по правилам.