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

1С:Предприятие :: 1С:Предприятие 8 общая

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

Как из отчёта запустить команду внешней печатной формы документа?
Я
   Креатив
 
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)К сожалению не взлетело. Там в качестве источника нужно таблицу формы передавать. Пришлось выковыривать. Сделал тестовый отчёт в нём реквизит дк - ссылка на документ.
&НаКлиенте
Процедура Печать(Команда)
    Форма = ПолучитьФорму("Документ.ПоступлениеТоваров.Форма.ФормаДокумента");
    Кмд = Форма.Команды.ПодменюПечатьОбычное_ПоступлениеТоваровПродажа;  //имя коамнды из ВПФ

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

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