Метод объекта не обнаружен(Печать)

Новая тема
Конфигурация Альфа-Авто 4.1. Внешняя печатная форма. В качестве макета - документ Word. В модуле обработки описана функция Печать() Экспорт. и в ней написано "возврат неопределено". А перед этим код, вызывающий вордовский макет, заполняющий его и активизурующий. В документе при попытке напечатать - сообщение "Обработчик печатной формы БланкНаСервис (внешняя): {Справочник.ВнешниеПечатныеФормы(100)}: Метод объекта не обнаружен (Печать)". Подскажите, пожалуйста, в чем может быть дело.
up
Платформа не 8.2 случайно?
8.1
Может выложите текст модуля этой обработки?
"Функция Печать(ДокументОбъект, ТабДокумент) Экспорт
   ДокументОбъект = СсылкаНаОбъект;
   ТабДокумент = неопределено;
////////////////////////////////////////////////////////­////////////////////
   ДатаОбращ = СокрЛП(Строка(Формат(СсылкаНаОбъект.Дата, "ДФ=dd.MM.yyyy")));
   ДатаПост = СокрЛП(Строка(Формат(СсылкаНаОбъект.ДатаНачала, "ДФ=dd.MM.yyyy")));
   ФИО =  СокрЛП(Строка(СсылкаНаОбъект.Заказчик));
   Авто = СокрЛП(Строка(СсылкаНаОбъект.Автомобиль));
   
   //Пробег
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    АвтомобилиСрезПоследних.Значение
                  |ИЗ
                  |    РегистрСведений.Автомобили.СрезПоследних КАК АвтомобилиСрезПоследних
                  |ГДЕ
                  |    АвтомобилиСрезПоследних.Автомобиль = &Авто
                  |    И АвтомобилиСрезПоследних.ВидЗначения = &Пробег";
   Запрос.УстановитьПараметр("Авто", СсылкаНаОБъект.Автомобиль);
   Запрос.УстановитьПараметр("Пробег", Перечисления.ДополнительнаяИнформацияАвтомобилей.Пробег);
   Результат = Запрос.Выполнить().Выбрать();
   Пока Результат.Следующий() Цикл
       Пробег = СокрЛП(Строка(Результат.Значение));
   КонецЦикла;
   ГодВып = СокрЛП(Строка(СсылкаНаОбъект.Автомобиль.ГодВыпуска));
   Причина = СокрЛП(СсылкаНаОбъект.ПричинаОбращения);
   
   //История
   Запрос = Новый Запрос;
   //Это последний заказ-наряд
   Запрос.Текст = "ВЫБРАТЬ
                  |    ЗаказНаряд.Ссылка,
                  |    МАКСИМУМ(ЗаказНаряд.Дата) КАК Дата
                  |ИЗ
                  |    Документ.ЗаказНаряд КАК ЗаказНаряд
                  |ГДЕ
                  |    ЗаказНаряд.Автомобиль = &авто
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ЗаказНаряд.Ссылка";
   Запрос.УстановитьПараметр("авто", ссылканаобъект.Автомобиль);
   Результат = Запрос.Выполнить().Выбрать();
   Пока Результат.Следующий() Цикл
       ПослЗаказСсылка = Результат.Ссылка;
   КонецЦикла;
   История = """";
   
   Если НЕ ПослЗаказСсылка.Пустая() тогда
       //Если последнее было ТО
       Если ПослЗаказСсылка.ВидРемонта = Справочники.ВидыРемонта.НайтиПоКоду("ЦБ000004") тогда
           История = СокрЛП(Строка(ПослЗаказСсылка.ВидРемонта)) + " от " +
           СокрЛП(Строка(Формат(ПослЗаказСсылка.Дата, "ДФ=dd.MM.yyyy")))+ ". Рекомендации: " +
           СокрЛП(ПослЗАказСсылка.Рекомендации);
       //Если последнее не ТО    
       Иначе
           //Что делали последним
           ПослИстория = """";
           ПослИстория = СокрЛП(Строка(ПослЗаказСсылка.ВидРемонта)) + " от " +
           СокрЛП(Строка(Формат(ПослЗаказСсылка.Дата, "ДФ=dd.MM.yyyy")))+ ". Рекомендации: " +
           СокрЛП(ПослЗАказСсылка.Рекомендации);

           //Найти последнее ТО
           Запрос = Новый Запрос;
           //Это последний заказ-наряд
           Запрос.Текст = "ВЫБРАТЬ
                      |    ЗаказНаряд.Ссылка,
                      |    МАКСИМУМ(ЗаказНаряд.Дата) КАК Дата
                      |ИЗ
                      |    Документ.ЗаказНаряд КАК ЗаказНаряд
                      |ГДЕ
                      |    ЗаказНаряд.Автомобиль = &авто И ЗаказНаряд.ВидРемонта = &ВидРемонта
                      |
                      |СГРУППИРОВАТЬ ПО
                      |    ЗаказНаряд.Ссылка";
           Запрос.УстановитьПараметр("авто", ссылканаобъект.Автомобиль);
           Запрос.УстановитьПараметр("ВидРемонта", Справочники.ВидыРемонта.НайтиПоКоду("ЦБ000004"));
           Результат = Запрос.Выполнить().Выбрать();
           Пока Результат.Следующий() Цикл
               ПослЗаказСсылка = Результат.Ссылка;
           КонецЦикла;
           Если НЕ ПослЗаказСсылка.Пустая() тогда
               История = СокрЛП(Строка(ПослЗаказСсылка.ВидРемонта)) + " от " +
               СокрЛП(Строка(Формат(ПослЗаказСсылка.Дата, "ДФ=dd.MM.yyyy")))+ ". Рекомендации: " +
               СокрЛП(ПослЗАказСсылка.Рекомендации)+ "; " + ПослИстория;
           Иначе
               История = ПослИстория;
           КонецЕсли;
       КонецЕсли;
   КонецЕсли;
   
   // Установленное дополнительное оборудование
   СписокВидов = Новый Массив;
   СписокВидов.Добавить(СПравочники.ВидыРемонта.ДополнительноеОборудование);
   СписокВидов.Добавить(Справочники.ВидыРемонта.КомплектацияАвтомобиля);
   СписокВидов.Добавить(Справочники.ВидыРемонта.НайтиПоКоду("ЦБ000005"));
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ЗаказНарядТовары.Номенклатура
                  |ИЗ
                  |    Документ.ЗаказНаряд.Товары КАК ЗаказНарядТовары
                  |ГДЕ
                  |    ЗаказНарядТовары.Ссылка В
                  |            (ВЫБРАТЬ
                  |                ЗаказНаряд.Ссылка КАК Ссылка
                  |            ИЗ
                  |                Документ.ЗаказНаряд КАК ЗаказНаряд
                  |            ГДЕ
                  |                ЗаказНаряд.Автомобиль = &авто
                  |                И ЗаказНаряд.ВидРемонта В (&СписокВидов))";
   Запрос.УстановитьПараметр("СписокВидов", СписокВидов);
   Запрос.УстановитьПараметр("Авто", СсылкаНаОбъект.Автомобиль);
   Результат = Запрос.Выполнить().Выбрать();
   ДопОборуд = """";
   счетчик = 1;
   Пока Результат.Следующий() Цикл
       Если счетчик = 1 тогда
           ДопОборуд = СокрЛП(Строка(Результат.Номенклатура)) + "; ";
           счетчик = счетчик + 1;
       Иначе
            ДопОборуд = ДопОборуд + СокрЛП(Строка(Результат.Номенклатура)) + "; ";
       КонецЕсли;
   КонецЦикла;
   
   //Дополнительные Услуги
   ДопУслуги = """";
   Если СсылкаНаОбъект.ДопМойкаТехнологическая = Перечисления.ОтветДопРаботы.Да тогда
       ДопУслуги = "Технологическая мойка; ";
   КонецЕсли;
   Если СсылкаНаОбъект.ДопМойкаПолностью = Перечисления.ОтветДопРаботы.Да тогда
       ДопУслуги = ДопУслуги + "мойка полностью; ";
   КонецЕсли;
   Если СсылкаНаОбъект.ДопМойкаДвигатель = Перечисления.ОтветДопРаботы.Да тогда
       ДопУслуги = ДопУслуги + "мойка двигателя; ";
   КонецЕсли;
   Если СсылкаНаОбъект.ДопМойкаСверху = Перечисления.ОтветДопРаботы.Да тогда
       ДопУслуги = ДопУслуги + "мойка сверху; ";
   КонецЕсли;
   Если СсылкаНаОбъект.ДопАвтонабор = Перечисления.ОтветДопРаботы.Да тогда
       ДопУслуги = ДопУслуги + "автонабор; ";
   КонецЕсли;
   Если СсылкаНаОбъект.ДопБалансировкаКолес = Перечисления.ОтветДопРаботы.Да тогда
       ДопУслуги = ДопУслуги + "балансировка колес; ";
   КонецЕсли;
   Если СсылкаНаОбъект.ДопБрызговики = Перечисления.ОтветДопРаботы.Да тогда
       ДопУслуги = ДопУслуги + "брызговики; ";
   КонецЕсли;
   Если СсылкаНаОбъект.ДопДиагностическийСтенд = Перечисления.ОтветДопРаботы.Да тогда
       ДопУслуги = ДопУслуги + "диагностический стенд; ";
   КонецЕсли;
   Если СсылкаНаОбъект.ДопКоврыВБагажник = Перечисления.ОтветДопРаботы.Да тогда
       ДопУслуги = ДопУслуги + "ковры в багажник; ";
   КонецЕсли;
    Если СсылкаНаОбъект.ДопКоврыВСалон = Перечисления.ОтветДопРаботы.Да тогда
       ДопУслуги = ДопУслуги + "ковры в салон; ";
   КонецЕсли;
   Если СсылкаНаОбъект.ДопКомплектЛамп = Перечисления.ОтветДопРаботы.Да тогда
       ДопУслуги = ДопУслуги + "комплект ламп; ";
   КонецЕсли;
   Если СсылкаНаОбъект.ДопПредложениеВременногоРешения = Перечисления.ОтветДопРаботы.Да тогда
       ДопУслуги = ДопУслуги + "предложение временного решения; ";
   КонецЕсли;
   Если СсылкаНаОбъект.ДопЩетки = Перечисления.ОтветДопРаботы.Да тогда
       ДопУслуги = ДопУслуги + "щетки; ";
   КонецЕсли;


