Имя: Пароль:
1C
1С v8
Внешняя печатная форма для Бухгалтерии 3.0
0 Никулин Леонид
 
17.05.14
13:39
Здравствуйте!

Задача. Необходимо создать внешнюю печатную форму для БП3.0.
Нашел статью http://fedbuka.livejournal.com/8262.html и решил взять ее за основу. Немножко поправил Функцию СведенияОВнешнейОбработке(). Зарегистрировать ее в Предприятии получилось. Все ок. А вот теперь хочется все же выводить саму печатную форму.

Дальше поправил сам механизм вывода печатной формы. Но при формировании получаю ошибку, что в "В обработчике печати не был сформирован табличный документ". Ниже добавлю код своей поделки подскажите где ошибка;


Спасибо!
1 Никулин Леонид
 
17.05.14
13:39
// Сформировать печатные формы объектов
//
// ВХОДЯЩИЕ:
//   ИменаМакетов    - Строка    - Имена макетов, перечисленные через запятую
//   МассивОбъектов  - Массив    - Массив ссылок на объекты которые нужно распечатать
//
// ИСХОДЯЩИЕ:
//   КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы
//   ПараметрыВывода       - Структура        - Параметры сформированных табличных документов
//
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
     Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Макет") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
                     "Инвентаризация", "Инвентаризация",
                     СформироватьПечатнуюФорму("Счет", МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
КонецПроцедуры // Печать()

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


// Процедура заполняет табличный документ  счета, заказа.
//
Процедура ЗаполнитьТабличныйДокументСчетЗаказ(ТабличныйДокумент, Запрос, ОбъектыПечати, Тип) Экспорт
    
    ДанныеПечати = Запрос.Выполнить().Выбрать();
        
    Пока ДанныеПечати.Следующий() Цикл
        
        Макет = ПолучитьМакет("Макет");
        ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
        ТабличныйДокумент.Вывести(ОбластьШапка);
        
    КонецЦикла;
    
    ТабличныйДокумент.АвтоМасштаб = Истина;
    
КонецПроцедуры // ЗаполнитьТабличныйДокументСчетЗаказ()
2 Никулин Леонид
 
17.05.14
13:43
Или если есть у кого дайте, пожалуйста, готовую обработку для образца. На инфостарте денег нет((
3 Никулин Леонид
 
17.05.14
13:44
Спасайте, люди добрые
4 Никулин Леонид
 
17.05.14
13:54
Или еще вопрос. Хочу отладить. Не разберусь как. В БП2.0 (в обычных формах) При создании ВПФ платформа создает во временной папке копию твоей внешненей обработки. Можно посмотреть путь, открыть ее и поставить точку останова. Она отработает. И тут пробежать отладчиком. В БП3.0 похоже это делается как-то иначе. Подскажите как?
5 Никулин Леонид
 
17.05.14
13:56
((
6 Никулин Леонид
 
17.05.14
14:00
Дайте таки почву для размышлений
7 Никулин Леонид
 
17.05.14
15:24
Как это часто бывает самостоятельно отвечаю на свой вопрос (4)

http://infostart.ru/public/239624/

От добрых к хорошим людям))
8 Kookish
 
17.05.14
16:34
Если как следует погуглишь, найдешь и путевый отладчик внешних печатных форм, и сообразишь как доработать печатную форму с тем, чтобы ее отлаживать. Как в обычных, так и в управляемых формах.
9 banco
 
17.05.14
20:05
(0) (1)   Если нужно печатать макет "макет" то вывести "инвентаризация"?
10 zulu_mix
 
17.05.14
20:23
напишу за 7 тыщщ рублей
11 Поpyчик-4
 
17.05.14
21:28
(0) Гы, популярная для клюшечников тема.
Отладка ВПФ http://infostart.ru/public/73691/

Не справитесь, напишу за три тысячи рублей.