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

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

P.S. все значения приводите к простым типам (Дата, Число, Строка)
Код валяется дома, вечером могу запостить.
...
Рейтинг: 0 / 0
03.09.2009, 16:53
    #36177355
SKatya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Печать внешнего документа (.doc) из 1С 8
Господин ПЖ , спасибо.
XenoX , если не трудно. :))
...
Рейтинг: 0 / 0
08.09.2009, 12:50
    #36183848
A_Elena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Печать внешнего документа (.doc) из 1С 8
Я сделала так:
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
Форумы / [игнор отключен] [закрыт для гостей] / Печать внешнего документа (.doc) из 1С 8 / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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