Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 16:48

Как распечатать СКД отчёт?

Автор keramik, 24 июл 2015, 14:30

0 Пользователей и 1 гость просматривают эту тему.

keramik

Добрый день, 1С 8.2, "Управление торговлей", редакция 10.3 (10.3.7.9).

Собственно, вопрос в заголовке темы. Как распечатать результат работы отчёта, созданного в СКД?
Подскажите, пожалуйста, в какую сторону двигаться? Я пробовал взять готовую процедуру из стандартного УниверсальногоОтчёта:

Процедура ФормаПечать(Объект, Отчет, Форма) Экспорт

Форма.ЭлементыФормы[мИмяЭлементаУправленияПолеТабличногоДокументаРезультат].Напечатать(Ложь);

КонецПроцедуры // ФормаПечать()


записал её в модуль объекта, на кнопу из формы повесил процедуру:

Процедура КоманднаяПанельФормыПечать(Кнопка)

ФормаПечать(ЭтотОбъект, ЭтаФорма);

КонецПроцедуры // КоманднаяПанельФормыПечать()


Но в результате появляется сообщение "Недостаточно фактических параметров" и отправляет в конфигуратор "КоманднаяПанельФормыПечать", указывая на ФормаПечать.

dvm

Цитата: keramik от 24 июл 2015, 14:30
Добрый день, 1С 8.2, "Управление торговлей", редакция 10.3 (10.3.7.9).

Собственно, вопрос в заголовке темы. Как распечатать результат работы отчёта, созданного в СКД?
Подскажите, пожалуйста, в какую сторону двигаться? Я пробовал взять готовую процедуру из стандартного УниверсальногоОтчёта:

Процедура ФормаПечать(Объект, Отчет, Форма) Экспорт

Форма.ЭлементыФормы[мИмяЭлементаУправленияПолеТабличногоДокументаРезультат].Напечатать(Ложь);

КонецПроцедуры // ФормаПечать()


записал её в модуль объекта, на кнопу из формы повесил процедуру:

Процедура КоманднаяПанельФормыПечать(Кнопка)

ФормаПечать(ЭтотОбъект, ЭтаФорма);

КонецПроцедуры // КоманднаяПанельФормыПечать()


Но в результате появляется сообщение "Недостаточно фактических параметров" и отправляет в конфигуратор "КоманднаяПанельФормыПечать", указывая на ФормаПечать.
Исполняете отчет, меню "файл" - печать

keramik

А чтобы кнопка "Распечатать" в самой форме отчёта была? Так хочу сделать.
Добавлено: 24 июл 2015, 21:57


Изменил процедуру, выглядит так:

Процедура КоманднаяПанельФормыПечать(Кнопка)
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("ЗаявкаНаРемонт_СКД");
ТабДок.Напечатать()

КонецПроцедуры

но теперь появляется сообщение "Нет информации для вывода на печать". Как правильно задать обход выводимого на экран отчёта?

Дмитрий@

ПолученнаяОбласть = Макет.ПолучитьОбласть(НазваниеОбласти);
ТабДок.Вывести(ПолученнаяОбласть);

keramik

Процедура выглядит так:


Процедура КоманднаяПанельФормыПечать(Кнопка)
    ТабДок = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("ЗаявкаНаРемонт_СКД");
    ПолученнаяОбласть = Макет.Области;
    ТабДок.Вывести(ПолученнаяОбласть);
    ТабДок.Напечатать();
КонецПроцедуры


но появляется сообщение, "Поле объекта не обнаружено (Области)".
Добавлено: 27 июл 2015, 08:21


Порылся в интернете, видоизменил процедуру и сам макет отчёта. Добавил в СКД отчёт в раздел "Макет" область "Заголовок" (скрин в приложении), а в процедуре прописал следующее:

Процедура КоманднаяПанельФормыПечать(Кнопка)
    ТабДок = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("ЗаявкаНаРемонт_СКД");
    ПолученнаяОбласть = Макет.ПолучитьОбласть("Заголовок");
    ТабДок.Вывести(ПолученнаяОбласть);
КонецПроцедуры

теперь появляется сообщение, что "Метод объекта не обнаружен(ПолучитьОбласть)".

cska-fanat-kz

конфига своя или типовая?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

keramik

Типовая, но до меня её изменяли. Добавляли таблицы/отчёты и т.д.

Дмитрий@

Судя по картинке "ЗаявкаНаРемонт_СКД" это отчет а не макет. Макет внутри скд он предназначен немного для других целей.
Вам нужно создать макет в дереве отчета-> макет, и выбрать вид Табличный документ.
Добавлено: 27 июл 2015, 13:16


Либо вам нужно что-то другое что мы пока не поняли?
Добавлено: 27 июл 2015, 13:25


Насколько я понимаю у вас создан объект метаданных отчет, создан макет тип СКД, в скд есть некоторый запрос. И у отчета в свойстве "Основная компоновка данных" выбран этот макет.
Объект.СкомпоноватьРезультат(<Результат>, <ИнформацияРасшифровки>)

keramik

Расскажу всё по порядку, а то путаю вас из-за недостатка знаний:
1. я создал отчёт в разделе конфигурации "Отчеты";
2. в нём я создал макет СКД;
3. в этом макете я запросом выбираю некоторые данные из таблиц;
4. затем я создал форму в отчёте, чтобы дать пользователю возможность указывать даты "с... по...";
4. теперь я пробую вывести данные на печать.

Kironten

Выносите всего лишь параметры для доступа на форму, форму сами не создавайте. Тогда у Вас все будет, и параметры для редактирования на форме и кнопка печати, созданная самой платформой.

Похожие темы (5)

Рейтинг@Mail.ru

Поиск