powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Печать внешнего документа (.doc) из 1С 8
7 сообщений из 7, страница 1 из 1
Печать внешнего документа (.doc) из 1С 8
    #36175479
SKatya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, подскажите, можно ли из 1С распечатать внешний документ и если да, то какими функциями встроенного языка? Т.е. например есть "документ №26", который фигурирует в рализации товаров и услуг. Надо, чтобы по нажатию кнопки "Печать", документ с аналогичным названием (.doc) вытащился из указанной папки и распечатался. Заранее сенькс.
...
Рейтинг: 0 / 0
Печать внешнего документа (.doc) из 1С 8
    #36175487
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оле
...
Рейтинг: 0 / 0
Печать внешнего документа (.doc) из 1С 8
    #36175497
SKatya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно поподробнее? Я пока начинающий программист по 1С... Или хотя бы где почитать.
...
Рейтинг: 0 / 0
Печать внешнего документа (.doc) из 1С 8
    #36175521
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну формально все сводится к OLE+VBA (от ворда)

тынц
...
Рейтинг: 0 / 0
Печать внешнего документа (.doc) из 1С 8
    #36176026
Фотография XenoX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Разметить документ букмарками.
2) вставить ActiveX макет (ваш doc файл)
3) получить средствами встроенного языка этот макет
4) пройтись по букмаркам вставляя ваши значения

P.S. все значения приводите к простым типам (Дата, Число, Строка)
Код валяется дома, вечером могу запостить.
...
Рейтинг: 0 / 0
Печать внешнего документа (.doc) из 1С 8
    #36177355
SKatya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господин ПЖ , спасибо.
XenoX , если не трудно. :))
...
Рейтинг: 0 / 0
Печать внешнего документа (.doc) из 1С 8
    #36183848
A_Elena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я сделала так:
1. Создала шаблон в Word-е. Поместила в каталог базы (точнее создала каталог для шаблонов в Word-а).
2. Из 1С(7.7):
// подготавливаем файл WORD
Год = ДатаГод(ДатаДок);
ПутьФ1 = КаталогИБ()+"ExtForms\"+"Архив_DOC"; // \"+СокрЛП(Год)
Если (ФС.СуществуетФайл(ПутьФ1)=0) Тогда
ФС.УстТекКаталог(КаталогИБ()+"ExtForms\");
ФС.СоздатьКаталог("Архив_DOC");
Сообщить("Создан каталог архивов документов.","I");
КонецЕсли;
ФС.УстТекКаталог(КаталогИБ()+"ExtForms\Архив_DOC");
Если (ФС.СуществуетФайл("АКТ_.dot")=0) Тогда // док. шаблона
Сообщить("Файл шаблона для акта не найден ...","!!!");Возврат;
КонецЕсли;

ПутьФ = КаталогИБ()+"ExtForms\"+"Архив_DOC\"+СокрЛП(Год);
// это для разбивки док. по годам
Если (ФС.СуществуетФайл(ПутьФ)=0) Тогда
ФС.УстТекКаталог(КаталогИБ()+"ExtForms\");
ФС.СоздатьКаталог(СокрЛП(Год));
Сообщить("Создан каталог архивов документов за год :"+СокрЛП(Год),"I");
КонецЕсли;

ИмяФайла = "АКТ_.dot";
// проверяем открытие файла

Окно = СоздатьОбъект("WORD.Application"); // WORD-ий файл
Открыт = 0;
Сч=1;
ИмяНовый = "6260_"+СокрЛП(НомерДок)+".doc"; //имя документа создаваемого

Для Сч=1 По (Окно.Documents.Count) Цикл // проверка на открытие уже существующего док.
оДок = Окно.Documents.Item(Сч);
Если (оДок.Name = ИмяНовый) Тогда
Предупреждение("Файл:"+ ИмяНовый +" открыт ... ");
Открыт = 1;
Возврат;
КонецЕсли;
КонецЦикла;
Если (Открыт = 0) Тогда
оДок = Окно.Documents.Open(ПутьФ1+"\"+ИмяФайла);
// это атрибуты самого файла Word-а можно опустить
СвойстваДок = оДок.BuiltinDocumentProperties;
СвойстваДок.Item("Author").Value = Строка(Автор.Код); // автор
СвойстваДок.Item("Last Author").Value = Строка(Автор.Код); // последниц автор
СвойстваДок.Item("Subject").Value = "Акт о зачете взаимных требований"; // тема
СвойстваДок.Item("Keywords").Value = Контрагент.Наименование; // ключевые слова
СвойстваДок.Item("Comments").Value = "Создан из 1С"; // комментарий
СвойстваДок.Item("Company").Value = "СКБТ"; // компания

оДок.SaveAs(ПутьФ+"\"+ИмяНовый);
//Окно.Visible = 1;
КонецЕсли;
vbTab = " ";
vbTab1 = " ";
оДок.Bookmarks("НомерДок").Range.Text = СокрЛП(НомерДок); // это закладка в файле шаблона
оДок.Bookmarks("Продажа").Select();
Где = Окно.Selection;

ДокументСтороны1 = " согласно договору № "+ СокрЛП(ТаблицаОснование.Основание)+ " : ";
Где.Text = vbTab + ДокументСтороны1;
Где.EndOf(); Где.TypeParagraph();

Где.Text = vbTab1 + ДокументСтороны1; // текст выводимый в рез. файл
Где.EndOf(); Где.TypeParagraph();

Поиск = оДок.Content.Find; // это весь текст документа для поиска и замены
Поиск.Execute("{Сторона2}" ,,,,,,,,,""+СокрЛП(Контрагент.ПолнНаименование),2);
Поиск.Execute("{ИННСторона2}" ,,,,,,,,,""+СокрЛП(Контрагент.ИНН),2);
Поиск.Execute("{КППСторона2}" ,,,,,,,,,""+СокрЛП(Контрагент.КПП),2);

оДок.Save();
Если (ПустаяСтрока(ФайлПечатнойФормы)=1) Тогда // это реквизит документа в 1С для хранения пути к файлу Word-а

ФайлПечатнойФормы = СокрЛП(ПутьФ+"\"+ИмяНовый);
Попытка
Записать();
Исключение
Предупреждение("Попробуйте позже. Возможно идет транзакция ...");
КонецПопытки;
КонецЕсли;

Окно.Visible = 1;
оДок.Activate();
// может быть, громоздко, но у меня срабатывает
в 1С8 меняется только "Окно = СоздатьОбъект("WORD.Application");"
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Печать внешнего документа (.doc) из 1С 8
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]