Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Внешняя печатная форма на СКД, пример

Внешняя печатная форма на СКД, пример
Я
   Alexander AVN
 
22.11.20 - 20:33
Всем доброго вечера!
Поделитесь, пожалуйста, примером внешней печатной формы с макетом СКД. В идеале нужно для УТ11.
   Asmody
 
1 - 22.11.20 - 20:39
(0) На ИС такого как грязи
   Alexander AVN
 
2 - 22.11.20 - 20:42
Согласен, есть, но только за мани)
   Asmody
 
3 - 22.11.20 - 20:44
На ИТС есть примеры
   ДенисЧ
 
4 - 22.11.20 - 20:52
(3) А ИТС, типа, халявный ))))
(0) Сделай просто. Сначала просто напиши отчёт, который тебе будет твою форму создавать. Потом в гугле - "шаблон внешней печатной формы для УТ11". 15 минут и результат готоа...
   Alexander AVN
 
5 - 24.11.20 - 09:09
Попытался сотворить, но в итоге получаю ошибку "в обработчике печати не был сформирован табличный документ...". Код модуля ниже:

Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.0.0.0");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.Версия = "1.0";
    ПараметрыРегистрации.Назначение.Добавить("Документ.РеализацияТоваровУслуг");
                             
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'Моя печатная форма'");
    НоваяКоманда.Идентификатор = "ОсновнаяСхемаКомпоновкиДанных";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    НоваяКоманда.Модификатор = "ПечатьMXL";
       
    Возврат ПараметрыРегистрации;
    
КонецФункции

Функция Печать(ОбъектыНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
        ТабДок = Новый ТабличныйДокумент;
    
    Макет = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
    ИсточникДоступныхНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(Макет);
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроек.Инициализировать(ИсточникДоступныхНастроек);
    КомпоновщикНастроек.ЗагрузитьНастройки(Макет.НастройкиПоУмолчанию);
    
    Настройки = КомпоновщикНастроек.Настройки;
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Ссылка", ОбъектыНазначения[0]);
    
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(Макет, Настройки, ДанныеРасшифровки);
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
        
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ТабДок);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    
    Возврат ТабДок;
    
КонецФункции
   ilya_Sov
 
6 - 24.11.20 - 15:17
В конструкторе пробовал???
   Alexander AVN
 
7 - 24.11.20 - 19:59
Не совсем понял, про какой конструктор речь
   Alexander AVN
 
8 - 24.11.20 - 20:07
Запрос простейший, в консоли работает
   Михаил Козлов
 
9 - 24.11.20 - 20:44
(5) Странно: в моих ВПФ Печать(...) процедура, а не функция: сформированный табличный документ помещается в коллекцию печатных форм.
   mikecool
 
10 - 24.11.20 - 21:28
(9) скорее всего - БСП роляет
   Alexander AVN
 
11 - 24.11.20 - 22:39
(9)  а ведь товарищ Михаил прав оказался, надо было начинать с процедуры... и чуть поправить функцию - в итоге заработало!!! Спасибо)))

Рабочий код ниже, надеюсь, кому-то пригодится. Это просто находка, если быстро нужна ВПФ без нудного рисования макета!

Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.0.0.0");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.Версия = "1.0";
    ПараметрыРегистрации.Назначение.Добавить("Документ.РеализацияТоваровУслуг");
                             
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'Моя печатная форма'");
    НоваяКоманда.Идентификатор = "ОсновнаяСхемаКомпоновкиДанных";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    НоваяКоманда.Модификатор = "ПечатьMXL";
       
    Возврат ПараметрыРегистрации;
    
КонецФункции

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

Функция ПечатьМакета(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)
    
        ТабДок = Новый ТабличныйДокумент;
    
    Макет = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
    ИсточникДоступныхНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(Макет);
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроек.Инициализировать(ИсточникДоступныхНастроек);
    КомпоновщикНастроек.ЗагрузитьНастройки(Макет.НастройкиПоУмолчанию);
    
    Настройки = КомпоновщикНастроек.Настройки;
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Ссылка", МассивОбъектов[0]);
    
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(Макет, Настройки, ДанныеРасшифровки);
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
        
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ТабДок);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    
    Возврат ТабДок;
    
КонецФункции

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.