Метод объекта не обнаружен(Печать)
19.05.2011
17:46
#1
Конфигурация Альфа-Авто 4.1. Внешняя печатная форма. В качестве макета - документ Word. В модуле обработки описана функция Печать() Экспорт. и в ней написано "возврат неопределено". А перед этим код, вызывающий вордовский макет, заполняющий его и активизурующий. В документе при попытке напечатать - сообщение "Обработчик печатной формы БланкНаСервис (внешняя): {Справочник.ВнешниеПечатныеФормы(100)}: Метод объекта не обнаружен (Печать)". Подскажите, пожалуйста, в чем может быть дело.
20.05.2011
10:42
#6
"Функция Печать(ДокументОбъект, ТабДокумент) Экспорт
ДокументОбъект = СсылкаНаОбъект;
ТабДокумент = неопределено;
//////////////////////////////////////////////////////// ////////////////////
ДатаОбращ = СокрЛП(Строка(Формат(СсылкаНаОбъект.Дата, "ДФ=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();
Возврат ТабДокумент;
КонецФункции // Печать"
ДокументОбъект = СсылкаНаОбъект;
ТабДокумент = неопределено;
////////////////////////////////////////////////////////
ДатаОбращ = СокрЛП(Строка(Формат(СсылкаНаОбъект.Дата, "ДФ=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();
Возврат ТабДокумент;
КонецФункции // Печать"
20.05.2011
10:44
#7
> Функция Печать(ДокументОбъект, ТабДокумент) Экспорт
Именно в этом дело.
Ищется и вызывается:
Именно в этом дело.
Ищется и вызывается:
Функция Печать () Экспорт
...
КонецФункции
20.05.2011
10:47
#8
Конфигурация Альфа Авто. Разработчики на сайте раруса советуют делать именно через два параметра, как написано у меня.
Читают тему
(гостей: 1)