Как в конфигурации с БСП, во внешний отчет на СКД передать в отбор значение при открытии отчета.
Есть отчет на СКД. Как не создавая форм заполнить параметр отбора при запуске
Пытаюсь так, но параметр не заполняется. Может есть еще какие идеи ?
Пытаюсь так, но параметр не заполняется. Может есть еще какие идеи ?
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
ПолеОтветственный = Новый ПолеКомпоновкиДанных("Ответственный");
Настройки = КомпоновщикНастроек.Настройки;
ЭлементыОтбора = Настройки.Отбор.Элементы;
Для каждого ЭлементОтбора Из ЭлементыОтбора Цикл
Если ЭлементОтбора.ЛевоеЗначение = ПолеОтветственный Тогда
ЭлементОтбора.ПравоеЗначение = Пользователи.ТекущийПользователь();
ЭлементОтбора.Использование = Истина;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Универсальный конструктор отчетов СКД (управляемые формы, тонкий клиент)
- Добавление отчетов в типовые конфигурации 1С
- Как программно открыть внешний отчет из "Дополнительных отчетов и обработок" и передать параметры (при помощи БСП)
- Пользовательские настройки отчетов 1С. Часть 1. Простые и расширенные настройки
- Отчеты с общей формой отчета. Типовые сценарии
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
наверно так же как по аналогии с Внешними печатными формами!
получили параметры запуска
программно обратились к СКД получили настройки, установили параметры,
программно получили результат в ТабДок
и в коллекции печатных форм вернули
все как в ВПФ, только в функцию Печать под работу с СКД переделать
получили параметры запуска
программно обратились к СКД получили настройки, установили параметры,
программно получили результат в ТабДок
и в коллекции печатных форм вернули
все как в ВПФ, только в функцию Печать под работу с СКД переделать
Для начала надо понять в каком месте нужно заполнить. В этом коде отбор заполняется для формирования отчета. Чтобы увидеть отбор глазами, нужно использовать события (БСП), которые определяются в отчете. Типа при загрузке пользовательских настроек и т.п.
Подсказали, что нужно проверять настройки пользовательские, они приоритетные
пока так сделал
пока так сделал
Для каждого ЭлементОтбора Из КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл
ЭлементОтбора.ПравоеЗначение = Пользователи.ТекущийПользователь();
ЭлементОтбора.Использование = Истина;
КонецЦикла;
(5) немного улучшил
//поиск идентификатора пользовательской настройки
ТипОтбора_Ответственный = Новый ПолеКомпоновкиДанных("Ответственный");
Для каждого ЭлементОтбора Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
Если ЭлементОтбора.ЛевоеЗначение=ТипОтбора_Ответственный Тогда
ИдентификаторОтбора = ЭлементОтбора.ИдентификаторПользовательскойНастройки;
Прервать;
КонецЕсли;
КонецЦикла;
//поиск отбора по ранее найденому идетификатору
Для каждого ЭлементОтбора Из КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл
Если ЭлементОтбора.ИдентификаторПользовательскойНастройки = ИдентификаторОтбора Тогда
ЭлементОтбора.ПравоеЗначение = Пользователи.ТекущийПользователь();
ЭлементОтбора.Использование = Истина;
КонецЕсли;
КонецЦикла;
Показать
Есть похожий вариант. Там, правда, задача была вывести команду открытия стандартного отчёта в документ, чтобы при его открытии подтягивался из реквизита документа параметр отчёта. Для этого во внешнюю обработку позаимствовал из отчёта все его макеты, реквизиты и форму. А далее определил внешнюю обработку в модуле объекта как печатную форму с вызовом клиентского метода. Там передавал в отчёт параметр из реквизита документа и открывал форму со стандартным заполнением параметра отчёта.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот