Имя: Пароль:
1C
1С v8
v8: Йеллоупукки-йеллоупукки, переставь нам прямо руки.
Ø (XLife 03.02.2012 12:01)
0 tytti
 
03.02.12
12:00
Внешняя печатная форма.

Выходит ошибка: "При печати Реализация товаров 0000000002 от 03.02.2012 9:48:42 обнаружены ошибки :
Обработчик печатной формы ТоварныйЧек (внешняя): {Справочник.ВнешниеПечатныеФормы.МодульОбъекта(100)}: Метод объекта не обнаружен (Печать)"

Что я сделала неправильно?

//Печать Товарного чека
Функция Печать() Экспорт

ТабДокумент = Новый ТабличныйДокумент;
Табдокумент.ИмяПараметровПечати = "Параметры_Печати_Товарный_Чек";
Макет = ПолучитьМакет("ТоварныйЧек");
   
   
   
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
   //Запрос.УстановитьПараметр("Дата", СсылкаНаОбъект.Дата);
   запрос.Текст =
   
   "ВЫБРАТЬ
   |    РеализацияТоваровТовары.Номенклатура,
   |    РеализацияТоваровТовары.Количество,
   |    РеализацияТоваровТовары.ЕдиницаИзмерения,
   |    РеализацияТоваровТовары.Цена,
   |    РеализацияТоваровТовары.Сумма,
   |    РеализацияТоваровТовары.ПроцентСкидки,
   |    РеализацияТоваровТовары.СуммаСкидки,
   |    РеализацияТоваровТовары.СтавкаНДС,
   |    РеализацияТоваровТовары.СуммаНДС,
   |    РеализацияТоваровТовары.ХарактеристикаНоменклатуры,
   |    РеализацияТоваровТовары.СуммаВсего,
   |ИЗ
   |    Документ.РеализацияТоваров.Товары КАК РеализацияТоваров
   |ГДЕ
   |    РеализацияТоваров.Ссылка = &ТекущийДокумент";

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


       //для начала настроим макет
   ОбластьШапкаТаблицы = дкПривестиМакетПечатнойФормы(СсылкаНаОбъект,Макет);
   
   
   //вывод заголовка документа
   ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
   ОбластьМакета.Параметры.Заполнить(СсылкаНаОбъект);
   ТекстЗаголовка = "Товарный чек " +" № "+дкПолучитьНомерДляПечати(СсылкаНаОбъект)+" от "+Формат(Дата,"ДФ=dd.MM.yyyy");
   //ТекстЗаголовка = дкПолучитьПредставление(СсылкаНаОбъект);
   ОбластьМакета.Параметры.ТекстЗаголовка = ТекстЗаголовка;
   
   Если НЕ обЗначениеНеЗаполнено(ПодразделениеКомпании) И НЕ обЗначениеНеЗаполнено(ПодразделениеКомпании.КПП) Тогда
       СтрокаПредставления = спПолучитьПредставление(Организация);
       ОбластьМакета.Параметры.ПредставлениеПоставщика = СтрЗаменить(СтрокаПредставления, Организация.КПП, ПодразделениеКомпании.КПП);
   Иначе    
       ОбластьМакета.Параметры.ПредставлениеПоставщика = спПолучитьПредставление(Организация);
   КонецЕсли;
   ОбластьМакета.Параметры.ПредставлениеПокупателя = спПолучитьПредставление(Контрагент);
   ОбластьМакета.Параметры.ПредставлениеСклада = спПолучитьНаименование(СкладКомпании);
   //вывод свойств
   СтрокаСвойств = дкПолучитьСтрокуСвойствДокумента(СсылкаНаОбъект);
   ОбластьМакета.Параметры.СтрокаСвойств = СтрокаСвойств;
   ТабДокумент.Вывести(ОбластьМакета);
   
   НомерСтраницы = 2;
   НомерСтраницыПред = НомерСтраницы;
   //                        
   ОбластьШапкаТаблицы.Параметры.Товар = "Товар";
 
   
   //теперь выводим шапку
   ТабДокумент.Вывести(ОбластьШапкаТаблицы);
   
   //готовим области строки
   ОбластьМакета = Макет.ПолучитьОбласть("Строка");
   
   ОбластьМакетаИтогоПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");
   СтруктураИтоговПоСтранице = Новый Структура("ВалютаДокумента,СуммаСкидки,СуммаНДС,СуммаВсего",ВалютаДокумента,0,0,0);
   //заполним параметры шапки таблицы для следующего листа
   ОбластьШапкаТаблицы.Параметры.ТекстЗаголовка = ТекстЗаголовка;
   ОбластьШапкаТаблицы.Параметры.НомерСтраницы = "Страница: " + НомерСтраницы;
       
   
       ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
   
   
   //перебор строк
   ВыборкаТабличнойЧасти = СсылкаНаОбъект.Товары;
   Для каждого СтрокаТабличнойЧасти Из ВыборкаТабличнойЧасти Цикл
       //заполняем данные строки
       СтруктураСтроки = дкПолучитьПредставлениеДанныхТоварнойСтроки(СтрокаТабличнойЧасти,СсылкаНаОбъект);
       ОбластьМакета.Параметры.Заполнить(СтруктураСтроки);
       
       //доп. области
       мсвДопОбластиПодвала = Неопределено;
       Если ВыборкаТабличнойЧасти.Индекс(СтрокаТабличнойЧасти) = ВыборкаТабличнойЧасти.Количество()-1 Тогда
           мсвДопОбластиПодвала = Новый Массив;
           мсвДопОбластиПодвала.Добавить(ОбластьПодвал);
       КонецЕсли;        
       
       //выводим строку, делая проверку попадания на лист
       НомерСтраницы = дкВывестиГоризонтальнуюОбласть(ТабДокумент, ОбластьМакета, ОбластьШапкаТаблицы, ОбластьМакетаИтогоПоСтранице,
           НомерСтраницы, СтруктураИтоговПоСтранице, СсылкаНаОбъект, мсвДопОбластиПодвала);
       
       //инициализация итогов по странице
       Если НомерСтраницы <> НомерСтраницыПред Тогда
           СтруктураИтоговПоСтранице = Новый Структура("ВалютаДокумента,СуммаСкидки,СуммаНДС,СуммаВсего",ВалютаДокумента,0,0,0);
           НомерСтраницыПред = НомерСтраницы;
           ОбластьШапкаТаблицы.Параметры.НомерСтраницы = "Страница: " + НомерСтраницы;
       КонецЕсли;
       //добавляем итоги
       дкДобавитьИтогиПоСтранице(СтрокаТабличнойЧасти,СтруктураИтоговПоСтранице);
       
   КонецЦикла;
   
   //выводим последний подвал, если страниц больше единицы
   Если НомерСтраницы > 2 Тогда
       дкВывестиИтогиПоСтранице(ТабДокумент,ОбластьМакетаИтогоПоСтранице,СтруктураИтоговПоСтранице,СсылкаНаОбъект);
   КонецЕсли;
   
   //итоги
   
   ОбластьПодвал.Параметры.ВалютаДокумента = ВалютаДокумента;
   СуммаВсего = ВыборкаТабличнойЧасти.Итог("СуммаВсего");
   ОбластьПодвал.Параметры.СуммаВсего = суммаВсего;
   НДСВсего = ВыборкаТабличнойЧасти.Итог("СуммаНДС");
   ОбластьПодвал.Параметры.НДСВсего =НДСВсего;
   Если ВыборкаТабличнойЧасти.Итог("СуммаСкидки")>0 ИЛИ ВыборкаТабличнойЧасти.Итог("СуммаСкидкиСтроки") > 0 Тогда
       СкидкаВсего = ВыборкаТабличнойЧасти.Итог("СуммаСкидки");
       Попытка
           СкидкаВсего = СкидкаВсего + ВыборкаТабличнойЧасти.Итог("СуммаСкидкиСтроки");
       Исключение
       КонецПопытки;
       ОбластьПодвал.Параметры.СкидкаВсего = СкидкаВсего;
   КонецЕсли;
   ОбластьПодвал.Параметры.СуммаПрописью = "Всего наименований "+ВыборкаТабличнойЧасти.Количество()+" на сумму " + обЧислоПрописью(СуммаВсего,СсылкаНаОбъект.ВалютаДокумента);
   
   // Выводим представления и расшифровки подписей
   Отпустил = дкОтветственноеЛицо(СсылкаНаОбъект,"Отпустил");
   Отпустил.ОтпустилПредставление = ?(обЗначениеНеЗаполнено(Отпустил.Отпустил),"","/ "+ Отпустил.ОтпустилПредставление);
   ОбластьПодвал.Параметры.Заполнить(Отпустил);
   Получил  = дкОтветственноеЛицо(СсылкаНаОбъект,"Получил");
   Получил.ПолучилПредставление = ?(обЗначениеНеЗаполнено(Получил.Получил),"","/ "+ Получил.ПолучилПредставление);
   ОбластьПодвал.Параметры.Заполнить(Получил);
   
   НомерСтраницы = дкВывестиГоризонтальнуюОбласть(ТабДокумент, ОбластьПодвал, , , НомерСтраницы,,СсылкаНаОбъект);
   
   Возврат ТабДокумент;
   
   

КонецФункции
1 Mnemonic1C
 
03.02.12
12:00
И не жаль кода?
2 XLife
 
03.02.12
12:01
родился...
3 H A D G E H O G s
 
03.02.12
12:01
(0) Перепишите форму под Тонкого Клиента
4 H A D G E H O G s
 
03.02.12
12:02
А по факту там в начале модуля стоит
#Если Клиент Тогда
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.