![]() |
![]() |
![]() |
|
Опять внешняя печ.форма | ☑ | ||
---|---|---|---|---|
0
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
|
|||
4
mastodont
07.02.12
✎
08:55
|
Я обычно для отладки делаю у этой обработки форму с реквизитом "ссылканаДокумент" и по сформировать вызываю процедуру печать.
Так отладчиком удобно пользоваться. А уже когда отладил можно и как внешнюю печатную форму подключать. |
|||
5
AndreyZyrianov
08.02.12
✎
11:33
|
Спасибо двум последним ораторам за адекватные ответы.
Верно, что при остановке по ошибке отладчик ловит её во временном файле внешней обработки из папки temp. Ковырять там, собственно, нечего: в обработке лишь одна функция - Печать(), в которой и останавливается отладчик по ошибке на первом же упоминании ... Вот в этот момент и выясняется, что сам реквизит обработки сменил тип на "Строка" и значение его теперь "Реализация". Как такое может быть? Бывало ли у кого? В чем причина? (4) Создал форму с единственным реквизитом на ней - это реквизит обработки "СсылкаНаОбъект" а на кнопку "выполнить" код: а=Печать(); А.Показать(); Работает )) (2) Сейчас попробую другую внешнюю... Может, ещё какие идеи есть? |
|||
6
AndreyZyrianov
08.02.12
✎
12:28
|
Господа, дело было не в бобине...
Просто я неправильно регистрировал внешнюю печатную форму. Нажимал "Заменить файл внешней печатной формы", а надо было, оказывается, "Заменить файл внешней печатной формы для текущей строки". Пинцет. Семь раз надо было-таки отмерить... Закрываем тему. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |