|
Сохранение макета в word | ☑ | ||
---|---|---|---|---|
0
falselight
25.11.16
✎
12:52
|
Подскажите пожалуйста, как правильно сохранять в ms word
сформированный табличный документ? |
|||
1
azernot
25.11.16
✎
12:57
|
Правильно табличный документ в MS Word не сохранять.
|
|||
2
AS_DANCE
25.11.16
✎
13:00
|
файл - сохранить как - выбираем тип МС Ворд - сохранить
|
|||
3
Масянька
25.11.16
✎
13:26
|
(0) Формируй сразу в Word'е.
|
|||
4
falselight
25.11.16
✎
13:42
|
(3) но а как подскажите?
(2) хотят что бы было программно. (1) почему это? |
|||
5
Масянька
25.11.16
✎
13:44
|
(4) Пожалста:
// формируем файл мWord = СоздатьОбъект("Word.Application"); мWord.Visible = 0; мNewDoc = мWord.Documents; мШаблон = СокрЛП(Строка(КаталогШаблонов + мШаблон)); мДок = мNewDoc.Add(мШаблон, 0, 0, 1); // верхний колонтитул мКолонтитул = мДок.Sections.Item(1).Headers.Item(1).Range; мКолонтитул.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2); мКолонтитул.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2); мОбъект = мДок.Content; // подставляем значения по тексту договора - признак замены [] мОбъект.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2); мОбъект.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2); мОбъект.Find.Execute("[ПечПокупатель]",0,0,,,,,,,СокрЛП(мПокупатель),2); мОбъект.Find.Execute("[ПечРуководитель]",0,0,,,,,,,мПечОтветственноеЛицо,2); мОбъект.Find.Execute("[ПечОснование]",0,0,,,,,,,СокрЛП(мОснование),2); Если мЕстьСрок = 1 Тогда мОбъект.Find.Execute("[СрокДействия]",0,0,,,,,,,СокрЛП(мСрокДействия),2); КонецЕсли; Если мЕстьСчет = 1 Тогда мОбъект.Find.Execute("[ПечНомерДатаСчета]",0,0,,,,,,,СокрЛП(мЗаголовокСчета),2); мОбъект.Find.Execute("[ПечСуммаСчета]",0,0,,,,,,,СокрЛП(мЗаголовокСуммы),2); мОбъект.Find.Execute("[ПечНДССчета]",0,0,,,,,,,СокрЛП(мНДССчета),2); Если мСписокПО = 1 Тогда мОбъект.Find.Execute("[ПечПО]",0,0,,,,,,,СокрЛП(мСписокНоменклатуры),2); мОбъект.Find.Execute("[ПечКолВо]",0,0,,,,,,,СокрЛП(мКолВоПО),2); КонецЕсли; КонецЕсли; // подставляем значения в реквизиты покупателя: надпись, признак замены [] // надпись - РАГРУППИРОВАН СчетчикЦикла = 0; КолВоНадписей = мДок.Shapes.Count; Для СчетчикЦикла = 1 По КолВоНадписей Цикл мНашли = мДок.Shapes.Item(СчетчикЦикла).Select(); Если Число(мДок.Application.Selection.ShapeRange.Type) = 17 Тогда мДок.Application.Selection.Range.Find.Execute("[ПечПокупательРеквизиты]",0,0,,,,,,,СокрЛП(мПокупатель),2); мДок.Application.Selection.Range.Find.Execute("[ПечЮрАдресПокупателя]",0,0,,,,,,,СокрЛП(мЮрАдресПокупателя),2); мДок.Application.Selection.Range.Find.Execute("[ПечПочтАдресПокупателя]",0,0,,,,,,,СокрЛП(мПочтПокупателя),2); мДок.Application.Selection.Range.Find.Execute("[ПечТелефонПокупателя]",0,0,,,,,,,СокрЛП(мТелефонПокупателя),2); мДок.Application.Selection.Range.Find.Execute("[ПечИННПокупателя]",0,0,,,,,,,СокрЛП(мИННПокупателя),2); мДок.Application.Selection.Range.Find.Execute("[ПечКПППокупателя]",0,0,,,,,,,СокрЛП(мКПППокупателя),2); мДок.Application.Selection.Range.Find.Execute("[ПечРСПокупателя]",0,0,,,,,,,СокрЛП(мРСчетПокупателя),2); мДок.Application.Selection.Range.Find.Execute("[ПечБанкПокупателя]",0,0,,,,,,,СокрЛП(мБанкПокупателя),2); мДок.Application.Selection.Range.Find.Execute("[ПечКСПокупателя]",0,0,,,,,,,СокрЛП(мКСчетПокупателя),2); мДок.Application.Selection.Range.Find.Execute("[ПечБИКБанкаПокупателя]",0,0,,,,,,,СокрЛП(мБИКПокупателя),2); мДок.Application.Selection.Range.Find.Execute("[ПечПокупательПодпись]",0,0,,,,,,,СокрЛП(ПодписьОтветственногоЛица),2); мДок.Application.Selection.Range.Find.Execute("[ПечДолжность]",0,0,,,,,,,СокрЛП(мДолжностьОтветственногоЛица),2); //мОбъект.Find.Execute("[ПечДолжность]",0,0,,,,,,,СокрЛП(ДолжностьОтветственногоЛица),2); КонецЕсли; КонецЦикла; // спецификация Если (ВидДоговора = Перечисление.ВидДоговора.ПоставкаТоваровПоСпецификации) или (ВидДоговора = Перечисление.ВидДоговора.ОказаниеУслугПоСпецификации) Тогда Счет.ВыбратьСтроки(); // заполнение таблицы номенклатуры Для СчетчикЦикла = 1 По Счет.КоличествоСтрок() Цикл мОбъект.Tables(1).Rows.Add(); // добавляем строку в конец таблицы Счет.ПолучитьСтрокуПоНомеру(СчетчикЦикла); мОбъект.Tables(1).Cell(СчетчикЦикла + 2,1).Range.Text = Счет.НомерСтроки; мОбъект.Tables(1).Cell(СчетчикЦикла + 2,2).Range.Text = СокрЛП(Счет.Номенклатура.ПолнНаименование); мОбъект.Tables(1).Cell(СчетчикЦикла + 2,3).Range.Text = СокрЛП(Формат(Счет.Количество, "Ч010.2")); мОбъект.Tables(1).Cell(СчетчикЦикла + 2,4).Range.Text = Строка(Счет.Единица); мОбъект.Tables(1).Cell(СчетчикЦикла + 2,5).Range.Text = глФрм(Счет.Цена); мОбъект.Tables(1).Cell(СчетчикЦикла + 2,6).Range.Text = глФрм(Счет.СуммаНДС); мОбъект.Tables(1).Cell(СчетчикЦикла + 2,7).Range.Text = глФрм(Счет.Сумма); КонецЦикла; // итоги мОбъект.Tables(2).Cell(1,2).Range.Text = СокрЛП(Формат(Счет.Итог("Количество"), "Ч010.2")); мОбъект.Tables(2).Cell(1,5).Range.Text = глФрм(Счет.Итог("СуммаНДС")); мОбъект.Tables(2).Cell(1,6).Range.Text = глФрм(Счет.Итог("Сумма")); // итоговая строка мСтрокаВсего = глФразаПрописью(Счет.КоличествоСтрок(), "наименован") + ", на сумму " + глСуммаПрописью(Счет.Итог("Сумма"), глРубли) + "."; мОбъект.Find.Execute("[СтрокаВсего]",0,0,,,,,,,СокрЛП(мСтрокаВсего),2); КонецЕсли; // записываем файл мДок.SaveAs(мИмяФайла); ИмяФайла = СокрЛП(мИмяФайла); // активируем Word мWord.Visible = 1; мWord.Application.WindowState = 2; мWord.Application.WindowState = 1; |
|||
6
falselight
25.11.16
✎
13:46
|
Можно ли по нажатии кнопки
открывать макет табличного документа в ms word, не сохраняя сам файл ms word? |
|||
7
falselight
25.11.16
✎
13:49
|
я как понимаю нужно сохранять в любом случае, что бы открыть потом
|
|||
8
falselight
25.11.16
✎
13:49
|
(5) Спасибо!
|
|||
9
Масянька
25.11.16
✎
13:49
|
(8) 50 $ :))))))))))
|
|||
10
azernot
25.11.16
✎
14:22
|
(4) Потому что как правило никому не нужен табличный документ в MS Word.
Даже если, по каким-то причинам, сформированный документ надо передать кому-то у кого нет 1С, да ещё и сохранив возможность редактирования, то, как правило, больше подходит MS Excel. Исключения, конечно, есть. Но это как раз из разряда, что изначально формируется не табличный документ, а именно текстовый, и в этом случае, правильное решение в (3). |
|||
11
Gantosha
25.11.16
✎
14:26
|
ну не скажи .. например есть доверенность в сбербанк , там табличная форма и она настолько изначально убогая, что копировать ее в 1с жуткий труд .. проще в нее в корячить таблицу новых сотрудников и выплюнуть в ворде, чем этакую гадость себя в базе , да еще в конфигураторе хранить.
|
|||
12
azernot
25.11.16
✎
14:42
|
(11) О чём и речь. Это правильное решение, описанное в (3)
|
|||
13
Gantosha
25.11.16
✎
14:44
|
(12) а, не понял смысла, понятно.
|
|||
14
falselight
26.11.16
✎
04:27
|
(12) ну и как формировать сразу в ворде?
|
|||
15
falselight
26.11.16
✎
06:21
|
Что то как то сложно все.
Я вот так сделал ТАБ.Записать("E:\00WORK2016\zhaldak\ИндивидуальнаяУчетнаяКарточкаОС.docx",типфайлатабличногодокумента.DOCX); А как сейчас его открыть? |
|||
16
falselight
26.11.16
✎
06:23
|
ЗапуститьПриложение() наверное.
Как имея формирование табличного документа переделать на формирование документа ворд? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |