[РЕШЕНО] УФ Печать из внешнего отчета

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

  1. TopicStarter Overlay
    sagitt
    Offline

    sagitt Опытный в 1С

    Регистрация:
    13 сен 2008
    Сообщения:
    115
    Симпатии:
    0
    Баллы:
    26
    Попробовал написать внешний отчет для БП3.0.
    И столкнулся с проблемой; не могу получить макет.
    Как везде написано
    Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет(ИмяМакета);
    не работает: выдает ошибку. Может быть потому, что я запускаю свой отчет непосредственно из файла на диске.

    Обратиться из УФ к процедуре в модуле объекта(отчета) тоже не получается, хотя у процедуры ставил "Экспорт".

    Растолкуйте же мне 1. можно ли все-таки печатать из внешнего отчета?
    2. Если можно, то как это сделать практически. Может есть какой-то простой пример, буду весьма признателен.
  2. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.767
    Симпатии:
    509
    Баллы:
    204
  3. 1cUserAndrew
    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Основной реквизит формы (выделен жирным) посмотрите, как называется. Его и нужно передавать в параметр метода "РеквизитФормыВЗначение()".
    В отчетах по умолчанию он называется "Отчет". Поэтому попробуйте так:
    Код:
    Макет = РеквизитФормыВЗначение("Отчет").ПолучитьМакет(ИмяМакета);
    sagitt нравится это.
  4. TopicStarter Overlay
    sagitt
    Offline

    sagitt Опытный в 1С

    Регистрация:
    13 сен 2008
    Сообщения:
    115
    Симпатии:
    0
    Баллы:
    26
    Большое спасибо. Коротко и ясно!

    Но поясните пожалуйста еще про обращение к функциям модуля объекта.
    Правильно ли я понял, что чтобы обратиться к функции модуля объекта тоже придется писать
    РеквизитФормыВЗначение("Отчет").ФункцияМодуляОбъекта()

    Неужели нет возможности обратиться напрямую?
  5. 1cUserAndrew
    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Да, придется.
    Напрямую нельзя.

    В отличии от обычных форм в модуле управляемой формы нет контекста самого объекта.
    Если еще раз посмотрите на тип данных основного реквизита формы, то увидите, что он взят в скобки. Это означает, что это не ОтчетОбъект как таковой, а некое его представление в управляемой форме (специальный тип ДанныеФормыСтруктура).
    Соответственно, чтобы обратиться в модуль объекта, необходимо этот тип преобразовать в тип "ОтчетОбъект", что Вы и делаете с помощью метода "РеквизитФормыВЗначение()".
    sagitt нравится это.
  6. TopicStarter Overlay
    sagitt
    Offline

    sagitt Опытный в 1С

    Регистрация:
    13 сен 2008
    Сообщения:
    115
    Симпатии:
    0
    Баллы:
    26
    Спасибо. Я думал что что-то не знаю/ недопонимаю.

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