1с вывод табличного документа в word


ВНИМАНИЕ! При использовании кодов описанных ниже, уберите символ _


Давайте рассмотрим на примерах как это делается! =) Мне известно 2 способа:
1. Путем замены шаблонного текста в макете Wordа.
2. Путем вставки текста с помощью закладок в Wordе,

В первом случае сразу скажу, что длина строки передаваемая в функцию замены, довольно небольшая 255 символов, да и расстановка шаблонных выражений в макете Word занимает довольно много времени. Через процедуру Content.Find.Execute.

Во втором случае длина, насколько мне известно неограниченна, также воськаться с закладками намного быстрее и удобнее, чем расставлять шаблонный текст. Используя Bookmarks().S_elect(). Поэтому давайте на коде рассмотрим второй пример.

И так, для начала необходимо добавить Word макет к документу. Добавляем макет с помощью конструктора макетов указав Active document и выбрав соответствующий макет.

Называем его Акт. Открываем макет в 1Ске, ставим курсор в нужном месте, переходим в меню Вставка закладка нажимаем добавить закладку к примеру у меня это НарушенияТекст

Теперь кидаем на форму документа кнопку Сформировать и по нажатию на нее пишем код который открывает наш макет Word ищем закладку по имени и вставляет туда текст:

Код 1C v 8.х

 //инициализация часть 1
СсылкаМакет = ПолучитьМакет(Акт);
MSWord = СсылкаМакет.Получить();
Попытка
СсылкаМакет = MSWord.Application.Documents(1);
СсылкаМакет.Activate();
//выгружаем табличную часть с нарушениями в строку часть 2
str = Новый COMОбъект(ADODB.Stream);
str.Open();
СтрочкаТаблицы = ЭлементыФормы.Нарушения.ТекущиеДанные;
Для Каждого СтрочкаТаблицы Из Нарушения Цикл
str.WriteText( + СтрочкаТаблицы.Описание + Нарушены требования СНИПФЗГОСТ: + СтрочкаТаблицы.СНИПФЗГОСТ + Статья: + СтрочкаТаблицы.ЧастьСтатья + Символ(13),0);
КонецЦикла;
str.Position = 0;
НарушенияТекст = str.readText();

//вставляем в закладку текст с нарушениями часть 3
MSWord.Bookmarks(НарушенияТекст).S_elect();
MSWord.Application.S_election.TypeText(НарушенияТекст);

//открыть Word часть 4
СсылкаМакет.Application.Visible = Истина;

СсылкаМакет.Activate();
Исключение
//если ошибка
Сообщить(ОписаниеОшибки());
MSWord.Application.Quit();
КонецПопытки;

Это пример вывода множества строчек из табличной части одной строкой, если нужно просто выгрузить какой-то реквизит то можно пропустить часть 2 и перейти к части 3.

Для выгрузки табличной части в форме таблицы можно использовать функцию автоформата, примеру код выгрузки табличной части документа Предписание:

Код 1C v 8.х

 Word = MSWord.Application;
Документ = Word.ActiveDocument();
//Переместиться вниз на 22 строк
Word.S_election.MoveDown(,22);
Документ.Paragraphs.Add();
//подготовка таблицы:
Rng = Word.S_election.Range;
//Формируем заголовок:
Rng.I_nsertAfter(№ п/п*Установленные нарушения и меры по их устранению*Основания);
Rng.I_nsertParagraphAfter();
//сама таблица
СтрочкаТаблицы = ЭлементыФормы.НарушенияПредписание.ТекущиеДанные;
Для Каждого СтрочкаТаблицы из НарушенияПредписание Цикл
Rng.I_nsertAfter(Строка(СтрочкаТаблицы.НомерСтроки)+*+СтрочкаТаблицы.Описание + ; + СтрочкаТаблицы.Предписание +* + СтрочкаТаблицы.СНИПФЗГОСТ + + СтрочкаТаблицы.ЧастьСтатья);
Rng.I_nsertParagraphAfter();
КонецЦикла;
Rng.ConvertToTable(*);
Документ.Tables(1).AutoFormat(17); //номер таблицы в шаблоне
Word.Visible = Истина;

Ну вот и все =)
Автор: saylolpls


Еще способ Active document
В Конфигураторе Макеты — правый клик — Добавить
Тип макета: Active document
Создать новый — Документ Microsoft Word

Меню Вставка — Поле — Автоматизация — DocVariable
Написать имя поля в графе «Новое имя:» ДатаПриказа

В модуле формы документа создаем кнопку, и в ее обработчике пишем:

Код 1C v 8.х

 Процедура ОсновныеДействияФормыWord(Кнопка)
АктивныйДокумент = ПолучитьМакет("Макет");
КомОбъект = АктивныйДокумент.Получить();

КомОбъект.Application.Visible=1;
КомОбъект.Variables.Item("ДатаПриказа").Value="24.01.2007";
КомОбъект.Fields.UpDate();

КомОбъект.PrintOut(); //распечатать документ

//Ожидание окончания отправки на печать...
Пока objWord.Application.BackgroundPrintingStatus<>0 Цикл
Предупреждение("Ожидание",1);
КонецЦикла;

КомОбъект.Application.Quit(); //закрыть Word
КомОбъект = 0;
КонецПроцедуры

2) добавляем не поле, а Закладку
Меню Вставка — Закладка и далее указываем ее имя («ИмяЗакл»)

Код 1C v 8.х

 Процедура ОсновныеДействияФормыWord(Кнопка)
АктивныйДокумент = ПолучитьМакет("Макет");
КомОбъект = АктивныйДокумент.Получить();
КомОбъект.Application.Visible=1;
КомОбъект.Bookmarks(СокрЛП("ИмяЗакл")).S_elect();
КомОбъект.Application.S_election.TypeText(СокрЛП("тест проверка"));
КонецПроцедуры


Код 1C v 8.2 УП

 // Параметры договора обозначены в тексте переменными вида "[%НомерДоговора%]"
Функция ПечатьДокумента() Экспорт

Договор = ПолучитьМакет("ActiveDocument_ДоговорПоставки"); // получим макет-ActiveDocument
MSWord = Договор.Получить();
Попытка
Doc = MSWord.Application.Documents(1);
Doc.Activate();
Replace = Doc.Content.Find;

FindText = "{НомерДоговора}"; // что искать - имя_шаблона
MatchCase = Ложь; // использовать регулярные выражения
MatchWholeWord = Истина; // искать слово целиком
MatchWildcards = Ложь; // испоьзовать регулярные выражения
MatchSoundsLike = Неопределено; // искать созвучные
MatchAllWordForms = Неопределено; // искать все формы слова
Forward = Истина; // искать вперед
Wrap = Неопределено; // что должен вернуть Find-объект
Format_ = Ложь; // использовать форматирование
ReplaceWith = "N777"; // текст, на который надо заменить имя_шаблона

// кратко:
//Replace.Execute(FindText,Ложь,Истина,Ложь,,,Истина,,Ложь,НомерДоговора);

Replace.Execute(
FindText,
MatchCase,
MatchWholeWord,
MatchWildcards,
MatchSoundsLike,
MatchAllWordForms,
Forward,
Wrap,
Format_,
НомерДоговора);

MSWord.Application.Visible = Истина;
MSWord.Activate();
Исключение
Сообщить(ОписаниеОшибки());
MSWord.Application.Quit();
КонецПопытки;

возврат 0;

КонецФункции

   Масянька

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;

В предыдущей заметке «Использование шаблонов Word в 1С» был показан простой способ, как используя механизмы 1С и документа Word в качестве шаблона, можно создать печатную форму для вывода данных. В текущей заметке «1с word шаблон» будет показан один из способов, как можно реализовать заполнение таблиц в шаблоне Word.

Для примера использовался шаблон Word следующего вида:

1с word шаблон - Заполнение таблиц в шаблоне Word - Шаблон

1с word шаблон — Заполнение таблиц в шаблоне Word — Шаблон

Как видно из шаблона, закладка «Таблица1» является указателем на начало таблицы и служит для позиционирования выделения.
Теперь непосредственно сам способ, для его реализации использовалась внешняя обработка, в модуле формы которой, описана лишь одна процедура «ПриОткрытии(Отказ)»:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	//Попытка создать COM объект
	Попытка
		ОбъектВорд = Новый COMОбъект("Word.Application"); 
	Исключение
		Сообщить("Ошибка при запуске Microsoft Word: " + ОписаниеОшибки(), СтатусСообщения.Внимание);
	КонецПопытки;
	
	//Путь к шаблону
	ОбъектВорд.Documents.Add("C:UsersКонстантинDesktopШаблон.docx");
	ШаблонВорд = ОбъектВорд.ActiveDocument;
	
	//Заполняем первую таблицу
	Если ШаблонВорд.Bookmarks.Exists("Таблица1") Тогда
		
		//Выделяем обязательную закладку начала таблицы
		ШаблонВорд.Bookmarks("Таблица1").Select();
		
		
		//Перемещаемся вниз, выделяем строку таблицы и копируем ее в буфер обмена
		ШаблонВорд.Application.Selection.MoveDown();
		ШаблонВорд.Application.Selection.SelectRow();
		ШаблонВорд.Application.Selection.Copy();
		
		Для Счетчик = 1 По 10 Цикл
			
			//Заменяем значения
			ШаблонВорд.Application.Selection.Find.Execute("Номер" ,,,,,,,,,Счетчик,2);
			ШаблонВорд.Application.Selection.Find.Execute("ЗначениеКолонки1" ,,,,,,,,,Счетчик+10,2);
			//Последний параметр поиска пустой
			ШаблонВорд.Application.Selection.Find.Execute("ЗначениеКолонки2" ,,,,,,,,,Счетчик+100,);
			
			//Перемещаемся вниз, вставляем из буфера обмена строку
			ШаблонВорд.Application.Selection.MoveDown();
			ШаблонВорд.Application.Selection.Paste();
			//Перемещаемся вверх и выделяем строку для замены значений
			ШаблонВорд.Application.Selection.MoveUp();
			ШаблонВорд.Application.Selection.SelectRow();
			
		КонецЦикла;
		
		//Вырезаем лишнюю строку
		ШаблонВорд.Application.Selection.Cut();
		
		//Скрываем обязательную закладку начала таблицы
		ШаблонВорд.Bookmarks("Таблица1").Select();
		ШаблонВорд.Application.Selection.TypeText(" ");
		
	КонецЕсли;
	
	ОбъектВорд.Application.Visible = Истина;
	ОбъектВорд.Activate();
	
	//Закрытие документа
	//ОбъектВорд.Application.Quit();
	
КонецПроцедуры

Как видно из кода процедуры, сначала находим закладку, выделяем и копируем строку таблицы находящуюся ниже, после заменяем текст на значения и вставляем скопированную строку. Результат работы внешней обработки 1С «Заполнение таблиц в шаблоне Word»:

1с word шаблон - Заполнение таблиц в шаблоне Word - Результат

1с word шаблон — Заполнение таблиц в шаблоне Word — Результат

Скачать файл обработки 1С и шаблона Word.

Цитата: magnifico61 от 01 июн 2018, 11:40
Или как вариант вывести табличный документ в ворд через com.

Уверен, что в Word всё же надо?
Как не крути, но на своём опыте проверил, что 1С (8.2 по крайней мере) нормально сохраняет таб.документы только в 3 формата, один из которых «родной». Это mxl, xls и pdf. Во всех остальных начинаются искажения ширинвысот колонок и прочие визуальные глюки. Одна и та же печатная форма при сохранении в xls выглядит нормально, также как на экране, а в xlsx и docx таблица вытягивается как шея у жирафа, и такого видел немало — чем сложнее макет, тем больше искажений.
Я пытался в одной обработке программно сохранять ТабДок в Word, и это работало, хоть и выглядело некрасиво, но когда дал доступ пользователям, оказалось что при выполнении кода

ТабДок.Сохранить(ПутьКФайлу,ТипФайлаТабличногоДокумента.DOCX) у многих вообще 1С вылетает! Именно в этот формат, с другими всё в порядке, я проверял.
Всё это у меня напрочь отбило желание с Word связываться.

Если всё ещё есть желание мучаться с DOCX можно попробовать сохранить в HTML и пересохранить через КОМ объект, что-то типа

//ТабДок - твой документ
//ПутьКФайлу - куда нужно сохранить
Врем = ПолучитьИмяВременногоФайла("html");
ТабДок.Сохранить(Врем,ТипФайлаТабличногоДокумента.HTML);
Word = Новый COMОбъект("Word.Application");
Word.Visible = 0;
Word.Documents.Add(Врем);
ТекДок = Word.ActiveDocument;
ТекДок.SaveAs(ПутьКФайлу,16); //16 - формат файла по умолчанию для текущей версии офиса
Word.Application.Quit();

Писал по памяти, могут быть ошибки.
Так у меня работало, но результат, опять же не радовал, т.к. сбивались ширины, «уезжали» картинки и т.д.

Выгрузка данных из 1C в шаблон Word (Active document)

Чтобы сформировать документ в формате Word, нужно сначала подготовить шаблон. А точнее, создадим макет с типом «Active document» для примера во внешней обработке:

Затем выбираем объект, например, Microsoft Office Word 97-2003:

Откроется чистый документ Word (причем в конфигураторе).

А в документе Word будем расставлять закладки. С закладками работать приятней и быстрей.

Выбираем режим закладок и расставляем:

Прописываем такую процедуру:

//получаем макет из объекта обработки ОбработкаОбъект = РеквизитФормыВЗначение(«Объект»); СсылкаМакет = ОбработкаОбъект.ПолучитьМакет(«Тест»); Word = СсылкаМакет.Получить();//открываем и активируем документ СсылкаМакет = Word.Application.Documents(1); СсылкаМакет.Activate();// в метод Bookmarks передаем название «закладки» Word.Bookmarks(«Тест»).Select();//устанавливаем новое значение текста Word.Application.Selection.TypeText(«Привет, 1С 8.3! :)»);//включаем видимость приложения СсылкаМакет.Application.Visible = Истина;

После вызова процедуры мы получим открытый документ с таким вот сообщением:

Как сформировать новый договор на основании файла Microsoft Word?

Договор = ПолучитьМакет(«Тест»); // Получить объект из макета. MSWord = Договор.Получить(); НаименованиеКонтрагента = «ООО Торгуем всем»; Попытка Документ = MSWord.Application.Documents(1); Документ.Activate(); // Получить объект, который будем использовать для поиска и замены. Замена = Документ.Content.Find; // Заменить заранее определенные ключевые конструкции на требуемый текст. Замена.Execute(«<НазваниеКомпании>», Ложь, Истина, Ложь, , , Истина, , Ложь, НаименованиеКонтрагента); // Далее аналогично для остальных ключевых конструкций. // Делаем видимым приложение и активизируем его. MSWord.Application.Visible = Истина; MSWord.Activate(); Исключение // Если произойдет ошибка выводятся данные об ошибке и объект закрывается. Сообщить(ОписаниеОшибки()); MSWord.Application.Quit(); КонецПопытки;

МакетDOCX = ПолучитьМакет(«МакетWORD»); MSWord = МакетDOCX.Получить(); Попытка СсылкаМакет = MSWord.Application.Documents(1); //открыть Word //СсылкаМакет.Application.Visible = Истина; //СсылкаМакет.Activate(); MSWord.saveas(«C:tempТест.doc»,0); // (FullPatah, WdSaveFormat)

Исключение //если ошибка Сообщить(ОписаниеОшибки()); КонецПопытки; MSWord.Application.quit();

Перечисление WdSaveFormat (Word)

https://docs.microsoft.com/en-us/office/vba/api/word.wdsaveformat

Задает формат, используемый при сохранении документа.

Печатная форма в формате Word из 1С 8.3 и 8.2

Рассмотрим два способа выгрузить данные из программы 1С 8.3 в Word. Эти способы можно использовать в альтернативу стандартных внутренних и внешних печатных форм 1С. Пример обработки, который описывается в статье, можно скачать здесь.

Кстати, в новой версии 1С Бухгалтерия появилась возможность настройки пользовательских шаблонов договоров без программирования.

Выгрузка данных из 1C в шаблон Word (Active document)

Чтобы сформировать документ в формате Word, нужно сначала подготовить шаблон. А точнее, создадим макет с типом «Active document» для примера во внешней обработке:

новый шаблон в 1С

Затем выбираем объект, например, Microsoft Office Word 97-2003:

Откроется чистый документ Word (причем в конфигураторе).

А в документе Word будем расставлять закладки. С закладками работать приятней и быстрей.

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания — попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Выбираем режим закладок и расставляем:

новая закладка в word

Прописываем такую процедуру:

После вызова процедуры мы получим открытый документ с таким вот сообщением:

результат выполнения кода

Создание документа Word сразу (Word.Application)

Документ Word можно создать в 1C без использования макета. Напрямую, с помощью COM объекта. Делается это не сложнее.

После запуска кода мы видим вот такую красивую картину:

Ссылка на скачивание обработки — Выгрузка в Word.

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Вывод данных в макет 1с (на примере Word)

В этой статье мы разберем с Вами следующую задачу, нам потребуется вывести данные в макет 1с (на примере Word), в 1с это макет на базе «Active Document». Подстановку в Word документ мы будем делать с помощью закладок, чтобы установить закладку в документе Word Вам необходимо сделать следующие действия:

  1. Откройте Word документ.
  2. Найдите нужное место в тексте куда Вы хотите делать подстановку, щелкните туда курсор мышки, после этого переходим Вставка —> Закладка.
  3. Даем закладке имя и нажимаем вставить.
  4. Расставляем нужное количество закладок в макете 1с (документ Word)

После того как мы расставили все закладки в документе, мы приступаем к созданию макета. Для этого в 1с выбираем веточку «Макеты», кликаем правой кнопкой мыши и добавляем макет, появится список возможных макетов выбираем «Active Document», затем указываем путь к Word файлу. Теперь чтобы вместо закладок поставить необходимый текст и вывести данные в макет 1с Word мы сделаем следующие действия, напишем код приведенный ниже:

код вывода данных в макет 1с для подстановки текста вместо закладок

На этом все, вот такой простой способ, без лишних заморочек и неудобств. Очень рекомендуем пользоваться подобным методом.

Наши программисты оказывают полный спектр услуг 1с.

Если скопировать документ в 1С, тогда впоследствии его можно загрузить в другую программу или отправить в банк. С программой 1С работают все предприятия, ее база содержит все действия, совершаемые при ведении хозяйственной деятельности компании. Документы, хранящиеся в 1С, представляют собой единый учет организации. Программно скопировать документ в 1С вам помогут специалисты компании «Сетби». Они разберутся в самых сложных вопросах, касающихся автоматизации и настройки ПО. Наша задача — объяснить доступным языком, как работать на платформе 1С.

Как скопировать список документов в 1С программе?
Практически все предприниматели используют для учета бизнес-процессов, а также для ведения бухгалтерской деятельности программу 1С. Учитывая упрощенный интерфейс, разобраться начинающему пользователю ПО будет сложно во всех имеющихся возможностях платформы. Даже то, как копировать табличный документ в другой 1С, знает не каждый работающий в сфере финансов человек. Взаимодействуя с большим количеством информации нужно помнить об обеспечении эффективного способа заполнения данных:
• документации;
• операций;
• справочников.

Персоналу необходимо уметь разбираться в том, как скопировать строку документа в 1С. Для этого требуется придерживаться четко прописанных действий. Сначала заходим в окно «Изменение таблиц товаров», находим «Добавить из документа», выбираем строку и нажимаем кнопку «Перенести в документ». Если вы задаетесь вопросом, как скопировать несколько документов в 1С, тогда знайте, что стандартная конфигурация не предусмотрена выполнять данную функцию. Для того чтобы проделать данную операцию с документом, необходимо дополнительно поработать с настройками функционала программы.

Рассмотрение нюансов в работе с 1С программой
Как же скопировать один документ в другой 1С с первого раза и не допуская ошибок, знают профессионалы своего дела, работающие в компании «Сетби». На начальном этапе стоит разобраться в том, что такое конфигурация в программе 1С — это основной функционал, который позволит с 1С 7.7 скопировать документ.

Конфигураций существует более 500, их задачей является автоматизация отраслевой специфики организации на должном уровне. Производить работу в 1С можно в двух встроенных режимах: «Предприятие» и «Конфигуратор». Структура 1С рассчитана на ведение сразу нескольких видов учета:
• оперативного;
• налогового;
• бухгалтерского.

Программно скопировать и открыть документ в 1С можно благодаря правильно написанному коду. При малейшей неточности или погрешности в его составлении у вас будут возникать ошибки в переносе данных, поэтому следует внимательно заполнять все поля. При вводе документов с многострочной частью копирование дает возможность не заполнять полностью всю часть данных строки. Взять все сведения можно из уже имеющегося ряда.

Как скопировать документ из 1С в Ворд?
Бухгалтерам для полноценного и более комфортного рабочего процесса нужно проделывать с документами множество разных манипуляций. Функционал программного обеспечения 1С не может полностью удовлетворить все потребности пользователя, поэтому в таких случаях есть необходимость скопировать документ в тонком клиенте 1С и сохранить в программе Ворд. Это объясняется тем, что функциональные возможности платформы Word намного разнообразней, они позволяют строить графики, диаграммы, и в целом приводить документ в читабельный и внешне приемлемый вид.

Документ с 1С скопировать в Ворд можно благодаря функции, располагающейся на панели задач «Сохранить как». Единственное, что стоит помнить в этой работе, что надо сохранить документ в том формате, который подходит к нужной вам программе. Чтобы скопировать весь документ для Word из 1С, нужно выделить необходимый текст или таблицу, и потом выполнить в панели задач необходимые действия. В сети Интернет можно найти обучающие видео уроки, в которых есть возможность почерпнуть что-то важное для своей работы. Но лучше, чем наши специалисты компании «Сетби» вам никто не объяснит, как скопировать документ из 1С в Word.

Обо всех деталях процесса копирования документов в 1С расскажут наши сотрудники
Иногда случается так, что нет надобности копировать сразу весь документ, а наоборот нужен только один столбец или одна строка для переноса в другую программу. Выделенные строки табличных частей можно копировать из одного документа в другой зная все тонкости данного процесса. В 1С 8 скопировать строку документа имеется возможность при помощи следующих кнопок: скопировать строки — Ctrl+Shift+C, вставить строки — Ctrl+Shift+V. Применяя копирование в документах можно заполнить табличную часть за короткий промежуток времени.

Не теряйте свое ценное время в поисках нужной информации о программном копировании документа в 1С 8 — компания «Сетби» предоставит вам высококвалифицированных людей в данной области. Все работы ведутся нами по регламентам, благодаря этому этапы рабочего процесса завершаются в срок. Оставляйте свои номера телефонов, и наши менеджеры свяжутся с вами в ближайшее время.

Like this post? Please share to your friends:
  • 1с внешняя печатная форма договора word
  • 1с внешняя печатная форма для управляемой формы word
  • 1с внешняя печатная форма word для зуп
  • 1с внешняя обработка печать word
  • 1с внешняя обработка выгрузка в excel