|
Получение макета ActiveDocument | ☑ | ||
---|---|---|---|---|
0
Gossar1C
20.08.13
✎
10:17
|
5 месяцев все работало нормально, и вдруг заглючило =\ заглючило на методе MSWord = ДоговорПоставки.Получить() (Договор Оболочка актив документ), по отладке зависает именно на этом методе =\ перезагрузка, перезапуск службы и тд не помогли...
Функция Печать(Ссылка,ВидДоговора) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ДоговорыКонтрагентов.Ссылка, | ДоговорыКонтрагентов.Код, | ДоговорыКонтрагентов.Дата, | ДоговорыКонтрагентов.Партнер КАК Партнер, | КонтактныеЛицаПартнеров.Наименование КАК КонтактноеЛицоПартнера, | ДоговорыКонтрагентов.Контрагент КАК КонтрагентДляПоиска, | ДоговорыКонтрагентов.БанковскийСчетКонтрагента.НомерСчета КАК РСПокупателя, | ДоговорыКонтрагентов.БанковскийСчетКонтрагента.Банк.Наименование КАК ВПокупателя, | ДоговорыКонтрагентов.БанковскийСчетКонтрагента.Банк.Код КАК БИКПокупателя, | ДоговорыКонтрагентов.БанковскийСчетКонтрагента.Банк.КоррСчет КАК КСПокупателя, | ДоговорыКонтрагентов.Контрагент.ОГРН КАК ОГРНКонтрагента, | ДоговорыКонтрагентов.Контрагент.ОКВЭД КАК ОКВЭДКонтрагента |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров | ПО ДоговорыКонтрагентов.Партнер = КонтактныеЛицаПартнеров.Владелец |ГДЕ | ДоговорыКонтрагентов.Ссылка В(&Ссылка) | И КонтактныеЛицаПартнеров.РолиКонтактногоЛица.РольКонтактногоЛица.Наименование = &Роль"; Запрос.УстановитьПараметр("Ссылка",Ссылка); Запрос.УстановитьПараметр("Роль","Генеральный директор"); РезультатЗапроса = Запрос.Выполнить(); Если НЕ РезультатЗапроса.Пустой() Тогда Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); Сведения = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(Выборка.КонтрагентДляПоиска,ТекущаяДата()); ТелефонПартнера = ФормированиеПечатныхФорм.ПолучитьТелефонИзКонтактнойИнформации(Выборка.Партнер); АдресПочтыПартнера = УправлениеКонтактнойИнформацией.ПолучитьКонтактнуюИнформацияОбъекта(Выборка.Партнер,ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.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("[ВПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.ВПокупателя),Выборка.ВПокупателя,"<не указан>")); Замена = Док.Content.Find; Замена.Execute("[БИКПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.БИКПокупателя),Выборка.БИКПокупателя,"<не указан>")); Замена = Док.Content.Find; Замена.Execute("[КСПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.КСПокупателя),Выборка.КСПокупателя,"<не указан>")); Файл = "C:\VremHran" + "\" + "ДоговорПоставки"; //Сохраняем в формате pdf Док.SaveAs(Файл,17); ДокументPDF = Новый ДвоичныеДанные(Файл + ".pdf"); Адрес = ПоместитьВоВременноеХранилище(ДокументPDF); Исключение Сообщить(ОписаниеОшибки()); Word.Quit(); КонецПопытки; Word.Quit(); КОнецЕсли; Возврат Адрес; КонецФункции |
|||
1
Gossar1C
20.08.13
✎
10:24
|
up
|
|||
2
Gossar1C
20.08.13
✎
10:34
|
upp
|
|||
3
Cyberhawk
20.08.13
✎
10:39
|
Оберни в попытку, а сообщение об ошибке пиши в ЖР в исключении
|
|||
4
Cyberhawk
20.08.13
✎
10:39
|
Также проверь на другой ОС с другой версией Ворда
|
|||
5
Gossar1C
20.08.13
✎
11:39
|
Ошибка вызова метода контекста Получить() =\ за 5 месяцев впервые, конфигурацию не обновляли, макеты целые, по отладчику смотрю ДоговорПоставки - ОболочкаАктивДокумента, что за чушь =\
|
|||
6
Gossar1C
20.08.13
✎
11:46
|
up3
|
|||
7
Gossar1C
20.08.13
✎
12:06
|
up4
|
|||
8
Gossar1C
20.08.13
✎
12:17
|
интересно в СП написано что ОболочкаАктивДокумент, метод Получить() Толстый клиент, но ведь до этого работало же в модуле менеджера
|
|||
9
Gossar1C
20.08.13
✎
12:19
|
да кстати у нас клиент-серверный вариант
|
|||
10
Gossar1C
20.08.13
✎
12:22
|
up5
|
|||
11
Cube
20.08.13
✎
12:30
|
Что, никто не помогает? Вместо апов, лучше бы проблему описал нормально. А то выглядит как: Угадайте, что у меня в левом кармане!
|
|||
12
Gossar1C
20.08.13
✎
12:43
|
(11) вроде бы нормально описал... у нас тонкий клиент (клиент-серверный вариант), есть wordo-вский шаблон, храниться он в макете ActiveDocument, процедура которую я привел выше находится в модуле менеджера. Собственно до этой недели процедура выполнялась на ура, на сервере она получала шаблон, заполняла его, сохраняла в формате PDF, помещала во временное хранилище (Двоичные данные) и на клиенте эти двоичные данные приходили, у пользователя создавался на компьютере рабочий, заполненный PDF - документ. Но теперь почему то стало зависать на методе Получить()...
ОболочкаActiveDocument (ActiveDocumentShell) Методы: Записать (Write) Получить (Get) Описание: Используется для доступа к Active document. Объект может быть записан в файл. Доступность: Сервер, толстый клиент. ОболочкаActiveDocument.Получить (ActiveDocumentShell.Get) ОболочкаActiveDocument (ActiveDocumentShell) Получить (Get) Синтаксис: Получить() Возвращаемое значение: Тип: COMОбъект. Описание: Получает COMОбъект для программного управления Active document. Доступность: Толстый клиент. ДА, метод Получить() доступен только в Толстом клиенте, скажите дурак мол, но тогда почему эта гребанный метод уже 5 месяцев работал на сервере получается???! конфигурацию мы не обновляли. |
|||
13
Gossar1C
20.08.13
✎
13:13
|
up6 или недостаточно ясно объяснил проблему?
|
|||
14
Gossar1C
20.08.13
✎
13:24
|
up7
|
|||
15
Gossar1C
20.08.13
✎
13:56
|
up8 сам спросил, сам отвечаю...
|
|||
16
Ёпрст
20.08.13
✎
13:59
|
переставили платформу/офис/ и тде ?
|
|||
17
Ёпрст
20.08.13
✎
13:59
|
работало в толстом поди всегда , да ?
|
|||
18
Gossar1C
20.08.13
✎
14:02
|
(16) попробую сегодня офис переставить
(17) в тонком все, командой в модуль менеджера, насколько я знаю модуль менеджера в УФ выполняется на сервере, однако все работало |
|||
19
Gossar1C
20.08.13
✎
14:10
|
Ёпрст, ты на два фронта работаешь чтоли?)
|
|||
20
Ёпрст
20.08.13
✎
14:11
|
(19) а че ?
я везде :) |
|||
21
Gossar1C
20.08.13
✎
14:13
|
:) и все же я удивляюсь выходками 1С... и не могу понять почему работало в модуле менеджера (на сервере), а доступность тонкий клиент
|
|||
22
Gossar1C
20.08.13
✎
14:14
|
(21) тьфу, доступность толстый клиент*
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |