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

Запуск внешнего отчета в интерфейсе

Автор Chop, 01 мар 2023, 10:09

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

Chop

Не могу понять, почему выдает ошибку "Поле объекта необнаружено". Меня попросили добавить открытие внешнего отчета в один из интерфейсов. Я сделал новую кнопку в элементе панели. В общем модуле ПроцедурыИФункции написал вызов процедуры открытия внешних отчетов и обработок (находится в том же общем модуле).

Мой вызов процедуры в общем модуле (далле: процедура вызова):
Процедура ИжУправляющийДиректорОткрытьФ30705() Экспорт
ижЗапуститьОбработку("000000851",Неопределено);
КонецПроцедуры

Сама процедура открытия:
Процедура ижЗапуститьОбработку(КодОбработки,СсылкаНаОбъект) Экспорт
ВнешняяОбработка = Справочники.ВнешниеОбработки.НайтиПоКоду(КодОбработки);
ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = ВнешняяОбработка.ХранилищеВнешнейОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
Если ВнешняяОбработка.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет Тогда
Обработка = ВнешниеОтчеты.Создать(ИмяФайла);
Иначе
Обработка = ВнешниеОбработки.Создать(ИмяФайла);
КонецЕсли;
Форма = Обработка.ПолучитьФорму();
Обработка.СсылкаНаОбъект = СсылкаНаОбъект; //Вот на этой строчке вылазит ошибка
Форма.Открыть();
УдалитьФайлы(ИмяФайла);
КонецПроцедуры

В новую кнопку интерфейса сунул свою процедуру вызова. Сохранил, запустил - а там ошибка.

Стал разбираться:
Взял один из документов, куда дописывал вызов процедуры открытия в формате (далле: процедура документа)
ПроцедурыИФункции.ижЗапуститьОбработку("000000834",Неопределено); она работала и до сих пор работает.

Обратился к процедуре вызова   из процедуры документа - ошибка "Поле объекта необнаружено".
В процедуре вызова    вписал код отчета из процедуры документа - ошибка "Поле объекта необнаружено".
В процедруе документа вписал код отчета из процедуры вызова - ошибка "Поле объекта необнаружено".

Открыл оба внешних отчет напрямую из Предприятия (не через файл открыть, а через список внешних очтетов) - работает.

В чем косяк понять не могу. Полагаю надо как-то процедуру вызова переоформить и вызывать ее из интерфейса как-то иначе, но как это сделать на ум не приходит.

antoneus

На какую строчку ругается-то хоть? И разбираться надо не тыкаясь наугад, а в отладчике.

Afinogen

ну так посмотрите в отладчике что у вас в
"Обработка" создалось

Chop

antoneus, там же написано в комменте в коде. Метод тыка пошел после отладчика, через отладчик я не нашел ошибки

Chop

Afinogen,
ВнешнийОтчетОбъект.Ф30705 в случае с кодом "000000851"
ВнешнийОтчетОбъект.РеестрПриходныхОредеров в случае с кодом "000000834"
с точки зрения отладки все вроде ок, иначе бы я не писал сюда

antoneus

А, не разглядел) В отладчике в переменной Обработка что лежит?

Afinogen

вы отладчиком проходили я так понимаю по коду обработки открытой как внешний файл так?
ну воткните какую проверку перед строчкой которая косячит
хотя бы что то  типа

Сообщить(ТипЗнч(Обработка))

и проверьте что  покажет,обработку конечно сперва в конфигурацию загрузите

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

Chop

antoneus, Прямо над вами ответ на этот вопрос. Может я конечно так себе умею в отладку, но ничего криманального через нее я не нашел

Chop

Afinogen, нет, весь код находится в конфигурации уже, но сейчас попробую с Типом значения. Или я не так вас понял, и вы хотите, чтоб я внешний отчет сделал отчетом в конфигурации?

Chop

Afinogen, хм, сообщает в обоих случаях "Внешний отчет объект: *имя вызываемого отчета*".
Так что с Обработкой его все устраивает наверное...

Теги:

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

Рейтинг@Mail.ru

Поиск