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

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

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