////////////////////////////////////////////////////////­//////////////    
   АктивныйДокумент = ПолучитьМакет("БланкНаСервис");
   Документ = АктивныйДокумент.Получить();
   Документ.Content.Find.Execute("<датаобращ>", Ложь, Истина, Ложь, , , Истина, , Ложь, ДатаОбращ);
   Документ.Content.Find.Execute("<датапост>", Ложь, Истина, Ложь, , , Истина, , Ложь, ДатаПост);
   Документ.Content.Find.Execute("<фио>", Ложь, Истина, Ложь, , , Истина, , Ложь, фио);
   Документ.Content.Find.Execute("<авто>", Ложь, Истина, Ложь, , , Истина, , Ложь, авто);
   Документ.Content.Find.Execute("<пробег>", Ложь, Истина, Ложь, , , Истина, , Ложь, пробег);
   Документ.Content.Find.Execute("<годвып>", Ложь, Истина, Ложь, , , Истина, , Ложь, годвып);
   Документ.Content.Find.Execute("<причина>", Ложь, Истина, Ложь, , , Истина, , Ложь, причина);
   Документ.Content.Find.Execute("<история>", Ложь, Истина, Ложь, , , Истина, , Ложь, история);
   Документ.Content.Find.Execute("<допоборуд>", Ложь, Истина, Ложь, , , Истина, , Ложь, ДопОборуд);
   Документ.Content.Find.Execute("<допуслуги>", Ложь, Истина, Ложь, , , Истина, , Ложь, ДопУслуги);
   Документ.Application.Visible = Истина;
   Документ.Activate();
       
   Возврат ТабДокумент;
КонецФункции // Печать"
> Функция Печать(ДокументОбъект, ТабДокумент) Экспорт
Именно в этом дело.
Ищется и вызывается:

Функция Печать () Экспорт
...
КонецФункции
Конфигурация Альфа Авто. Разработчики на сайте раруса советуют делать именно через два параметра, как написано у меня.
В Альфа-Авто вроде бы есть возможность держать обработку во внешнем файле, а не размещать ее в реквизите справочника как хранилище значения. Поэтому можно "прогнать" отладчиком и посмотреть у какого вообще объекта программа пытается найти метод "Печать".
все верно, спасибо, прогнал и вычислил что ссылку на объект надо вставлять сразу же в печать, т.е. печать(ссылканаобъект, табдокумент)
Читают тему
(гостей: 1)

Быстрый переход