helpf.pro
Регистрация

v8.2 УП: Заполнение Word документа в макете

PahaB
02.09.2017 08:49Прочитано: 1337

Подскажите пожалуйста в чем может быть проблема, параметр дата и даритель заполняются корректно, а остальные параметры или вообще не заполняются или заполняются такими данными как "-1" или "Истина"

Где то читал что все значения, которые выводим должны быть строковые, но пробовал и строковое и просто  СсылкаНаОбъект.Организация.НаименованиеПолное ничего не помогает((.

Код 1C v 8.2 УП
 

Договор = ЭтотОбъект.ПолучитьМакет("Договор");
MSWord = Договор.Получить(); 

Попытка

Документ = MSWord.Application.Documents(1);
Документ.Activate();

        Replace = Документ.Content.Find;


Replace.Execute("{Дата}",Ложь,Истина,Ложь,,,Истина,,Ложь,Формат(СсылкаНаОбъект.Дата,"ДФ=dd.MM.yyyy"),2);  

Replace = Документ.Content.Find;
Replace.Execute("{Даритель}",Ложь,Истина,Ложь,,,Истина,,Ложь,Строка(СсылкаНаОбъект.Организация.Наименование),2); 

Replace = Документ.Content.Find;
Replace.Execute("{ДарительПолное}",Ложь,Истина,Ложь,,,Истина,,Ложь,Строка(СсылкаНаОбъект.Организация.НаименованиеПолное),2); 

Replace = Документ.Content.Find;
Должность = РегистрыСведений.ОтветственныеЛицаОрганизаций.ПолучитьПоследнее(СсылкаНаОбъект.Дата, Новый Структура("СтруктурнаяЕдиница, ОтветственноеЛицо", СсылкаНаОбъект.Организация, Перечисления.ОтветственныеЛицаОрганизаций.Руководитель)).Должность;
ДолжностьРодП = "";
ДолжностьСклонение = УниверсальныеМеханизмы.Просклонять(глЗначениеПеременной("глКомпонентаСклоненияФИО"), Должность, 2, Перечисления.ПолФизическихЛиц.Мужской, ДолжностьРодП);
Replace.Execute("{ДолжностьРодП}",Ложь,Истина,Ложь,,,Истина,,Ложь,Строка(ДолжностьСклонение),2);

Директор = РегистрыСведений.ОтветственныеЛицаОрганизаций.ПолучитьПоследнее(СсылкаНаОбъект.Дата, Новый Структура("СтруктурнаяЕдиница, ОтветственноеЛицо", СсылкаНаОбъект.Организация, Перечисления.ОтветственныеЛицаОрганизаций.Руководитель)).ФизическоеЛицо;
ДиректорСтр = СокрЛП(Строка(Директор));
Фамилия = Лев(ДиректорСтр, Найти(ДиректорСтр, " ") - 1); 
Отчество = Прав(ДиректорСтр, Найти(ДиректорСтр, " "));
Имя = Лев(Прав(ДиректорСтр, 19-4), (СтрДлина( Прав(ДиректорСтр, 19-4)) - стрДлина(Отчество)-1));
ДиректорРодП = "";
ДиректорСклонение = УниверсальныеМеханизмы.ПросклонятьФамилиюИмяОтчество(глЗначениеПеременной("глКомпонентаСклоненияФИО"), Фамилия, Имя, Отчество, 2, Директор.Пол, ДиректорРодП );
Replace.Execute("{ДиректорРодП}",Ложь,Истина,Ложь,,,Истина,,Ложь,Строка(ДиректорСклонение),2); 

Replace = Документ.Content.Find;
Replace.Execute("[Одаряемый]",Ложь,Истина,Ложь,,,Истина,,Ложь,Строка(СсылкаНаОбъект.Контрагент.НаименованиеПолное),2); 

Replace = Документ.Content.Find;
Replace.Execute("{Сумма}",Ложь,Истина,Ложь,,,Истина,,Ложь,Строка(СсылкаНаОбъект.СуммаДокумента),2); 

Replace = Документ.Content.Find;
Replace.Execute("{СуммаПрописью}",Ложь,Истина,Ложь,,,Истина,,Ложь,Строка(ЧислоПрописью(СсылкаНаОбъект.СуммаДокумента))); 

Replace = Документ.Content.Find;
Replace.Execute("[ИНН/КПП Дарителя]",Ложь,Истина,Ложь,,,Истина,,Ложь,Строка(СсылкаНаОбъект.Организация.ИНН + " / " + СсылкаНаОбъект.Организация.КПП),2); 

Replace = Документ.Content.Find;
Replace.Execute("[ОГРН Дарителя]",Ложь,Истина,Ложь,,,Истина,,Ложь,СсылкаНаОбъект.Организация.ОГРН,2); 


MSWord.Application.Visible = Истина;
MSWord.Activate();
Yandex
Возможно, вас также заинтересует
Реклама на портале
all4cf
03.09.2017 22:25Ответ № 1

Посмотри вот этот пример Как сформировать новый договор, документ на основании файла, шаблона Microsoft Office Word?

И там есть ограничение на длину заменяемого текста, не помню точно какая, но вроде 150 символов, попробуй СокрЛП(Строка(СсылкаНаОбъект.Организация.НаименованиеПолное))

PahaB
05.09.2017 06:10Ответ № 2

Спасибо разобрался! Не тот параметр передавал в переменную. И да, там есть ограничение по длине, столкнулся с этим. Ещё встретилась исключительная ошибка, когда пропустил (,) перед последней (Ложь). 

Подсказка: Вы можете приложить к ответу файл или изображение щелкнув по значку или в редакторе.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.