Как перенести все настройки и варианты отчетов из одной базы 1С:УНФ в другую

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет Торговля и дистрибуция
← На главную

При работе с распределенными или автономными узлами 1С:Управление нашей фирмой (УНФ) часто возникает задача тиражирования пользовательских настроек. Например, когда в головном офисе созданы удобные варианты отчетов, и их необходимо быстро распространить на все розничные точки, которые работают в отдельных базах. В этой статье мы подробно разберем, где хранятся эти данные и какими способами их можно перенести.

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

Прежде чем приступать к переносу, проанализируем структуру хранения данных. В современных конфигурациях на базе БСП (Библиотеки стандартных подсистем), к которым относится и УНФ, информация распределена по нескольким объектам:

  1. Справочник ВариантыОтчетов: здесь хранятся сами структуры отчетов, созданные пользователями (названия, группировки, выбранные поля).
  2. ХранилищеВариантовОтчетов: это системное хранилище на уровне платформы. Доступ к нему осуществляется программно.
  3. Справочник ПользовательскиеНастройкиОтчетов: содержит индивидуальные отборы и параметры, которые пользователь закрепил для себя.
  4. ХранилищеОбщихНастроек: здесь система запоминает визуальное состояние форм (расположение панелей, видимость колонок).

Способ 1: Использование стандартной обработки Выгрузка и загрузка данных XML

Если нам необходимо перенести настройки массово, воспользуемся универсальным механизмом обмена данными — для этого подойдёт обработка настройки обмена данными между базами 1С. Этот метод не требует написания кода, но требует внимательности при выборе объектов. Рассмотрим по шагам процесс выгрузки:

  1. Запустим обработку ВыгрузкаЗагрузкаДанныхXML в исходной базе — поможет универсальный перенос данных между базами 1С.
  2. В списке объектов для выгрузки выберем справочник ВариантыОтчетов.
  3. Добавим справочник ПользовательскиеНастройкиОтчетов.
  4. Обязательно включим флаг «Выгружать с объектом его движения и связанные объекты», чтобы подтянулись настройки компоновки данных.
  5. Сформируем файл и загрузим его в целевой базе аналогичной обработкой.

Важный нюанс: Чтобы отчеты «подцепились» к пользователям в новой базе, имена пользователей (логины) должны полностью совпадать. Если UUID пользователей разные (а в разных базах они почти всегда разные), система может не распознать владельца настроек.

Способ 2: Перенос через файлы (ручной метод для небольшого количества отчетов)

Начиная с платформы 8.3.15, в интерфейсе Managed Forms появилась возможность сохранять варианты настроек в локальный файл. Этот способ идеален, если нужно передать 2-3 сложных отчета.

Разберем алгоритм действий:

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

Способ 3: Программный перенос через ХранилищеВариантовОтчетов

Когда требуется автоматизировать процесс или стандартные обработки не справляются (например, из-за специфики хранения в системных таблицах), нам придется написать небольшую обработку. Выясним причину сложности: данные в ХранилищеВариантовОтчетов упакованы в двоичные данные. Для работы с ними используются методы ПолучитьСписок() и Получить().

Посмотрим на пример кода для извлечения списка настроек конкретного отчета:


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

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

Способ 4: Инструменты разработчика и готовые решения

Для профессиональной работы с хранилищами настроек рекомендуется использовать расширение «Редактор хранилищ настроек» из состава Инструментов Разработчика (ИР) — есть расширение Редактор хранилищ настроек для Инструментов Разработчика. Этот инструмент позволяет:

Также можно поискать на специализированных ресурсах, таких как Инфостарт, готовые обработки под заголовком «Перенос настроек пользователей». Зачастую они уже содержат механизмы сопоставления пользователей по наименованию, а не по внутреннему идентификатору GUID, что решает главную проблему при миграции данных между автономными УНФ.

Критически важные рекомендации

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

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

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

← На главную