|
Сохранение в формате PDF | ☑ | ||
---|---|---|---|---|
0
Gossar1C
15.04.13
✎
10:47
|
Здравствуйте. Подскажите пожалуйста, при выполнении этого кода
// Заполнение и сохранение в формате PDF, шаблона dot (MSWord) // Макет тип - Active Document; Функция Печать(Ссылка) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ДоговорыКонтрагентов.Ссылка, | ДоговорыКонтрагентов.Код, | ДоговорыКонтрагентов.Дата, | ДоговорыКонтрагентов.Партнер КАК Партнер, | КонтактныеЛицаПартнеров.Наименование КАК КонтактноеЛицоПартнера, | ДоговорыКонтрагентов.Контрагент КАК КонтрагентДляПоиска, | ДоговорыКонтрагентов.БанковскийСчетКонтрагента.НомерСчета КАК РСПокупателя, | ДоговорыКонтрагентов.БанковскийСчетКонтрагента.Банк.Наименование КАК ВПокупателя, | ДоговорыКонтрагентов.БанковскийСчетКонтрагента.Банк.Код КАК БИКПокупателя, | ДоговорыКонтрагентов.БанковскийСчетКонтрагента.Банк.КоррСчет КАК КСПокупателя |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров | ПО ДоговорыКонтрагентов.Партнер = КонтактныеЛицаПартнеров.Владелец |ГДЕ | ДоговорыКонтрагентов.Ссылка В(&Ссылка)"; Запрос.УстановитьПараметр("Ссылка",Ссылка); РезультатЗапроса = Запрос.Выполнить(); Если НЕ РезультатЗапроса.Пустой() Тогда Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); Сведения = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(Выборка.КонтрагентДляПоиска,ТекущаяДата()); ТелефонПартнера = ФормированиеПечатныхФорм.ПолучитьТелефонИзКонтактнойИнформации(Выборка.Партнер); АдресПочтыПартнера = УправлениеКонтактнойИнформацией.ПолучитьКонтактнуюИнформацияОбъекта(Выборка.Партнер,ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.EmailПартнера")); ТелефонПокупателя = ФормированиеПечатныхФорм.ПолучитьТелефонИзКонтактнойИнформации(Выборка.КонтрагентДляПоиска); АдресПочтыПокупателя = УправлениеКонтактнойИнформацией.ПолучитьКонтактнуюИнформацияОбъекта(Выборка.КонтрагентДляПоиска,ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.EmailКонтрагента")); ОбщаяСтрокаСДатой = "«" + День(Выборка.Дата) + "» " + Формат(Выборка.Дата, "ДФ=ММММ") + " " + Год(Выборка.Дата) + "г."; ДоговорПоставки = ПолучитьМакет("ДоговорПредоплаты"); MsWord = ДоговорПоставки.Получить(); //макет является ActiveDocument с загруженым в него Word-файлом Попытка MsWord.Application.Visible = 0; Word = MsWord.Application; Док = Word.Documents(1); Док.Activate(); Замена = Док.Content.Find; Замена.Execute("[НомерДоговора]", Ложь, Истина, Ложь, , , Истина, , Ложь," " + Выборка.Код); Замена = Док.Content.Find; Замена.Execute("[ОбщаяСтрокаДатой]", Ложь, Истина, Ложь, , , Истина, , Ложь, ОбщаяСтрокаСДатой); Замена = Док.Content.Find; Замена.Execute("[Партнер]", Ложь, Истина, Ложь, , , Истина, , Ложь, Выборка.Партнер.Наименование); Замена = Док.Content.Find; Замена.Execute("[КонтактноеЛицоПартнера]", Ложь, Истина, Ложь, , , Истина, , Ложь, Выборка.КонтактноеЛицоПартнера); Замена = Док.Content.Find; Замена.Execute("[НазваниеФирмыПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["ПолноеНаименование"]); Замена = Док.Content.Find; Замена.Execute("[ЮридическийАдресПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["ЮридическийАдрес"]); Замена = Док.Content.Find; Замена.Execute("[ФактическийАдресПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["ФактическийАдрес"]); Замена = Док.Content.Find; Замена.Execute("[ТелефонПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(НЕ ЗначениеЗаполнено(ТелефонПокупателя),ТелефонПартнера,ТелефонПокупателя)); Замена = Док.Content.Find; Замена.Execute("[ПочтовыйАдресПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(НЕ ЗначениеЗаполнено(АдресПочтыПокупателя),АдресПочтыПартнера,АдресПочтыПокупателя)); Замена = Док.Content.Find; Замена.Execute("[ИННПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["ИНН"]); Замена = Док.Content.Find; Замена.Execute("[ОКПОПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["КодПоОКПО"]); Замена = Док.Content.Find; Замена.Execute("[Р/СПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.РСПокупателя),Выборка.РСПокупателя,"<не указан>")); Замена = Док.Content.Find; Замена.Execute("[ВПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.ВПокупателя),Выборка.ВПокупателя,"<не указан>")); Замена = Док.Content.Find; Замена.Execute("[БИКПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.БИКПокупателя),Выборка.БИКПокупателя,"<не указан>")); Замена = Док.Content.Find; Замена.Execute("[К/СПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.КСПокупателя),Выборка.КСПокупателя,"<не указан>")); Файл = "C:\VremHran" + "\" + "ДоговорПоставки " + СтрЗаменить(Выборка.Код,"/","_"); //Сохраняем в формате pdf Док.SaveAs(Файл,17); Док.Close(0); //Запускаем приложение pdf ЗапуститьПриложение(Файл + ".pdf"); Исключение Сообщить(ОписаниеОшибки()); Word.Quit(); КонецПопытки; Word.Quit(); КОнецЕсли; КонецФункции файл сохраняется на сервере где стоит 1С или же у пользователя на компьютере? Клиент - серверный вариант. Просто пытаюсь узнать из за чего крашится база, пишет "Произошла исключательная ошибка и тд.". В файловом варианте работает нормально, заменяет сохраняет открывает. На сервере office стоит |
|||
1
cw014
15.04.13
✎
10:49
|
"Произошла исключательная ошибка и тд." - вот самое интересное то наверное в "и тд." находится наверное. да?
|
|||
2
ДенисЧ
15.04.13
✎
10:49
|
Процедура где выполняется? Если НАСервере, то и файл там же окажется.
|
|||
3
Gossar1C
15.04.13
✎
10:54
|
(2) на сервере исполняется, папку я могу спокойно создать админских прав не требует (1) что интересно через раз как то выскакивает
|
|||
4
mzelensky
15.04.13
✎
11:00
|
(3) так а ошибка на каком моменте выходит?! У тебя в нее весь код засунут.
Что-том не ИМХОЕТСЯ, что ты в это " Замена.Execute("[ЮридическийАдресПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["ЮридическийАдрес"]); " пытаешься слишком большой текст засунуть. Там ограничение в 128 символов. Если пытаешься засунуть больше -выдается ошибка. Вот и все. |
|||
5
mzelensky
15.04.13
✎
11:02
|
(4) Так что убирай свое исключение, отладчик запускай и пошагово прогоняй свой код. Тогда станет все ясно.
|
|||
6
Wobland
15.04.13
✎
11:03
|
это автор сохраняет вордовский документ с расширением пдф и думает, что это будет пдф? или я где-то недоглядел?
|
|||
7
mzelensky
15.04.13
✎
11:05
|
(6) походу недоглядел:
" Док.SaveAs(Файл,17);" на скок я понимаю "17" это код сохраняемого файла (точнее его тип) |
|||
8
Fedot200
15.04.13
✎
11:06
|
(6) Док.SaveAs(Файл,17); может эта хитрая строка в ПДФ сохраняет?
|
|||
9
Aleks73
15.04.13
✎
11:08
|
Зашёл в ворд, сохранил док как пдф. ЧЯНТД ?
|
|||
10
Wobland
15.04.13
✎
11:08
|
17я строка по списку в мсдне - XML template format
|
|||
11
Wobland
15.04.13
✎
11:10
|
не, английским по белому сказано, что пдф ;)
http://msdn.microsoft.com/en-us/library/office/bb238158(v=office.12).aspx |
|||
12
Gossar1C
15.04.13
✎
11:12
|
(4) тогда почему в файловом нормально заменяет и сохраняет?
|
|||
13
mzelensky
15.04.13
✎
11:14
|
(12) одно и тоже?! Т.е. в файловом работает ,а в серверном ЭТОЖЕ не работает?!
Проверяй. В любом случае снимай свою попытку и прогоняй отладчиком. но то, что там ограничение на строку, это 100 ПУДОВ! |
|||
14
Gossar1C
15.04.13
✎
11:15
|
(13) ок спс, буду смотреть
|
|||
15
mzelensky
15.04.13
✎
11:17
|
(14) не забудь о результатах отписаться :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |