Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

СКД, внешний отчет

СКД, внешний отчет
Я
   DmitrYY
 
21.09.20 - 14:39
Добрый день!
помогите разобраться, есть внешний отчет. Он вызывается из формы элемента ОС. (Сейчас момент он формирует данные по всем ОС).
Можно ли сделать так чтобы при нажатии на печать он формировал отчет только по тому ОС из формы которого он вызван. (Нужен именно отчет, не ВПФ).
В ВПФ ссылки приходят через "МассивОбъектов", во внешнем отчете можно что то подобное сделать?
   DmitrYY
 
1 - 21.09.20 - 14:43
"...(Сейчас он формирует данные по всем ОС)..."
   ASU_Diamond
 
2 - 21.09.20 - 14:45
А как отчет вызывается из формы элемента?
   DmitrYY
 
3 - 21.09.20 - 14:49
   DmitrYY
 
4 - 21.09.20 - 14:49
ИмяОтчета = ЭтотОбъект.Метаданные().Имя; 
    Синоним = ЭтотОбъект.Метаданные().Синоним; 
    Синоним = ?(ЗначениеЗаполнено(Синоним),Синоним, ИмяОтчета);         
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
    
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиОтчет();     
    ПараметрыРегистрации.Версия = "1.0";
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    ПараметрыРегистрации.Наименование = Синоним;
    ПараметрыРегистрации.Информация = "Обработка " + Синоним;
    ПараметрыРегистрации.Назначение.Добавить("Справочник.ОсновныеСредства");
    
    СтрКоманды = ПараметрыРегистрации.Команды.Добавить();
    СтрКоманды.Идентификатор = ИмяОтчета + "_КомандаОткрытиеФормы";
    СтрКоманды.Представление = Синоним;
    СтрКоманды.ПоказыватьОповещение = Истина;
    СтрКоманды.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(); 
    
    Возврат ПараметрыРегистрации;
   DmitrYY
 
5 - 22.09.20 - 10:29
по другому задам вопрос тогда, в типовых конфигурациях в отчетах есть команды, в модуле этой команды есть процедура "ОбработкаКоманды":

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    
    Отбор = Новый Структура;
    
    Если ТипЗнч(ПараметрКоманды) = Тип("СправочникСсылка.ГруппыВНАМСФО") Тогда    
        Отбор.Вставить("ГруппаВНА", ПараметрКоманды);
    Иначе 
        Отбор.Вставить("ВНА", ПараметрКоманды);
    КонецЕсли;
    
    ПараметрыФормы = Новый Структура("Отбор,СформироватьПриОткрытии", Отбор, Истина);
    
    ОткрытьФорму("Отчет.арсИсторияОперацийОС.Форма", 
                    ПараметрыФормы, 
                    ПараметрыВыполненияКоманды.Источник, 
                    ПараметрыВыполненияКоманды.Уникальность, 
                    ПараметрыВыполненияКоманды.Окно, 
                    ПараметрыВыполненияКоманды.НавигационнаяСсылка);
    
КонецПроцедуры

вот в этом случае, в "ПараметрКоманды" приходит ссылка на ОС. Как реализовать то же самое для внешнего отчета?
   Андроны едут
 
6 - 22.09.20 - 10:37
Я в модуле объекта размещаю 2 процедуры:

Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
    Настройки.ФормироватьСразу = Истина;
    Настройки.События.ПриСозданииНаСервере = Истина;
КонецПроцедуры

Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
    ОбъектыНазначения = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Форма.Параметры, "ОбъектыНазначения");
    Если ОбъектыНазначения <> Неопределено Тогда
        Форма.ФормаПараметры.Отбор.Вставить("Ссылка", ОбъектыНазначения);
    КонецЕсли;
КонецПроцедуры

и все замечательно работает
   DmitrYY
 
7 - 22.09.20 - 10:52
(6) Спасибо большое!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.