8.х ВПФ

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Yujin, 6 дек 2012.

  1. TopicStarter Overlay
    Yujin
    Offline

    Yujin

    Регистрация:
    5 июл 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Проблема в следующем во время отладки ругается не на внешнию форму, а ссылается на типовую конфу о обработке внешней печатной формы. Пишет слишком много фактических параметров в модуле. Сами строкикода:
    Код:
    Попытка
    ТабДокумент = ВнешниеОбработки.Создать(ИмяФайлаПечатнойФормы).Печать(ДокументОбъект,ТабДокумент);
    Исключение
    ТабДокумент = ВнешниеОтчеты.Создать(ИмяФайлаПечатнойФормы).Печать(ДокументОбъект,ТабДокумент);
    КонецПопытки;
    
    В 1С8.2 выдает следующие:
    Обработчик печатной формы 321 (внешняя): {Справочник.ВнешниеПечатныеФормы.МодульОбъекта(100)}: Метод объекта не обнаружен (Печать)

    Пытаюсь перенести печатную форму из конфигурации во внешнию.
    Так как ругалось на переменую ТабДокумент, добавил СсылкаНаОбъект.ТабДокумент. СсылкаНаОбъект - реквизит на нужный документ.
    СсылкаНаОбъект добавилась на каждую переменую, которая была не опредилена.
    И приведу весь код на всяк случай:
    Код:
    Функция Печать()Экспорт	//ДоговорПродажи
    
    ВалютаПечатногоДокумента = зфВыборВалютыПечатногоДокумента(СсылкаНаОбъект);
    Если ВалютаПечатногоДокумента = Неопределено Тогда Возврат Неопределено; КонецЕсли;
    
    //пересчитаем ТЧ
    
    ТаблицаОборудования = СсылкаНаОбъект.СсылкаНаОбъект.Опции.Выгрузить();
    зфПерерасчетТаблицыТоваров(ТаблицаОборудования, СсылкаНаОбъект, ВалютаПечатногоДокумента);
    ТаблицаТоваров = СсылкаНаОбъект.Товары.Выгрузить();
    зфПерерасчетТаблицыТоваров(ТаблицаТоваров, СсылкаНаОбъект, ВалютаПечатногоДокумента);
    
    НомерДляПечати=дкПолучитьНомерДляПечати(СсылкаНаОбъект);
    
    //макет
    Макет = ПолучитьМакет("ДоговорПродажи");
    //заголовок документа
    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Параметры.НомерДоговора = НомерДляПечати;
    ОбластьМакета.Параметры.ДатаДоговора = Формат(СсылкаНаОбъект.Дата,"ДФ=dd.MM.yyyy");
    
    ОбластьМакета.Параметры.ПредставлениеОрганизации = спПолучитьНаименование(СсылкаНаОбъект.Организация);
    ОбластьМакета.Параметры.ФирмаАдрес = киПолучитьПредставлениеКИ(СсылкаНаОбъект.Организация,Справочники.ВидыКонтактнойИнформации.АдресЮридический);
    ОбластьМакета.Параметры.ФирмаТелефоны = киПолучитьПредставлениеКИ(СсылкаНаОбъект.Организация,Справочники.ВидыКонтактнойИнформации.ТелефонРабочий);
    
    ОбластьМакета.Параметры.ЗаказчикПолноеНаименование = спПолучитьНаименование(СсылкаНаОбъект.Заказчик);
    ОбластьМакета.Параметры.ЗаказчикПочтовыйАдрес = киПолучитьПредставлениеКИ(СсылкаНаОбъект.Заказчик,Справочники.ВидыКонтактнойИнформации.АдресПочтовый);
    ОбластьМакета.Параметры.ЗаказчикТелефоны = киПолучитьПредставлениеКИ(СсылкаНаОбъект.Заказчик,Справочники.ВидыКонтактнойИнформации.ТелефонКонтактный);
    
    Запрос = Новый Запрос;
    Запрос.Текст = "
    |ВЫБРАТЬ
    | ПодтверждающиеДокументы.Ссылка КАК Документ,
    | ПодтверждающиеДокументы.КемВыдан КАК ДокументКемВыдан,
    | ПодтверждающиеДокументы.ДатаВыдачи КАК ДокументДатаВыдачи,
    | ПодтверждающиеДокументы.ВидПодтверждающегоДокумента КАК ВидДокумента
    |ИЗ
    | Справочник.ПодтверждающиеДокументы КАК ПодтверждающиеДокументы
    |ГДЕ
    | ПодтверждающиеДокументы.Владелец = &Владелец
    | И ПодтверждающиеДокументы.Текущий = ИСТИНА
    |";
    Запрос.УстановитьПараметр("Владелец", СсылкаНаОбъект.Заказчик);
    ВыборкаДокументов = Запрос.Выполнить().Выбрать();
    Если ВыборкаДокументов.Количество()=0 Тогда
    ОбластьМакета.Параметры.ЗаказчикДокумент	= "_________________";
    ОбластьМакета.Параметры.ЗаказчикДокументКемВыдан  = "___________";
    ОбластьМакета.Параметры.ЗаказчикДокументДатаВыдачи  = "___________";
    Иначе
    ВыборкаДокументов.Следующий();
    ОбластьМакета.Параметры.ЗаказчикДокумент	= Строка(ВыборкаДокументов.ВидДокумента) + ": " + ВыборкаДокументов.Документ;
    ОбластьМакета.Параметры.ЗаказчикДокументКемВыдан  = ВыборкаДокументов.ДокументКемВыдан;
    ОбластьМакета.Параметры.ЗаказчикДокументДатаВыдачи  = Формат(ВыборкаДокументов.ДокументДатаВыдачи,"ДФ='dd MMMM yyyy'");
    КонецЕсли;
    
    Руководитель = дкОтветственноеЛицо(СсылкаНаОбъект,Перечисления.ВидыОбъектовСведений.Руководитель);
    ОбластьМакета.Параметры.РуководительДолжность   = Руководитель.РуководительДолжность;
    ОбластьМакета.Параметры.РуководительПредставление  = Руководитель.РуководительПредставление;
    
    СуммаПредоплатыПечать=обПересчет(СсылкаНаОбъект.СуммаПредоплаты,СсылкаНаОбъект.ВалютаДокумента,СсылкаНаОбъект.Дата,ВалютаПечатногоДокумента,СсылкаНаОбъект.Дата,РежимОкругления.Окр15как20);
    ОбластьМакета.Параметры.СуммаПредоплаты   = СуммаПредоплатыПечать;
    ОбластьМакета.Параметры.СуммаПредоплатыПрописью = обЧислоПрописью(СуммаПредоплатыПечать,ВалютаПечатногоДокумента);
    //ОбластьМакета.Параметры.ВалютаДокумента   = ВалютаПечатногоДокумента;
    ОбластьМакета.Параметры.СрокПоставки	  = Формат(СсылкаНаОбъект.СрокПоставки,"ДФ=dd MMMM yyyy");
    ОбластьМакета.Параметры.ПредставлениеАвтомобиля = " модель """+спПолучитьНаименование(СсылкаНаОбъект.Модель)+?(обЗначениеНеЗаполнено(СсылкаНаОбъект.ВариантКомплектации),"",""" в комплектации """+спПолучитьНаименование(СсылкаНаОбъект.ВариантКомплектации)+"""");
    
    СуммаВсегоНаАвтомобильПечать = СсылкаНаОбъект.РассчитатьСуммуВсего();
    СуммаВсегоНаАвтомобильПечать = обПересчет(СуммаВсегоНаАвтомобильПечать,СсылкаНаОбъект.ВалютаДокумента,СсылкаНаОбъект.Дата,ВалютаПечатногоДокумента,СсылкаНаОбъект.Дата,РежимОкругления.Окр15как20);
    ОбластьМакета.Параметры.СуммаВсегоНаАвтомобиль	= СуммаВсегоНаАвтомобильПечать;
    ОбластьМакета.Параметры.СуммаВсегоНаАвтомобильПрописью  = обЧислоПрописью(СуммаВсегоНаАвтомобильПечать,ВалютаПечатногоДокумента);
    
    ОбластьМакета.Параметры.СтавкаНДСНаАвтомобиль	= СсылкаНаОбъект.СтавкаНДСНаАвтомобиль.Ставка;
    СуммаНДСНаАвтомобильПечать = обПересчет(СсылкаНаОбъект.СуммаНДСНаАвтомобиль,СсылкаНаОбъект.ВалютаДокумента,СсылкаНаОбъект.Дата,ВалютаПечатногоДокумента,СсылкаНаОбъект.Дата,РежимОкругления.Окр15как20);
    ОбластьМакета.Параметры.СуммаНДСНаАвтомобиль	= СуммаНДСНаАвтомобильПечать;
    ОбластьМакета.Параметры.СуммаНДСНаАвтомобильПрописью  = обЧислоПрописью(СуммаНДСНаАвтомобильПечать,ВалютаПечатногоДокумента);
    
    ОбластьМакета.Параметры.ПроцентПредоплаты	 = СсылкаНаОбъект.ПроцентПредоплаты;
    ОбластьМакета.Параметры.ПроцентПредоплатыПрописью   = ЧислоПрописью(СсылкаНаОбъект.ПроцентПредоплаты);
    СуммаПредоплатыПечать = обПересчет(СсылкаНаОбъект.СуммаПредоплаты,СсылкаНаОбъект.ВалютаДокумента,СсылкаНаОбъект.Дата,ВалютаПечатногоДокумента,СсылкаНаОбъект.Дата,РежимОкругления.Окр15как20);
    ОбластьМакета.Параметры.СуммаПредоплаты	   = СуммаПредоплатыПечать;
    ОбластьМакета.Параметры.СуммаПредоплатыПрописью	 = обЧислоПрописью(СуммаПредоплатыПечать,ВалютаПечатногоДокумента);
    СуммаНДСПредоплатыПечать = обПересчет(СсылкаНаОбъект.РассчитатьСуммуНДСВсего()*СсылкаНаОбъект.ПроцентПредоплаты/100,СсылкаНаОбъект.ВалютаДокумента,СсылкаНаОбъект.Дата,ВалютаПечатногоДокумента,СсылкаНаОбъект.Дата,РежимОкругления.Окр15как20);
    ОбластьМакета.Параметры.СуммаНДСПредоплаты	  = СуммаНДСПредоплатыПечать;
    ОбластьМакета.Параметры.СуммаНДСПредоплатыПрописью	= обЧислоПрописью(СуммаНДСПредоплатыПечать,ВалютаПечатногоДокумента);
    
    ПроцентДоплаты = 100 - СсылкаНаОбъект.ПроцентПредоплаты;
    СуммаДоплаты = СуммаВсегоНаАвтомобильПечать - СуммаПредоплатыПечать;
    ОбластьМакета.Параметры.ПроцентДоплаты	  = ПроцентДоплаты;
    ОбластьМакета.Параметры.ПроцентДоплатыПрописью	= ЧислоПрописью(ПроцентДоплаты);
    ОбластьМакета.Параметры.СуммаДоплаты		= СуммаДоплаты;
    ОбластьМакета.Параметры.СуммаДоплатыПрописью	  = обЧислоПрописью(СуммаДоплаты,ВалютаПечатногоДокумента);
    СуммаНДСДоплаты = СуммаНДСНаАвтомобильПечать - СуммаНДСПредоплатыПечать;
    ОбластьМакета.Параметры.СуммаНДСДоплаты		= СуммаНДСДоплаты;
    ОбластьМакета.Параметры.СуммаНДСДоплатыПрописью	 = обЧислоПрописью(СуммаНДСДоплаты,ВалютаПечатногоДокумента);
    
    ОбластьМакета.Параметры.ИННКПП		= "ИНН " + СсылкаНаОбъект.Организация.ИНН + " / КПП " + СсылкаНаОбъект.Организация.КПП;
    
    ОбластьМакета.Параметры.НомерСчетаПолучателя = СсылкаНаОбъект.Организация.ОсновнойБанковскийСчет.НомерСчета;
    ОбластьМакета.Параметры.БанкПолучателя   = СсылкаНаОбъект.Организация.ОсновнойБанковскийСчет.Банк;
    ОбластьМакета.Параметры.БИКБанкаПолучателя  = СсылкаНаОбъект.Организация.ОсновнойБанковскийСчет.Банк.Код;
    ОбластьМакета.Параметры.СчетБанкаПолучателя  = СсылкаНаОбъект.Организация.ОсновнойБанковскийСчет.Банк.КоррСчет;
    
    СсылкаНаОбъект.ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("ПриложениеШапка");
    ОбластьМакета.Параметры.НомерДоговора = НомерДляПечати;
    ОбластьМакета.Параметры.ДатаДоговора = Формат(СсылкаНаОбъект.Дата,"ДФ=dd.MM.yyyy");
    СсылкаНаОбъект.ТабДокумент.Вывести(ОбластьМакета);
    
    Если ТаблицаОборудования.Количество() > 0 Тогда
    //Шапка таблицы
    ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьМакета.Параметры.ТаблицаСпецификации = "Оборудование производителя";
    СсылкаНаОбъект.ТабДокумент.Вывести(ОбластьМакета);
    //Таблица
    ОбластьМакета = Макет.ПолучитьОбласть("Строка");
    Для каждого СтрокаОборудования Из ТаблицаОборудования Цикл
    ОбластьМакета.Параметры.Заполнить(СтрокаОборудования);
    ОбластьМакета.Параметры.ОборудованиеНаименование = спПолучитьНаименование(СтрокаОборудования.Опция);
    ОбластьМакета.Параметры.Оборудование = СтрокаОборудования.Опция;
    ОбластьМакета.Параметры.Цена = СтрокаОборудования.СуммаВсего/СтрокаОборудования.Количество;
    СсылкаНаОбъект.ТабДокумент.Вывести(ОбластьМакета);
    КонецЦикла;
    ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
    ОбластьМакета.Параметры.СуммаИтого = ТаблицаОборудования.Итог("СуммаВсего");
    СсылкаНаОбъект.ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;
    
    Если ТаблицаТоваров.Количество() > 0 Тогда
    //Шапка таблицы
    ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьМакета.Параметры.ТаблицаСпецификации = "Товары продавца";
    СсылкаНаОбъект.ТабДокумент.Вывести(ОбластьМакета);
    //Таблица
    ОбластьМакета = Макет.ПолучитьОбласть("Строка");
    Для каждого СтрокаТоваров Из ТаблицаТоваров Цикл
    ОбластьМакета.Параметры.Заполнить(СтрокаТоваров);
    ОбластьМакета.Параметры.ОборудованиеНаименование = спПолучитьНаименование(СтрокаТоваров.Номенклатура);
    ОбластьМакета.Параметры.Оборудование = СтрокаТоваров.Номенклатура;
    ОбластьМакета.Параметры.Цена = СтрокаТоваров.СуммаВсего/СтрокаТоваров.Количество;
    СсылкаНаОбъект.ТабДокумент.Вывести(ОбластьМакета);
    КонецЦикла;
    ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
    ОбластьМакета.Параметры.СуммаИтого = ТаблицаТоваров.Итог("СуммаВсего");
    СсылкаНаОбъект.ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;
    
    //базовое доп. оборудование
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | ОпцииВариантовКомплектации.Опция КАК Опция
    |ИЗ
    | РегистрСведений.ОпцииВариантовКомплектации КАК ОпцииВариантовКомплектации
    |ГДЕ
    | ОпцииВариантовКомплектации.ВариантКомплектации = &ВариантКомплектации
    | И ОпцииВариантовКомплектации.ВидВключения = &ВидВключения";
    Запрос.УстановитьПараметр("ВариантКомплектации", СсылкаНаОбъект.ВариантКомплектации);
    Запрос.УстановитьПараметр("ВидВключения", 2);
    СписокДопОборудования = Запрос.Выполнить().Выгрузить();
    
    Если СписокДопОборудования.Количество() > 0 Тогда
    //Шапка таблицы
    ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицыОборудование");
    СсылкаНаОбъект.ТабДокумент.Вывести(ОбластьМакета);
    //Таблица
    ОбластьМакета = Макет.ПолучитьОбласть("СтрокаОборудование");
    НомерСтроки = 1;
    Для каждого ТекДопОб Из СписокДопОборудования Цикл
    ОбластьМакета.Параметры.НомерСтроки = НомерСтроки;
    ОбластьМакета.Параметры.ОборудованиеНаименование = спПолучитьНаименование(ТекДопОб.Опция);
    ОбластьМакета.Параметры.Оборудование = ТекДопОб.Опция;
    НомерСтроки = НомерСтроки + 1;
    СсылкаНаОбъект.ТабДокумент.Вывести(ОбластьМакета);
    КонецЦикла;
    КонецЕсли;
    
    Возврат СсылкаНаОбъект.ТабДокумент;
    
    КонецФункции
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Это вообще не понял что такое и к чему.

    Для чего? Вы поняли что вы сделали?
    Из функции Печать() вам надо вернуть сформированный табличный документ. Вам надо было создать табличный документ, т.е. ТабДокумент = Новый ТабличныйДокумент;
  3. TopicStarter Overlay
    Yujin
    Offline

    Yujin

    Регистрация:
    5 июл 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    В режиме отладки ругается на этот кусок кода из типовой конфигурации, но заметил что даже при печати обычных форм он все равно ругается. Так что скорей всгео это не важно.
    Спасибо большое за разъяснение. Я недавно только начал этим заниматься и вот само обучаюсь. Сделал как вы сказали, но к сожалению все та же ерунда метод печати не обнаружен. Вот код:
    Код:
    	 Перем ТабДокумент;
    
    Функция Печать()Экспорт    //ДоговорПродажи
    
    ВалютаПечатногоДокумента = зфВыборВалютыПечатногоДокумента(СсылкаНаОбъект);
    Если ВалютаПечатногоДокумента = Неопределено Тогда Возврат Неопределено; КонецЕсли;
    
    //пересчитаем ТЧ
    ТаблицаОборудования = СсылкаНаОбъект.СсылкаНаОбъект.Опции.Выгрузить();
    зфПерерасчетТаблицыТоваров(ТаблицаОборудования, СсылкаНаОбъект, ВалютаПечатногоДокумента);
    
    ТаблицаТоваров = СсылкаНаОбъект.Товары.Выгрузить();
    зфПерерасчетТаблицыТоваров(ТаблицаТоваров, СсылкаНаОбъект, ВалютаПечатногоДокумента);
    
    НомерДляПечати=дкПолучитьНомерДляПечати(СсылкаНаОбъект);
    
    //макет
    Макет = ПолучитьМакет("ДоговорПродажи");
    //заголовок документа
    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Параметры.НомерДоговора = НомерДляПечати;
    ОбластьМакета.Параметры.ДатаДоговора = Формат(СсылкаНаОбъект.Дата,"ДФ=dd.MM.yyyy");
    
    ОбластьМакета.Параметры.ПредставлениеОрганизации = спПолучитьНаименование(СсылкаНаОбъект.Организация);
    ОбластьМакета.Параметры.ФирмаАдрес = киПолучитьПредставлениеКИ(СсылкаНаОбъект.Организация,Справочники.ВидыКонтактнойИнформации.АдресЮридический);
    ОбластьМакета.Параметры.ФирмаТелефоны = киПолучитьПредставлениеКИ(СсылкаНаОбъект.Организация,Справочники.ВидыКонтактнойИнформации.ТелефонРабочий);
    
    ОбластьМакета.Параметры.ЗаказчикПолноеНаименование = спПолучитьНаименование(СсылкаНаОбъект.Заказчик);
    ОбластьМакета.Параметры.ЗаказчикПочтовыйАдрес = киПолучитьПредставлениеКИ(СсылкаНаОбъект.Заказчик,Справочники.ВидыКонтактнойИнформации.АдресПочтовый);
    ОбластьМакета.Параметры.ЗаказчикТелефоны = киПолучитьПредставлениеКИ(СсылкаНаОбъект.Заказчик,Справочники.ВидыКонтактнойИнформации.ТелефонКонтактный);
    
    Запрос = Новый Запрос;
    Запрос.Текст = "
    |ВЫБРАТЬ
    | ПодтверждающиеДокументы.Ссылка КАК Документ,
    | ПодтверждающиеДокументы.КемВыдан КАК ДокументКемВыдан,
    | ПодтверждающиеДокументы.ДатаВыдачи КАК ДокументДатаВыдачи,
    | ПодтверждающиеДокументы.ВидПодтверждающегоДокумента КАК ВидДокумента
    |ИЗ
    | Справочник.ПодтверждающиеДокументы КАК ПодтверждающиеДокументы
    |ГДЕ
    | ПодтверждающиеДокументы.Владелец = &Владелец
    | И ПодтверждающиеДокументы.Текущий = ИСТИНА
    |";
    Запрос.УстановитьПараметр("Владелец", СсылкаНаОбъект.Заказчик); 
    ВыборкаДокументов = Запрос.Выполнить().Выбрать();
    Если ВыборкаДокументов.Количество()=0 Тогда
    ОбластьМакета.Параметры.ЗаказчикДокумент    = "_________________";
    ОбластьМакета.Параметры.ЗаказчикДокументКемВыдан  = "___________";
    ОбластьМакета.Параметры.ЗаказчикДокументДатаВыдачи  = "___________";
    Иначе
    ВыборкаДокументов.Следующий();
    ОбластьМакета.Параметры.ЗаказчикДокумент    = Строка(ВыборкаДокументов.ВидДокумента) + ": " + ВыборкаДокументов.Документ;
    ОбластьМакета.Параметры.ЗаказчикДокументКемВыдан  = ВыборкаДокументов.ДокументКемВыдан;
    ОбластьМакета.Параметры.ЗаказчикДокументДатаВыдачи  = Формат(ВыборкаДокументов.ДокументДатаВыдачи,"ДФ='dd MMMM yyyy'");
    КонецЕсли;
    
    Руководитель = дкОтветственноеЛицо(СсылкаНаОбъект,Перечисления.ВидыОбъектовСведений.Руководитель);
    ОбластьМакета.Параметры.РуководительДолжность   = Руководитель.РуководительДолжность;
    ОбластьМакета.Параметры.РуководительПредставление  = Руководитель.РуководительПредставление;
    
    СуммаПредоплатыПечать=обПересчет(СсылкаНаОбъект.СуммаПредоплаты,СсылкаНаОбъект.ВалютаДокумента,СсылкаНаОбъект.Дата,ВалютаПечатногоДокумента,СсылкаНаОбъект.Дата,РежимОкругления.Окр15как20);
    ОбластьМакета.Параметры.СуммаПредоплаты   = СуммаПредоплатыПечать;
    ОбластьМакета.Параметры.СуммаПредоплатыПрописью = обЧислоПрописью(СуммаПредоплатыПечать,ВалютаПечатногоДокумента);
    //ОбластьМакета.Параметры.ВалютаДокумента   = ВалютаПечатногоДокумента;
    ОбластьМакета.Параметры.СрокПоставки	  = Формат(СсылкаНаОбъект.СрокПоставки,"ДФ=dd MMMM yyyy");
    ОбластьМакета.Параметры.ПредставлениеАвтомобиля = " модель """+спПолучитьНаименование(СсылкаНаОбъект.Модель)+?(обЗначениеНеЗаполнено(СсылкаНаОбъект.ВариантКомплектации),"",""" в комплектации """+спПолучитьНаименование(СсылкаНаОбъект.ВариантКомплектации)+"""");
    
    СуммаВсегоНаАвтомобильПечать = СсылкаНаОбъект.РассчитатьСуммуВсего();
    СуммаВсегоНаАвтомобильПечать = обПересчет(СуммаВсегоНаАвтомобильПечать,СсылкаНаОбъект.ВалютаДокумента,СсылкаНаОбъект.Дата,ВалютаПечатногоДокумента,СсылкаНаОбъект.Дата,РежимОкругления.Окр15как20);
    ОбластьМакета.Параметры.СуммаВсегоНаАвтомобиль    = СуммаВсегоНаАвтомобильПечать;
    ОбластьМакета.Параметры.СуммаВсегоНаАвтомобильПрописью  = обЧислоПрописью(СуммаВсегоНаАвтомобильПечать,ВалютаПечатногоДокумента);
    
    ОбластьМакета.Параметры.СтавкаНДСНаАвтомобиль    = СсылкаНаОбъект.СтавкаНДСНаАвтомобиль.Ставка;
    СуммаНДСНаАвтомобильПечать = обПересчет(СсылкаНаОбъект.СуммаНДСНаАвтомобиль,СсылкаНаОбъект.ВалютаДокумента,СсылкаНаОбъект.Дата,ВалютаПечатногоДокумента,СсылкаНаОбъект.Дата,РежимОкругления.Окр15как20);
    ОбластьМакета.Параметры.СуммаНДСНаАвтомобиль    = СуммаНДСНаАвтомобильПечать;
    ОбластьМакета.Параметры.СуммаНДСНаАвтомобильПрописью  = обЧислоПрописью(СуммаНДСНаАвтомобильПечать,ВалютаПечатногоДокумента);
    
    ОбластьМакета.Параметры.ПроцентПредоплаты	 = СсылкаНаОбъект.ПроцентПредоплаты;
    ОбластьМакета.Параметры.ПроцентПредоплатыПрописью   = ЧислоПрописью(СсылкаНаОбъект.ПроцентПредоплаты);
    СуммаПредоплатыПечать = обПересчет(СсылкаНаОбъект.СуммаПредоплаты,СсылкаНаОбъект.ВалютаДокумента,СсылкаНаОбъект.Дата,ВалютаПечатногоДокумента,СсылкаНаОбъект.Дата,РежимОкругления.Окр15как20);
    ОбластьМакета.Параметры.СуммаПредоплаты	   = СуммаПредоплатыПечать;
    ОбластьМакета.Параметры.СуммаПредоплатыПрописью	 = обЧислоПрописью(СуммаПредоплатыПечать,ВалютаПечатногоДокумента);
    СуммаНДСПредоплатыПечать = обПересчет(СсылкаНаОбъект.РассчитатьСуммуНДСВсего()*СсылкаНаОбъект.ПроцентПредоплаты/100,СсылкаНаОбъект.ВалютаДокумента,СсылкаНаОбъект.Дата,ВалютаПечатногоДокумента,СсылкаНаОбъект.Дата,РежимОкругления.Окр15как20);
    ОбластьМакета.Параметры.СуммаНДСПредоплаты	  = СуммаНДСПредоплатыПечать;
    ОбластьМакета.Параметры.СуммаНДСПредоплатыПрописью    = обЧислоПрописью(СуммаНДСПредоплатыПечать,ВалютаПечатногоДокумента);
    
    ПроцентДоплаты = 100 - СсылкаНаОбъект.ПроцентПредоплаты;
    СуммаДоплаты = СуммаВсегоНаАвтомобильПечать - СуммаПредоплатыПечать;
    ОбластьМакета.Параметры.ПроцентДоплаты	  = ПроцентДоплаты;
    ОбластьМакета.Параметры.ПроцентДоплатыПрописью    = ЧислоПрописью(ПроцентДоплаты);
    ОбластьМакета.Параметры.СуммаДоплаты	    = СуммаДоплаты;
    ОбластьМакета.Параметры.СуммаДоплатыПрописью	  = обЧислоПрописью(СуммаДоплаты,ВалютаПечатногоДокумента);
    СуммаНДСДоплаты = СуммаНДСНаАвтомобильПечать - СуммаНДСПредоплатыПечать;
    ОбластьМакета.Параметры.СуммаНДСДоплаты	    = СуммаНДСДоплаты;
    ОбластьМакета.Параметры.СуммаНДСДоплатыПрописью	 = обЧислоПрописью(СуммаНДСДоплаты,ВалютаПечатногоДокумента);
    
    ОбластьМакета.Параметры.ИННКПП	    = "ИНН " + СсылкаНаОбъект.Организация.ИНН + " / КПП " + СсылкаНаОбъект.Организация.КПП;
    
    ОбластьМакета.Параметры.НомерСчетаПолучателя = СсылкаНаОбъект.Организация.ОсновнойБанковскийСчет.НомерСчета;
    ОбластьМакета.Параметры.БанкПолучателя   = СсылкаНаОбъект.Организация.ОсновнойБанковскийСчет.Банк;
    ОбластьМакета.Параметры.БИКБанкаПолучателя  = СсылкаНаОбъект.Организация.ОсновнойБанковскийСчет.Банк.Код;
    ОбластьМакета.Параметры.СчетБанкаПолучателя  = СсылкаНаОбъект.Организация.ОсновнойБанковскийСчет.Банк.КоррСчет;
    
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("ПриложениеШапка");
    ОбластьМакета.Параметры.НомерДоговора = НомерДляПечати;
    ОбластьМакета.Параметры.ДатаДоговора = Формат(СсылкаНаОбъект.Дата,"ДФ=dd.MM.yyyy");
    ТабДокумент.Вывести(ОбластьМакета);
    
    Если ТаблицаОборудования.Количество() > 0 Тогда
    //Шапка таблицы
    ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьМакета.Параметры.ТаблицаСпецификации = "Оборудование производителя";
    ТабДокумент.Вывести(ОбластьМакета);
    //Таблица
    ОбластьМакета = Макет.ПолучитьОбласть("Строка");
    Для каждого СтрокаОборудования Из ТаблицаОборудования Цикл
    ОбластьМакета.Параметры.Заполнить(СтрокаОборудования);
    ОбластьМакета.Параметры.ОборудованиеНаименование = спПолучитьНаименование(СтрокаОборудования.Опция);
    ОбластьМакета.Параметры.Оборудование = СтрокаОборудования.Опция;
    ОбластьМакета.Параметры.Цена = СтрокаОборудования.СуммаВсего/СтрокаОборудования.Количество;
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЦикла;
    ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
    ОбластьМакета.Параметры.СуммаИтого = ТаблицаОборудования.Итог("СуммаВсего"); 
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;
    
    Если ТаблицаТоваров.Количество() > 0 Тогда
    //Шапка таблицы
    ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьМакета.Параметры.ТаблицаСпецификации = "Товары продавца"; 
    ТабДокумент.Вывести(ОбластьМакета);
    //Таблица
    ОбластьМакета = Макет.ПолучитьОбласть("Строка");
    Для каждого СтрокаТоваров Из ТаблицаТоваров Цикл
    ОбластьМакета.Параметры.Заполнить(СтрокаТоваров);
    ОбластьМакета.Параметры.ОборудованиеНаименование = спПолучитьНаименование(СтрокаТоваров.Номенклатура);
    ОбластьМакета.Параметры.Оборудование = СтрокаТоваров.Номенклатура;
    ОбластьМакета.Параметры.Цена = СтрокаТоваров.СуммаВсего/СтрокаТоваров.Количество;
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЦикла;
    ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
    ОбластьМакета.Параметры.СуммаИтого = ТаблицаТоваров.Итог("СуммаВсего"); 
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;
    
    //базовое доп. оборудование
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | ОпцииВариантовКомплектации.Опция КАК Опция
    |ИЗ
    | РегистрСведений.ОпцииВариантовКомплектации КАК ОпцииВариантовКомплектации
    |ГДЕ
    | ОпцииВариантовКомплектации.ВариантКомплектации = &ВариантКомплектации
    | И ОпцииВариантовКомплектации.ВидВключения = &ВидВключения";
    Запрос.УстановитьПараметр("ВариантКомплектации", СсылкаНаОбъект.ВариантКомплектации);
    Запрос.УстановитьПараметр("ВидВключения", 2);
    СписокДопОборудования = Запрос.Выполнить().Выгрузить();
    
    Если СписокДопОборудования.Количество() > 0 Тогда
    //Шапка таблицы
    ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицыОборудование");
    ТабДокумент.Вывести(ОбластьМакета);
    //Таблица
    ОбластьМакета = Макет.ПолучитьОбласть("СтрокаОборудование");
    НомерСтроки = 1;
    Для каждого ТекДопОб Из СписокДопОборудования Цикл
    ОбластьМакета.Параметры.НомерСтроки = НомерСтроки;
    ОбластьМакета.Параметры.ОборудованиеНаименование = спПолучитьНаименование(ТекДопОб.Опция);
    ОбластьМакета.Параметры.Оборудование = ТекДопОб.Опция;
    НомерСтроки = НомерСтроки + 1;
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЦикла;
    КонецЕсли;
    
    Возврат ТабДокумент;
    
    КонецФункции
    
    ТабДокумент = Новый ТабличныйДокумент;
    
    
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Переменную ТабДокумент достаточно было объявить локальной (в пределах функции Печать()), не надо ее делать глобальной.
    Пробел там поставьте между Печать() и Экспорт.
    Скопируйте (или скрин сделайте) полный текст ошибки.
    В какой конфигурации работаете? (полный релиз).
  5. TopicStarter Overlay
    Yujin
    Offline

    Yujin

    Регистрация:
    5 июл 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Код:
    Функция Печать() Экспорт	//ДоговорПродажи
    
    Перем ТабДокумент;
    ТабДокумент = Новый ТабличныйДокумент;
    ...
    
    
    1. Посмотреть вложение 13233
    2. Посмотреть вложение 13234
    3. Посмотреть вложение 13237
    Ошибки в режиме отладки представлены в своей последовательности.

    Посмотреть вложение 13236

    Вложения:

    • 1.jpg
      1.jpg
      Размер файла:
      137 КБ
      Просмотров:
      38
    • 2.jpg
      2.jpg
      Размер файла:
      132,5 КБ
      Просмотров:
      42
    • 4.jpg
      4.jpg
      Размер файла:
      14,3 КБ
      Просмотров:
      23
    • 3.jpg
      3.jpg
      Размер файла:
      51,4 КБ
      Просмотров:
      32
  6. TopicStarter Overlay
    Yujin
    Offline

    Yujin

    Регистрация:
    5 июл 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Ув. shurikvz благодарю вас что отозвались на мою проблему :smile: . Я буквально недавно обзавелся книгами, начинаю изучать, но решил все таки домучить эту внеш. печатную форму. Но что то не получилось так просто, как это показано в видео уроках :) и понимаю что без помощи в ближайшее время мне наверно не светить вывести ее на печать). Еще раз спасибо.
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Судя по коду, печать в альфа-авто вызывается иначе, чем в стандартных конфигурациях. Поэтому и не работает ВПФ.

    Сам с альфа авто дел не имел. Попробуйте переписать в ВПФ начало функции Печать() так:
    Код:
    Функция Печать(СсылкаНаОбъект, ТабДокумент) Экспорт
    Если ТабДокумент = Неопределено Тогда
    ТабДокумент = Новый ТабличныйДокумент;
    КонецЕсли;
    
    ВалютаПечатногоДокумента = зфВыборВалютыПечатногоДокумента(СсылкаНаОбъект);
    Если ВалютаПечатногоДокумента = Неопределено Тогда Возврат Неопределено; КонецЕсли;
    ... дальше уже ваш код
  8. TopicStarter Overlay
    Yujin
    Offline

    Yujin

    Регистрация:
    5 июл 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Отлично :), спасибо большое заработало! Была еще одна ошибка по вненимательности моей.
    Код:
    ТаблицаОборудования = СсылкаНаОбъект.СсылкаНаОбъект.Опции.Выгрузить();
    Лишний раз СсылкаНаОбьект была. Сделал как вы сказали убрал, лишнию ссылку и все заработало, весьма благодарен вам спасибо большое!
  9. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Не за что.

Поделиться этой страницей