Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Создание внешней печатной формы (УНФ)          
Yoja Подменю пользователя
сообщение 02.07.12, 15:35
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 90
Спасибо сказали: 4 раз
Рейтинг: 0

1С 8.2 УНФ
Создание печатной формы. В интернете пошарился и вот что получилось:
Добавляем внешнюю печатную форму (ВПФ) для Расходных накладных(РН).

При попытке печати через ВПФ выдает ошибку
Цитата
{ОбщийМодуль.ДополнительныеОтчетыИОбработки(66)}: В обработчике печати не был сформирован табличный документ для: РасходНакладная
ВызватьИсключение(ТекстСообщенияОбОшибке);



 i 

Текст ошибки это не код 1С, не выделяйте его, или выделяйте "цитированием" (как сейчас).
 


Вот код
// Функция формирует табличный документ
   //
   // Параметры
   // ВХОДЯЩИЕ:
   //  МассивОбъектов  - Массив - список объектов ссылочного типа с данными для печати документа
   //                 Как правило, содержит один элемент с ссылкой на вызвавший объект
   // ИСХОДЯЩИЕ:
   //  ОбъектыПечати  - СписокЗначений - список объектов печати.
   //                    Заполняется процедурой УправлениеПечатью.ЗадатьОбластьПечатиДокумента().
   //                    Используется в основной процедуре печати
   //
   // Возвращаемое значение:
   // ТабличныйДокумент
   //
   Функция СформироватьПечатнуюФормуТоварногоЧека(МассивОбъектов, ОбъектыПечати)
      
       ТабличныйДокумент = Новый ТабличныйДокумент;
       ТабличныйДокумент.КлючПараметровПечати = "ПараметрыПечати_РасходнаяНакладная";
      
       ПервыйДокумент = Истина;
      
       Для Каждого ТекущийДокумент Из МассивОбъектов Цикл
          
           Если Не ПервыйДокумент Тогда
               ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
           КонецЕсли;
           ПервыйДокумент = Ложь;
          
           НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
          
               Запрос = Новый Запрос();
               Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
               Запрос.Текст =
               "ВЫБРАТЬ
               |    РасходнаяНакладная.Дата КАК ДатаДокумента,
               |    РасходнаяНакладная.Организация КАК Организация,
               |    РасходнаяНакладная.Контрагент КАК Контрагент,
               |    РасходнаяНакладная.СуммаВключаетНДС КАК СуммаВключаетНДС,
               |    РасходнаяНакладная.ВалютаДокумента КАК ВалютаДокумента,
               |    РасходнаяНакладная.Запасы.(
               |        НомерСтроки КАК НомерСтроки,
               |        ВЫБОР
               |            КОГДА (ВЫРАЗИТЬ(РасходнаяНакладная.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(100))) = """"
               |                ТОГДА РасходнаяНакладная.Запасы.Номенклатура.Наименование
               |            ИНАЧЕ РасходнаяНакладная.Запасы.Номенклатура.НаименованиеПолное
               |        КОНЕЦ КАК Запас,
               |        Номенклатура.Артикул КАК Артикул,
               |        Номенклатура.Код КАК Код,
               |        ЕдиницаИзмерения КАК ЕдиницаХранения,
               |        Количество КАК Количество,
               |        Цена КАК Цена,
               |        Сумма КАК Сумма,
               |        СуммаНДС,
               |        Характеристика,
               |        Содержание,
               |        ПроцентСкидкиНаценки,
               |        ВЫБОР
               |            КОГДА РасходнаяНакладная.Запасы.ПроцентСкидкиНаценки <> 0
               |                ТОГДА 1
               |            ИНАЧЕ 0
               |        КОНЕЦ КАК ЕстьСкидка,
               |        Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры
               |    ),
               |    РасходнаяНакладная.Номер,
               |    РасходнаяНакладная.Организация.Префикс КАК Префикс,
               |    РасходнаяНакладная.Договор КАК Договор,
               |    РасходнаяНакладная.НалогообложениеНДС КАК НалогообложениеНДС,
               |    РасходнаяНакладная.Ответственный КАК Отпустил,
               |    РасходнаяНакладная.Автор КАК Автор,
               |    РасходнаяНакладная.ДоверенностьСерия,
               |    РасходнаяНакладная.ДоверенностьНомер,
               |    РасходнаяНакладная.ДоверенностьДата,
               |    РасходнаяНакладная.ДоверенностьЧерезКого КАК Получил,
               |    РасходнаяНакладная.ОтпускПроизвел,
               |    ВЫРАЗИТЬ(РасходнаяНакладная.МестоСоставленияДокумента КАК СТРОКА(1000)) КАК МестоСоставленияДокумента
               |ИЗ
               |    Документ.РасходнаяНакладная КАК РасходнаяНакладная
               |ГДЕ
               |    РасходнаяНакладная.Ссылка = &ТекущийДокумент
               |
               |УПОРЯДОЧИТЬ ПО
               |    НомерСтроки";
              
               Шапка = Запрос.Выполнить().Выбрать();
               Шапка.Следующий();
                   НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Шапка.Номер, Истина, Истина);
  
               ВыборкаСтрокЗапасы = Шапка.Запасы.Выбрать();
              
               ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РасходнаяНакладная_Накладная";
              
               Макет = УправлениеПечатью.ПолучитьМакет("PF_AN1");
              
               КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм();    
               Макет.КодЯзыкаМакета = КодЯзыкаПечать;
               СведенияОбОрганизации = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(КодЯзыкаПечать,Шапка.Организация, Шапка.ДатаДокумента, ,);
               СведенияОбКонтрагенте = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(КодЯзыкаПечать,Шапка.Контрагент, Шапка.ДатаДокумента, ,);
              
               ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
               ОбластьМакета.Параметры.ТекстЗаголовка = НСтр("ru='Расходная накладная № ';uk='Видаткова накладна № '", КодЯзыкаПечать)
               + НомерДокумента
               + НСтр("ru=' от ';uk=' від '", КодЯзыкаПечать)
               + Формат(Шапка.ДатаДокумента, "Л="+КодЯзыкаПечать+"; ДФ='dd MMMM yyyy'");
              
               ТабличныйДокумент.Вывести(ОбластьМакета);
               Сумма       = 0;
               СуммаНДС   = 0;
               Количество = 0;
                   Сумма = Сумма + ВыборкаСтрокЗапасы.Сумма;
                   СуммаНДС = СуммаНДС + ВыборкаСтрокЗапасы.СуммаНДС;
                   Количество = Количество + 1;
               ОбластьМакета = Макет.ПолучитьОбласть("Итого");
               ОбластьМакета.Параметры.Всего = УправлениеНебольшойФирмойСервер.ФорматСумм(?(Шапка.СуммаВключаетНДС, Сумма - СуммаНДС, Сумма));
               ТабличныйДокумент.Вывести(ОбластьМакета);
              РаботаСКурсамиВалют.СформироватьСуммуПрописью(СуммаНДС, Шапка.ВалютаДокумента,,КодЯзыкаПечать));
  
  
               ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
               ОбластьМакета.Параметры.Заполнить(Шапка);
               ТабличныйДокумент.Вывести(ОбластьМакета);
       КонецЦикла;    
   КонецФункции // СформироватьПечатнуюФорму


Сообщение отредактировал logist - 02.07.12, 15:43

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 25.05.24, 5:28
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!