Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Опять внешняя печ.форма

Опять внешняя печ.форма
Я
   AndreyZyrianov
 
07.02.12 - 08:38
Здравствуйте, уважаемые знатоки.
Казалось бы, много раз избитая уже тема, но у меня и правда необычный случай.
Дано:
1С:Предприятие 8.2 (8.2.14.540)
Бухгалтерия предприятия, редакция 2.0 (2.0.32.4)
Режим: Серверный
Документ "РеализацияТоваровУслуг" имеет внешнюю печ.форму: была создана новая внешняя обработка с реквизитом "СсылкаНаОбъект" типа "ДокументСсылка.РеализацияТоваровУслуг", макетом, скопированным из макета "Акт" документа "РеализацияТоваровУслуг" и экспортной функцией "Печать()" - копией функции "ПечатьАктаОбОказанииУслуг()" из модуля документа "РеализацияТоваровУслуг" с заменой слов "ЭтотОбъект" на "СсылкаНаОбъект". Подключил и сразу же получаю:
Не удалось сформировать внешнюю печатную форму!
Значение не является значением объектного типа (Ссылка)
Что интересно: попытался установить точку останова перед первым же упоминанием реквизита "СсылкаНаОбъект" теле функции "Печать()" - не останавливается несмотря на включенную и подключенную отладку.
Далее: "Отладка" - "Остановка по ошибке". Прокатило.
Останавливается на:
    ЗапросШапка.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
и при этом реквизит "СсылкаНаОбъект" имеет тип "Строка" и значение "Реализация"!!!
тип реквизита "СсылкаНаОбъект" пробовал менять на "Строка" - ноль эффекта...

Подскажите, пожалуйста, где у меня ошибка?
 
 
   Гефест
 
1 - 07.02.12 - 08:44
Ты что-то там накопировал бездумно, а мы должны отгадать, в чем ошибка?

Смотри код и разбирайся, где какое значение чему присваивается
   Повелитель
 
2 - 07.02.12 - 08:44
"Что интересно: попытался установить точку останова перед первым же упоминанием реквизита "СсылкаНаОбъект" теле функции "Печать()" - не останавливается несмотря на включенную и подключенную отладку. "
Конечно отладчиком не поймаешь, потомучто это уже другой файл, который храниться в 1с, то есть ты смотришь в ту обработку которую правишь, а вызываешь другую.

Самый простой способ, возьми другую внешнюю обработку этого документа, и пиши в ней, все будет работать.
   Повелитель
 
3 - 07.02.12 - 08:45
(2) Да Кстати если есть желание отладчиком поработать, то эта внешняя форма, на время появляется в папке Temp
   mastodont
 
4 - 07.02.12 - 08:55
Я обычно для отладки делаю у этой обработки форму с реквизитом "ссылканаДокумент" и по сформировать вызываю процедуру печать.
Так отладчиком удобно пользоваться.
А уже когда отладил можно и как внешнюю печатную форму подключать.
   AndreyZyrianov
 
5 - 08.02.12 - 11:33
Спасибо двум последним ораторам за адекватные ответы.
Верно, что при остановке по ошибке отладчик ловит её во временном файле внешней обработки из папки temp. Ковырять там, собственно, нечего: в обработке лишь одна функция - Печать(), в которой и останавливается отладчик по ошибке на первом же упоминании ... Вот в этот момент и выясняется, что сам реквизит обработки сменил тип на "Строка" и значение его теперь "Реализация". Как такое может быть? Бывало ли у кого? В чем причина?

(4) Создал форму с единственным реквизитом на ней - это реквизит обработки "СсылкаНаОбъект" а на кнопку "выполнить" код:
а=Печать();
А.Показать();

Работает )) 

(2) Сейчас попробую другую внешнюю...

Может, ещё какие идеи есть?
   AndreyZyrianov
 
6 - 08.02.12 - 12:28
Господа, дело было не в бобине...
Просто я неправильно регистрировал внешнюю печатную форму.
Нажимал "Заменить файл внешней печатной формы", а надо было, оказывается, "Заменить файл внешней печатной формы для текущей строки".
Пинцет. Семь раз надо было-таки отмерить...
Закрываем тему.

Список тем форума
  Рекламное место пустует
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует