|   |   | 
| 
 | Сохранение макета в 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 | 
        ЗапуститьПриложение() наверное.
 Как имея формирование табличного документа переделать на формирование документа ворд? | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |