В типовых конфигурациях 1С на базе Библиотеки стандартных подсистем (БСП), таких как «1С:Управление торговлей 11», предусмотрен удобный инструмент копирования пользовательских настроек (раздел Администрирование → Настройки пользователей и прав → Персональные настройки отчетов). Однако администраторы и пользователи часто сталкиваются с ситуацией, когда отчеты, подключенные через справочник ДополнительныеОтчетыИОбработки, отсутствуют в списке доступных для копирования отчетов.
Разберем подробнее, почему возникает такое поведение платформы и подсистемы БСП, а также рассмотрим все возможные варианты решения задачи: от простых пользовательских приемов до программных способов и доработки конфигурации.
Проанализируем архитектуру подсистемы БСП «Варианты отчетов» и «Копирование настроек пользователей». Штатная обработка копирования настроек работает исключительно с объектами коллекции Метаданные.Отчеты, то есть со встроенными в конфигурацию отчетами. Внешние отчеты, загруженные в информационную базу как элементы справочника дополнительных отчетов, не являются частью дерева метаданных конфигурации.
При сохранении настроек внешнего отчета платформа 1С использует специализированные ключи вида ВнешнийОтчет.<ИмяОтчета> или идентификаторы из справочника, сохраняя данные в системные хранилища. Типовой интерфейс администрирования настроек исключает подобные ключи из общего списка выбора.
Если задача заключается в том, чтобы разработанный вариант внешнего отчета стал доступен другим сотрудникам без переноса индивидуальных персональных настроек, воспользуемся штатным механизмом общего доступа к вариантам:
Когда необходимо передать точечные настройки конкретного варианта (отборы, сортировки, группировки) без программирования, разберем по шагам перенос через файл схемы настроек:
.xml.Если конфигурация снята с полной поддержки или находится на доработке, зарегистрируем внешний отчет в подсистеме БСП, чтобы сделать его полноценным участником механизмов вариантов отчетов. Для этого перейдем в дерево метаданных и найдем переопределяемый общий модуль ВариантыОтчетовПереопределяемый.
Посмотрим на пример добавления отчета в экспортную процедуру НастроитьВариантыОтчетов:
Процедура НастроитьВариантыОтчетов(Настройки) Экспорт
// Получаем описание настроек для нашего отчета
// Если отчет встроен в метаданные или подключается на уровне конфигурации:
НастройкиОтчета = ВариантыОтчетов.ОписаниеНастроек(Настройки, Метаданные.Отчеты.НашВнешнийОтчет);
НастройкиОтчета.Поиск.КлючевыеСлова = НСтр("ru = 'продажи, валовая прибыль, внешние'");
КонецПроцедуры
Однако если отчет должен оставаться подключаемым динамически, внедрение в данный модуль потребует создания статического объекта отчета в метаданных.
Для массового копирования настроек между учетными записями без ручного сохранения файлов напишем программную обработку или выполним фрагмент кода во внешней консоли разработчика. Платформа 1С предоставляет системные менеджеры ХранилищеПользовательскихНастроекОтчетов и ХранилищеВариантовОтчетов.
Рассмотрим код для чтения и записи пользовательских настроек внешнего отчета:
Процедура СкопироватьНастройкиВнешнегоОтчета(ИмяВнешнегоОтчета, ПользовательИсточник, ПользовательПриемник)
КлючОбъекта = "ВнешнийОтчет." + ИмяВнешнегоОтчета;
// Получаем список сохраненных настроек пользователя-источника
СписокНастроек = ХранилищеПользовательскихНастроекОтчетов.ПолучитьСписок(КлючОбъекта, ПользовательИсточник);
Для Каждого ЭлементСписка Из СписокНастроек Цикл
КлючНастроек = ЭлементСписка.Значение;
// Загружаем настройки источника
Настройки = ХранилищеПользовательскихНастроекОтчетов.Загрузить(КлючОбъекта, КлючНастроек, , ПользовательИсточник);
// Сохраняем настройки в профиль пользователя-приемника
Если Настройки <> Неопределено Тогда
ХранилищеПользовательскихНастроекОтчетов.Сохранить(КлючОбъекта, КлючНастроек, Настройки, , ПользовательПриемник);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Аналогичным образом переносятся и варианты отчетов с помощью методов менеджера ХранилищеВариантовОтчетов.ПолучитьСписок, Загрузить и Сохранить.
Наиболее современным и рекомендуемым способом для сохранения типовой конфигурации на полной поддержке является перенос внешнего отчета в Расширение конфигурации:
Отчеты.