Имя: Пароль:
1C
 
ЗУП внешняя печ. форм Word
0 Масянька
 
18.03.22
15:30
День добрый!
Не выводит (на экран):

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

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

        ПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;

        Макет = УправлениеПечатью.ИнициализироватьМакетОфисногоДокумента(ДвоичныеДанныеМакета, Неопределено);

        ПечатнаяФормаДокумента = УправлениеПечатью.ИнициализироватьПечатнуюФорму(Неопределено, Макет.НастройкиСтраницыМакета, Макет);        

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

Почему?
Спасибо.
1 vicof
 
18.03.22
15:47
Вангую, надо написать Показать()
2 vicof
 
18.03.22
15:53
А по-хорошему, взять бспшечку неизвестной версии, посмотреть, как там сделано, сравнить свое творение с творением господа нашего и сделать выводы.
3 Масянька
 
18.03.22
15:54
(1) На показать ругается.
(2) А что в БСПшечке смотреть?
4 Вафель
 
18.03.22
15:55
вот это точно лишнее
ПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;
5 vicof
 
18.03.22
15:57
(2) Как формируется код для печатной формы
6 Масянька
 
18.03.22
15:57
(4) В обработчике печати не был сформирован табличный документ для....
7 Масянька
 
18.03.22
15:59
(5)
Функция СведенияОВнешнейОбработке() Экспорт

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

    Возврат ПараметрыРегистрации;
    
КонецФункции

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

    НоваяКоманда = ТаблицаКоманд.Добавить();
    
    НоваяКоманда.Представление             = Представление;
    НоваяКоманда.Идентификатор             = Идентификатор;
    НоваяКоманда.Использование             = Использование;
    НоваяКоманда.ПоказыватьОповещение     = ПоказыватьОповещение;
    НоваяКоманда.Модификатор             = Модификатор;

КонецПроцедуры

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    ПечатьДокумента(КоллекцияПечатныхФорм, МассивОбъектов, ОбъектыПечати);
    
КонецПроцедуры

Процедура ПечатьДокумента(КоллекцияПечатныхФорм, МассивОбъектов, ОбъектыПечати)

    МассивДанныхЗаполнения = ПолучитьДанныеДляПечатиДокумента(МассивОбъектов);    
        
    СформироватьПечатнуюФорму(КоллекцияПечатныхФорм, МассивДанныхЗаполнения, ОбъектыПечати);
    
КонецПроцедуры

Функция ПолучитьДанныеДляПечатиДокумента(МассивОбъектов)

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

    Запрос.УстановитьПараметр("Ссылка", МассивОбъектов[0]);

    Возврат Запрос.Выполнить().Выгрузить();
    
КонецФункции
И потом СформироватьПечатнуюФорму
8 vicof
 
18.03.22
16:01
(7) Я, если вопросы задаю, ставлю знак вопроса в конце) А это был ответ на твой вопрос
9 zippygrill
 
18.03.22
19:23
Причем тут табличный документ если у тебя макет - Word. А него заполняются параметры а ля {v8 ТвойПараметр} и во вр.хранилище для передачи на клиент и показать.

https://prnt.sc/zoS8u-1oo8EA
10 zippygrill
 
18.03.22
19:25
МОжет быть у тебя здесь МассивДанныхЗаполнения[0].ТрудовойДоговорДата - ошибка..нет такой строки в ТабЗначений
11 ГдеСобака Зарыта
 
18.03.22
21:15
(10) насколько я помню, там надо передавать структуру, где ключ имя параметра в макете. ТС же просто передает значение и, ясен пень, ничего из этого не выйдет
12 Мимохожий Однако
 
19.03.22
07:12
(7) В коде и намёка нет на Word. Либо тема не та, либо код не по теме.
...
Традиционное. На отладчике где спотыкается?
13 Масянька
 
21.03.22
11:23
Нету области...

Функция НапечататьТрудовойДоговор(МассивДанныхЗаполнения, ИмяМакета)

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

КонецФункции

https://ibb.co/SK4CMkB
В отладчике (областях) показывает какой-то абзац...
Полный абзац...
14 Масянька
 
21.03.22
11:25
Договор - https://ibb.co/tPS0NQG
15 Масянька
 
21.03.22
15:24
Я тут продолжу...
16 Масянька
 
21.03.22
15:25
Выводится документ(word), но не заполняет параметр :

Процедура ВывестиДанныеДокументаВТабличныйДокумент(КоллекцияПечатныхФорм, МассивДанныхЗаполнения, ОбъектыПечати)

    ДвоичныеДанныеМакета = ПолучитьМакет("ПФ_DOC_ТрудовойДоговор");
    
    Если ДвоичныеДанныеМакета <> Неопределено Тогда
        
        ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ПечатьТрудовогоДоговора");
        
        ПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;
        
        Макет = УправлениеПечатью.ИнициализироватьМакетОфисногоДокумента(ДвоичныеДанныеМакета,Неопределено);
        ПечатнаяФормаДокумента = УправлениеПечатью.ИнициализироватьПечатнуюФорму(Неопределено, Макет.НастройкиСтраницыМакета, Макет);        
сообщить("2 - " + ТипЗнч(МассивДанныхЗаполнения) + " - " + МассивДанныхЗаполнения.Количество()); //.ДатаДоговора);
для Каждого Эл Из МассивДанныхЗаполнения Цикл
сообщить(" - " + Эл.ДатаДоговора);
КонецЦикла;

        ОбластьЗаголовок = Новый Структура;
        ОбластьЗаголовок.Вставить("ИмяОбласти", "Заголовок");
        ОбластьЗаголовок.Вставить("ТипОбласти", "Общая");

        Область = УправлениеПечатью.ОбластьМакета(Макет, ОбластьЗаголовок);
        УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФормаДокумента, Область, МассивДанныхЗаполнения, Ложь);
17 Масянька
 
21.03.22
15:30
- 01.03.2022 0:00:00
Это сообщить(" - " + Эл.ДатаДоговора);
18 Мимохожий Однако
 
21.03.22
15:41
А не проще вместо сообщений запустить отладку?
19 Масянька
 
21.03.22
15:46
(18) Во внешней печатной форме? Каким макаром?
20 Вафель
 
21.03.22
15:48
(19) скачать на ис отладчик внешних пф
21 Масянька
 
21.03.22
15:49
Область выводится!
Не заполняется только параметр.
Что не так?
22 Масянька
 
21.03.22
16:57
МУЖИКИ!!!!
У меня получилось!!!!!