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

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

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

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

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

и все замечательно работает
7 DmitrYY
 
22.09.20
10:52
(6) Спасибо большое!
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.