![]() |
![]() |
![]() |
|
Как напечатать документ через OLE | ☑ | ||
---|---|---|---|---|
0
rino
13.07.09
✎
16:16
|
Добрый день.
в общем, есть задача которая перепала мне с параллельного проекта. Что люди хотят: Есть две программы, одна написана в среде Delphi, другая 1С Предприятие версии 7.7 Необходимо сделать так, чтобы документ, который формируется, а точнее его реквизиты можно было по нажатию кнопки записать в определенный документ в 1С (т.е. создать новый документ) и там же (в 1С) вывести на печать. Вообщем задачу с добавление документа и записью в него данных я решил. Вопрос только в одном. Добавлял данные я через объект Документ.Имя. Но вот как вывести этот документ программным способом на печать через OLE? |
|||
1
ТелепатБот
гуру
13.07.09
✎
16:16
|
||||
2
skunk
13.07.09
✎
16:17
|
также как и без оли
|
|||
3
rino
13.07.09
✎
16:24
|
хорошо. как это сделать? есть в модуле формы процедура, которая заполняет отчет документа перед выводом на печать. Но как ее вызвать я ума не приложу
|
|||
4
ZDenis
13.07.09
✎
16:57
|
(3) Ты ее не вызывай, а напиши заново в базе не оле
|
|||
5
rino
13.07.09
✎
17:06
|
блин. я наверное не так написал.
вызываю я и передаю данные как раз из программы написанной на Delphi в 1С Предприятие (некоторые реквизиты заношу в документ). Но не знаю как мне после этого напечатать этот же документ в 1С именно через OLE Задача может показаться бредовой, но вот начальник хочет чтоб было именно так. |
|||
6
v_rtex
13.07.09
✎
17:09
|
пусть начальник учет ведет на дельфи и забудет про 1С..
|
|||
7
Serginio1
13.07.09
✎
17:13
|
Посмотри если в документе при открытии вызов печати, тода вызывай открыть форму с параметрами, если нет то сделай отчет либо метод для печати .
Посмотри Задание условия в запросе через OLE |
|||
8
Ёпрст
гуру
13.07.09
✎
17:14
|
(5) см. (2).
|
|||
9
rino
13.07.09
✎
17:15
|
в том то и дело, что это начальник делает так как хочет заказчик, заказчик ведет учет в 1С бухгалтерии по студгородку. А вот поселение хочет делать в программе которую умники на делфи написали. Вот теперь получается, половина функционала там, половина здесь, а я голову ломаю.
|
|||
10
v_rtex
13.07.09
✎
17:16
|
(9) см. (7): там дело написано, но надо чуток подправить форму документа, процедуру ПриОткрытии()
|
|||
11
Serginio1
13.07.09
✎
17:21
|
Да не забудь, что Delphi методами вызывает с параметрами по ссылке.
Иногда это не проходит, особенно для строк. Как вариант вызывать из одельной процедуры передав параметр как const. |
|||
12
Serginio1
13.07.09
✎
17:40
|
+11 либо Передавай как ''+Параметр. Тогда Delphi сформирует вызов по значению.
|
|||
13
Torquader
13.07.09
✎
21:30
|
Не знаю, как у вас там в Delphi, но в Visual Basic никаких проблем нет:
' создаём "наше чудо" Set Ole1C=CreateObject("V77.Application") ' не забываем, что надо выполнить инициализацию if Ole1C.Initialize(Ole1C.rmTrade,InitString,"NO_SPLASH_SHOW")=1 then Set Doc=Ole1C.CreateObject("Document.ПростоДокумент") Doc.New() ' можно повторить для каждого реквизита ' если поле записано латинскими буквами, то можно Doc.FieldName ' если русскими, то не каждый язык это потерпит ' но всегда есть выход Doc.SetAttrib("ПростоРеквизит",ValueForSet) ' сохраняем документ в базе Doc.Write() ' открываем форму со специальным параметром Ole1C.OpenFormModal(Doc.CurrentDocument(),"Ole:Печать") ' завершаем работу 1С корректно Ole1C.ExitSystem() end if В модуле формы документа в 1С должно быть: // предопределённая процедура, которая вызывается при открытии нашей формы Процедура ПриОткрытии() // здесь должен выполняться код, который создаёт какие-то объекты формы // которые могут нам понадобиться при печати // // проверим, что открыли форму в модальном режиме Если МодальныйРежим()=1 Тогда Если Форма.Параметр="Ole:Печать" Тогда // вызываем нашу процедуру, которая выполняет печать ВыполнитьПечать(); // сообщаем системе, что форму открывать не надо СтатусВозврата(0); // и завершаем выполнение Возврат; КонецЕсли; КонецЕсли; // здесь далее будет идти обычный код // который выполняется при открытии документа // и создаёт объекты необходимые для работы с формой документа, // но которые для печати не нужны КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |