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

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

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

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

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

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

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