Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 06:42

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

Автор webmastersb, 30 апр 2014, 14:40

0 Пользователей и 1 гость просматривают эту тему.

webmastersb

Добрый день!

Только начинаю изучать 1с на уровне программирования.

Возникла ошибка с внешней печатной формой

Форму делал не на запросах, а через СсылкаНаОбъект. (всвязи с тем, что смотрел видео по созданию формы для версии 8)

Ошибка возникает когда открываю ее уже в 1с предприятие, в конфигураторе при проверке показывает что ошибок не обнаружено.

Вот код:

Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации = Новый Структура;

МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ЗаказКлиента");

ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //возможны варианты - ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов,
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Упаковочный Лист"); //имя под kt обработка зарегистрирована будет в справочнике внешних обработок
ПараметрыРегистрации.Вставить("Версия", "1.1");
ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вставить("Информация", "Дополнительная печатная форма к документу ЗаказКлиента ");

//команды
ТаблицаКоманд = Новый ТаблицаЗначений;
ТаблицаКоманд.Колонки.Добавить("Представление"); //как будет выглядеть описание печ.формы для пользователя
ТаблицаКоманд.Колонки.Добавить("Идентификатор"); //имя нашего макета
ТаблицаКоманд.Колонки.Добавить("Использование"); //ВызовСерверногоМетода
ТаблицаКоманд.Колонки.Добавить("ПоказыватьОповещение"); //Истина
ТаблицаКоманд.Колонки.Добавить("Модификатор"); //ПечатьМХL

НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = "Упаковочный Лист";
НоваяКоманда.Идентификатор = "УпаковочныйЛист"; //Внешняя печатная форма
НоваяКоманда.Использование = "ВызовКлиентскогоМетода"; //здесь можно прописать использование как серверного так и клиентского, отличие в том, что серверный метод будет обращаться к экспортной процедуре из модуля объекта, клиентский - к экспортной процедуре из модуля формы объекта
НоваяКоманда.ПоказыватьОповещение = Истина;
НоваяКоманда.Модификатор = "ПечатьMXL";

ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

Возврат ПараметрыРегистрации;

КонецФункции

Процедура Печать() Экспорт


Процедура Печать() Экспорт


ТабДок = Новый ТабличныйДокумент;

//ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УпаковочныйЛист";

Макет = ПолучитьМакет("УпаковочныйЛист");

СекцияШапка = Макет.ПолучитьОбласть("Шапка");

СекцияТело = Макет.ПолучитьОбласть("Тело");

СекцияПодвал = Макет.ПолучитьОбласть("Подвал");

СекцияЗаголовок = Макет.ПолучитьОбласть("Заголовок");

СекцияСтрока = Макет.ПолучитьОбласть("Строка");

СекцияПодвалТаб = Макет.ПолучитьОбласть("ПодвалТаб");

СекцияШапка.Параметры.Организация = СсылкаНаОбъект.Организация;
СекцияШапка.Параметры.номер = СсылкаНаОбъект.НомерПоДаннымКлиента;
СекцияШапка.Параметры.Дата = СсылкаНаОбъект.Дата;
ТабДок.Вывести("СекцияШапка");

СекцияТело.Параметры.Покупатель = СсылкаНаОбъект.Контрагент;
СекцияТело.Параметры.АдресДоставки = СсылкаНаОбъект.АдресДоставки;
ТабДок.Вывести("СекцияТело");

ТабДок.Вывести("СекцияЗаголовок");

Для каждого СтрТаб из СсылкаНаОбъект.Товары Цикл

ЗаполнитьЗначенияСвойств(СекцияСтрока.Параметры,СтрТаб);
ТабДок.Вывести("СекцияСтрока");

КонецЦикла;

СсылкаНаОбъект = СсылкаНаОбъект.Товары[0];

ТабДок.Вывести("СекцияПодвалТаб");

СекцияТело.Параметры.ОтветственноеЛицо = СсылкаНаОбъект.Автор;
ТабДок.Вывести("СекцияПодвал");

//ТабДок.ОтображатьЗаголовки=Ложь;
//ТабДок.ОтображатьСетку=Ложь;
//ТабДок.ТолькоПросмотр=Истина;

ТабДок.АвтоМасштаб = Истина;


//Возврат ТабДок;
КонецПроцедуры // Печать()

Вывод Возврат ТабДок;
закоментировал, т.к. была ошибка



wise

Цитата: webmastersb от 30 апр 2014, 14:40Возврат ПараметрыРегистрации;

КонецФункции

Процедура Печать() Экспорт


Процедура Печать() Экспорт



ТабДок = Новый ТабличныйДокумент;

а ЗАЧЕМ два раза?? :o
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

webmastersb


wise

ошибка УШЛА??

код расположен в МОДУЛЕ обработки?
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

webmastersb

Цитата: wise от 02 мая 2014, 10:26
ошибка УШЛА??

код расположен в МОДУЛЕ обработки?

Код в модуле объекта
Ошибка осталась, она возникает именно в предпрриятиии, в конфигураторе после провекри ошибок не обнаружено

Besart

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;

Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетЗаказВн") Тогда

ТабличныйДокумент = ПечатьДокумента(МассивОбъектов, ОбъектыПечати);
       
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"СчетЗаказВн",
НСтр("ru = 'Счет на оплату'"),
ТабличныйДокумент,
,
"ПФ_MXL_СчетЗаказВн"
);
КонецЕсли;

КонецПроцедуры


скачайте какую-нибудь ВПФ и посмотрите код

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск