Вход | Регистрация

1С:Предприятие ::

Метки: 

Как из отчёта запустить команду внешней печатной формы документа?

Я
   Креатив
 
21.01.18 - 16:07
Есть отчёт, в нём есть ссылка на документ. Во внешней печатной форме есть три команды. Необходимо запустить одну из них.
 
 
   Aleksey
 
1 - 21.01.18 - 16:17
42
   Креатив
 
2 - 22.01.18 - 11:45
(1)И?
   ildary
 
3 - 22.01.18 - 11:47
(2) Как? Написать код. Какой? Подсмотреть вызов в типовой, ну или пригласить специалиста.
   Darych
 
4 - 22.01.18 - 11:57
(2) 42
   Timon1405
 
5 - 22.01.18 - 11:59
(1)(4) ответ будет в 42 сообщении в этой ветке?
   Гипервизор
 
6 - 22.01.18 - 12:03
   Креатив
 
7 - 22.01.18 - 12:05
(3)Этот путь мне известен. Вот только "вызов в типовой" можно проискать несколько часов. Может кто-то уже занимался и знает, где копать?
   Гипервизор
 
8 - 22.01.18 - 12:09
(7) Экий вы скрытный. Платформа, конфигурация? Как именно запустить ВПФ? Ваш отчет сделан на СКД и нужно через расшифровку по ссылке на документ открыть ВПФ? Ничего не ясно, потому ответ в (3).
   ildary
 
9 - 22.01.18 - 12:11
(8) зачем так быстро раскрывать карты? Ещё не все телепаты и гадалки успели разогреться.
   ildary
 
10 - 22.01.18 - 12:13
(7) я поискал по коду и нашёл. Даже шрамов на теле не осталось. И мне было стыдно клянчить на форуме помощи, пока не упёрся. И самое смешное - не упёрся, все получилось. Делиться не получится - многое вынес в свои общие модули, придётся все это разгребать.
 
 Рекламное место пустует
   Вафель
 
11 - 22.01.18 - 12:39
модуль ДополнительныеОтчетыИОбработки
Функция ВыполнитьКоманду(ПараметрыКоманды, АдресРезультата = Неопределено) Экспорт
    
    Если ТипЗнч(ПараметрыКоманды.ДополнительнаяОбработкаСсылка) <> Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки")
        Или ПараметрыКоманды.ДополнительнаяОбработкаСсылка = Справочники.ДополнительныеОтчетыИОбработки.ПустаяСсылка() Тогда
        Возврат Неопределено;
    КонецЕсли;
    
    ВнешнийОбъект = ОбъектВнешнейОбработки(ПараметрыКоманды.ДополнительнаяОбработкаСсылка);
    ИдентификаторКоманды = ПараметрыКоманды.ИдентификаторКоманды;
    РезультатВыполнения = ВыполнитьКомандуВнешнегоОбъекта(ВнешнийОбъект, ИдентификаторКоманды, ПараметрыКоманды, АдресРезультата);
    
    Возврат РезультатВыполнения;
    
КонецФункции

   Креатив
 
12 - 22.01.18 - 13:25
(8)Конфа Розница 2.2. Отчёт будет на СКД, да в расшифровке по ссылке на документ нужно открыть готовую печатную форму (без права выбора).
(11)Спасибо, будем разбираться.
   Новиков
 
13 - 22.01.18 - 13:39
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(Форма, Команда, Источник);

Параметры:
Форма = ЭтаФорма
Команда = [КомандаФормы]
Источник = Объект, для которого ты собрался получать печатную форму.

[КомандаФормы] - ее можешь получить либо от имени, если ты его знаешь, либо найти имя по заголовку (то, что видишь глазами).
   Креатив
 
14 - 22.01.18 - 13:43
(13)Круто, благодарю.
   Креатив
 
15 - 23.01.18 - 20:03
(13)С поиском команды возникли заморочки.
   Креатив
 
16 - 24.01.18 - 05:08
(13)К сожалению не взлетело. Там в качестве источника нужно таблицу формы передавать. Пришлось выковыривать. Сделал тестовый отчёт в нём реквизит дк - ссылка на документ.
&НаКлиенте
Процедура Печать(Команда)
    Форма = ПолучитьФорму("Документ.ПоступлениеТоваров.Форма.ФормаДокумента");
    Кмд = Форма.Команды.ПодменюПечатьОбычное_ПоступлениеТоваровПродажа;  //имя коамнды из ВПФ

    Источник = Новый Структура;
    Источник.Вставить("Ссылка", дк);
    ИмяКоманды = Кмд.Имя;
    АдресНастроек = Форма.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд;
    ОписаниеКоманды = ПодключаемыеКомандыКлиентПовтИсп.ОписаниеКоманды(ИмяКоманды, АдресНастроек);
    Контекст = ПодключаемыеКомандыКлиентСервер.ШаблонПараметровВыполненияКоманды();
    Контекст.ОписаниеКоманды = Новый Структура(ОписаниеКоманды);
    Контекст.Форма           = Форма;
    Контекст.Источник        = Источник;
    Контекст.ЭтоФормаОбъекта = Истина;
    Контекст.Вставить("ТребуетсяОпределитьСсылки", Истина);
    Контекст.Вставить("ТребуетсяЗапись", Ложь);
    Контекст.Вставить("ТребуетсяПроведение", Ложь);
    Контекст.Вставить("ТребуетсяРаботаСФайлами", Ложь);
    МассивСсылок = Новый Массив;
    МассивСсылок.Добавить(дк);
    Контекст.Вставить("МассивСсылок", МассивСсылок);
    ПараметрКоманды = МассивСсылок;
    КлиентскийМодуль = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюСлужебныйКлиент");
    Обработчик = Новый ОписаниеОповещения("ОбработчикКоманды", КлиентскийМодуль, Контекст);
    ВыполнитьОбработкуОповещения(Обработчик, ПараметрКоманды);
КонецПроцедуры


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