Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
09 апр 2025, 13:56

Нужна помощь, внешний отчет не хочет работать

Автор Shaaan, 01 фев 2017, 14:10

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

Shaaan

Приветствую программисты 1С, мне нужна ваша помощь.
Я на данный момент работаю над курсовой работой, тема связана с замером производительности, и для этого я нашел в сети отличный пример отчета, который долго воспроизводится.
Вот как код выглядел изначально.
Процедура КнопкаСформироватьНажатие(Кнопка) Макет = ПолучитьМакет("Макет"); ТабДок = Новый ТабличныйДокумент; Для К = 0 По 10000 Цикл Область = Макет.ПолучитьОбласть("Строка"); Область.Параметры.Наименование = "Продукт" + К; Область.Параметры.Сумма = 1000; ТабДок.Вывести(Область); КонецЦикла; ТабДок.Показать(); КонецПроцедуры
И при компиляции выдавал такую ошибку
ЦитироватьПроцедура или функция с указанным именем не определена (ПолучитьМакет) Макет = <<?>>ПолучитьМакет("Макет")
Погуглив немного, я нашел ответ, изменил слегка код
Процедура КнопкаСформироватьНажатие(Кнопка) Макет = ЭтотОбъект.ПолучитьМакет("Макет"); ТабДок = Новый ТабличныйДокумент; Для К = 0 По 10000 Цикл Область = Макет.ПолучитьОбласть("Строка"); Область.Параметры.Наименование = "Продукт" + К; Область.Параметры.Сумма = 1000; ТабДок.Вывести(Область); КонецЦикла; ТабДок.Показать(); КонецПроцедуры
Ошибку перестал выдавать, но теперь появилась новая ошибка при нажатии кнопки "Сформировать"

Kironten


Shaaan

Цитата: Kironten от 01 фев 2017, 14:18
Покажите реквизиты отчета
Реквизиты отсутствуют, так как они не используются в отчете

alex0402

может это из-за того, что слишком большой макет.
Для теста перед Показать() можно вызвать Очистить()
Спасибо за Сказать спасибо

Shaaan

Цитата: alex0402 от 01 фев 2017, 14:31
может это из-за того, что слишком большой макет.
Для теста перед Показать() можно вызвать Очистить()
в макете используется только две ячейки, команду Очистить() вставил, но безрезультатно

Kironten

Если пытаешься, повесить это на стандартную кнопку "сформировать", то надо прописываться в "ПриКомпоновкеРезультата" в модуле отчета.

alex0402

Это управляемая форма на сервере нельзя показать макет. Нужно вернуть на клиента и там показать

&НаКлиенте Процедура КнопкаСформироватьНажатие()     СформироватьМакет().Показать(); КонецПроцедуры &НаСервере Функция СформироватьМакет()         Макет = ЭтотОбъект.ПолучитьМакет("Макет");        ТабДок = Новый ТабличныйДокумент;         Для К = 0 По 10000 Цикл         Область = Макет.ПолучитьОбласть("Строка");         Область.Параметры.Наименование = "Продукт" + К;         Область.Параметры.Сумма = 1000;         ТабДок.Вывести(Область);     КонецЦикла;         Возврат ТабДок;     КонецФункции
Спасибо за Сказать спасибо

Kironten

Цитата: alex0402 от 01 фев 2017, 14:56
    СформироватьМакет().Показать();
Косяк будет - обращение к функции как к процедуре.

Цитата: alex0402 от 01 фев 2017, 14:56
Это управляемая форма на сервере нельзя показать макет. Нужно вернуть на клиента и там показать
Она ругается не на это. В таком случае ругалось бы на отсутствие метода.

LexaK

сам отчет прикрепите/вложите, посмотрим
если помогло нажмите: Спасибо!

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

Рейтинг@Mail.ru

Поиск