При поддержке пользователей часто требуется собрать итоговый запрос к данным или итоговую схему СКД с настройками именно под пользователем в боевой базе, где выключена серверная отладка. Еще и код может выполняться в фоновом режиме, усложняя процесс извлечения запроса.
В данном расширении не используются объекты метаданных, которые приведут к реструктуризации. Также не используется БСП, поэтому это расширение работает на любых конфигурациях.
Для хранения полученной информации будем использовать ХранилищеОбщихНастроек. Так как это универсальный механизм, который помимо стандартного функционала позволяет сохранять любые сериализуемые пользовательские данные.
Общая настройка:
Указываем пользователя для которого будем получать запрос и/или СКД в общем модуле:

Пример для запроса:
Нам нужно сохранить запрос формируемый пользователем, чтобы его в дальнейшем проанализировать.
Если СохранениеЗапросовВызовСервера.НужныйПользователь() Тогда
МакетКомпоновки = СохранениеЗапросовВызовСервера.ПолучитьМакетПоСхеме(СхемаКомпоновкиДанных, КомпоновщикНастроек);
ПараметыСтрокой = ЗначениеВСтрокуВнутр(СохранениеЗапросовВызовСервера.ПреобразоватьПараметрыЗапросаВСтруктуру(МакетКомпоновки.ЗначенияПараметров));
СтруктураСохранения = Новый Структура;
СтруктураСохранения.Вставить("Запрос", МакетКомпоновки.НаборыДанных.Основной.Запрос);
СтруктураСохранения.Вставить("Параметры", ПараметыСтрокой);
ХранилищеОбщихНастроек.Сохранить("ОстаткиИДоступностьТоваров", "ДанныеПоЗапросу", СтруктураСохранения);
КонецЕсли;
Для загрузки запроса и его параметров будем использовать слегка модифицированную стандартную консоль запросов для управляемного приложения с ИТС.
Навигационная ссылка: e1cib/app/Обработка.КонсольЗапросов

Пример для СКД:
Существует отчет, в котором много программного формирования. Схема, которая хранится в макете конфигурации, не отражает схему, которая будет выполнена.
Настройки пользователя тоже могут быть произвольными.
Воспользуемся событием "ПриКомпоновкеРезультата":
&После("ПриКомпоновкеРезультата")
Процедура СЗ_ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Если СохранениеЗапросовВызовСервера.НужныйПользователь() Тогда
СтруктураСохранения = Новый Структура;
СтруктураСохранения.Вставить("СхемаКомпоновкиДанных", СхемаКомпоновкиДанных);
СтруктураСохранения.Вставить("НастройкиКомпоновкиДанных", КомпоновщикНастроек.ПолучитьНастройки());
ХранилищеОбщихНастроек.Сохранить("ОстаткиИДоступностьТоваровСКД", "ДанныеПоСКД", СтруктураСохранения);
КонецЕсли;
КонецПроцедуры
Воспользуемся обработкой КонсольПолученияСКД. Навигационная ссылка: e1cib/app/Обработка.КонсольПолученияСКД

После этого схему можно сохранить в файл и загрузить в свой отчет:


А настройки загрузим уже со стороны предприятия:



Альтернативой этому варианту может быть использование параметров в БСП, в событии ОпределитьНастройкиФормы:
&После("ОпределитьНастройкиФормы")
Процедура СЗ_ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки)
Настройки.РазрешеноРедактироватьСхему = Истина;
КонецПроцедуры

Но это работает только для БСП и требует действий под пользователем в толстом клиенте.
Важные дополнения:
Возможность загрузки настроек под любым пользователем возможна для права "Администрирование данных".

Советую не снимать флажок "Удалять данные после получения", чтобы не захламлять Хранилище общих настроек.

Протестировано на самописных релизах с БСП и без БСП, ERP (2.5.23.53) и УНФ (3.0.13.342).
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.12.218
Вступайте в нашу телеграмм-группу Инфостарт