8.х Получить макет отчета

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем sokrat, 23 дек 2010.

  1. TopicStarter Overlay
    sokrat
    Offline

    sokrat

    Регистрация:
    18 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Суть.

    Есть документ, у него есть свои печатные формы - которые можно получить через нажатие кнопки "Печать", среди стандартных форм есть один самописный отчетик. Как узнать какой это отчет, какой это макет?

    Печать происходит через стандартную процедурину

    Код:
    // Процедура устанавливает подменю "Печать" и кнопку "Печать по умолчанию" при необходимости
    //
    Процедура УстановитьКнопкиПечати()
    
    мДеревоМакетов = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(Ссылка, ПолучитьСтруктуруПечатныхФорм(), Новый Действие("ОсновныеДействияФормыПечать"), Новый Действие("ОсновныеДействияФормыУстановитьПечатьПоУмолчанию"));
    
    УниверсальныеМеханизмы.УстановитьПодменюПечати    (мПодменюПечати, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов.Строки.Количество() > 0);
    УниверсальныеМеханизмы.УстановитьПечатьПоУмолчанию(мПечатьПоУмолчанию, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов, Метаданные().Имя,Новый Действие("ОсновныеДействияФормыПечатьПоУмолчанию"));
    
    Если Не мПодменюПечати = Неопределено Тогда
    УниверсальныеМеханизмы.СформироватьПодменю(мДеревоМакетов, мПодменюПечати,Истина,Истина);
    КонецЕсли;
    
    КонецПроцедуры
    
    
    
    // Процедура - обработчик нажатия на кнопку "Печать"
    //
    Процедура ОсновныеДействияФормыПечать(Кнопка)
    
    УниверсальныеМеханизмы.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст);
    
    КонецПроцедуры
    
    
    
    
    И как можно узнать какой именно отчет прицеплен к этому ДеревуМакетов
  2. Diego
    Offline

    Diego Любитель 1С Команда форума

    Регистрация:
    3 апр 2009
    Сообщения:
    966
    Симпатии:
    2
    Баллы:
    29
    В стандартных конфигурациях сделано так:
    В модуле документа в функции ПолучитьСтруктуруПечатныхФорм() Экспорт
    задается список печатных форм, которые Вы видите при нажатии кнопки Печать

    Например кусок из реализации:

    Код:
    СтруктПечатныхФорм.Вставить( "ТОРГ12",          "ТОРГ-12 (Товарная накладная с услугами)");
    СтруктПечатныхФорм.Вставить( "ТОРГ12_БезУслуг", "ТОРГ-12 (Товарная накладная)");
    
    Здесь ТОРГ12 - переменная ИмяМакета

    Далее в процедуре Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
    в зависимости от ИмяМакета выполняется соответствующая функция по формированию печатной формы.И уже в этой функции указывается имя печатной формы.
  3. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Или это может быть внешняя печатная форма. Тогда процедура печати и макет находятся в отдельном файле внешней обработки.
    В справочнике "Внешние обработки" можно посмотреть.
  4. TopicStarter Overlay
    sokrat
    Offline

    sokrat

    Регистрация:
    18 окт 2010
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    И тем и тем БОЛЬШОЕ человеческое спасибо - действительно что это оказалась внешняя печатная форма.

Поделиться этой страницей