![]() |
|
Тонкий клиент. Печать одного документа из другого. | ☑ | ||
---|---|---|---|---|
0
palm1c
24.07.13
✎
14:53
|
Добрый день.
В тонком клиенте есть документ РКО. Мне нужно сделать, чтобы при нажатии на кнопку в РКО, создавался и печатался документ АктСверки. В Управляемой форме РКО, на клиенте вызываю ф-цию ПечатьАктаСверкиНаСервере, где создаю документ АктСверки, заполняю его, и пытаюсь напечатать. НашаТаб = ДокАкт.ПечатьАктаСверки(); Вываливается ошибка: Метод объекта не обнаружен (ПечатьАктаСверки) В модуле документа АктСверки есть Функция ПечатьАктаСверки() Экспорт Что я делаю не так? Сильно не бейте, я с тонким клиентом не очень дружу. |
|||
1
cw014
24.07.13
✎
14:56
|
В модуле объекта или модуле менеджера все таки?
|
|||
2
scanduta
24.07.13
✎
15:02
|
На клиенте нельзя вызвать процедуры модуля объекта
|
|||
3
cw014
24.07.13
✎
15:03
|
(2) клиенте вызываю ф-цию ПечатьАктаСверкиНаСервере, где создаю документ АктСверки
Кажется он свою серверную процедуру вызывает |
|||
4
palm1c
24.07.13
✎
15:05
|
(1) Объекта.
|
|||
5
palm1c
24.07.13
✎
15:05
|
(2,3) Серверная процедура, да.
|
|||
6
cw014
24.07.13
✎
15:06
|
(5) ДокАкт в отладчике какой тип имеет?
|
|||
7
palm1c
24.07.13
✎
15:07
|
(6) Сек..
|
|||
8
scanduta
24.07.13
✎
15:08
|
На сервере сначала получи объект, потом вызывай процедуру
|
|||
9
palm1c
24.07.13
✎
15:10
|
(8) Я его создаю. Нужно разве получать?
|
|||
10
palm1c
24.07.13
✎
15:12
|
(7)
Документ объект: Акт сверки взаиморасчетов Это я получил, правда, не в отладчике, а сообщение пользователю вывел. У меня дебаг не включен на сервере. Мда. Сейчас файловую сделаю. |
|||
11
olegves
24.07.13
✎
15:12
|
(8) чушь, надо создать команду для печати
(9) ссылка на акт сверки есть? |
|||
12
cw014
24.07.13
✎
15:14
|
Если в документе "Акт сверки взаиморасчетов" в модуле есть "Функция ПечатьАктаСверки() Экспорт", тогда странно конечно
|
|||
13
palm1c
24.07.13
✎
15:14
|
(11) Поподробнее насчет команда для печати? Ссылка есть, я его записываю перед тем, как печатать. Или о чём?
|
|||
14
palm1c
24.07.13
✎
15:15
|
В общем, создам файловую сейчас и буду дебажить. Напишу, что было, если что.
|
|||
15
olegves
24.07.13
✎
15:15
|
(4) ф-я печати д.б. в модуле менеджера с параметром Ссылка
|
|||
16
cw014
24.07.13
✎
15:15
|
(15) Не факт
|
|||
17
olegves
24.07.13
✎
15:16
|
(13) посмотри как у 1С в типовых (Торговля 11, Документооборот и проч)
|
|||
18
scanduta
24.07.13
✎
15:16
|
(9) Создать=Получить
НаСервере ДокОбъект=Документы.АвансовыйОтчет.СоздатьДокумент(); ДокОбъект.ИмяПроцедурыПечати(); |
|||
19
scanduta
24.07.13
✎
15:16
|
Только процедура должна быть эскпортной
|
|||
20
cw014
24.07.13
✎
15:16
|
(18) При чем тут авансовый отчет и акт сверки взаиморасчетов?
|
|||
21
scanduta
24.07.13
✎
15:17
|
(20) Это просто пример
|
|||
22
olegves
24.07.13
✎
15:17
|
(16) для тонкого клиента - фактее некуда
|
|||
23
palm1c
24.07.13
✎
15:17
|
(18) Так и есть, всё верно.
|
|||
24
cw014
24.07.13
✎
15:17
|
Код создания документа дай
|
|||
25
palm1c
24.07.13
✎
15:17
|
(22) Попробую, спасибо.
|
|||
26
cw014
24.07.13
✎
15:19
|
(22) Я могу в модуле менеджера сделать функцию, которая из ссылки будет получать объект и выполнять экспортную функцию модуля объекта
|
|||
27
olegves
24.07.13
✎
15:20
|
(18) (23)
ну я с вас угораю, друзья. Документ еще не записан, т.е. ссылка пустая, а вы про печать |
|||
28
cw014
24.07.13
✎
15:21
|
(27) Вообще то методы объекта в модуле объекта можно использовать...
|
|||
29
olegves
24.07.13
✎
15:23
|
(28) но не в процедурах НаКлиенте
|
|||
30
scanduta
24.07.13
✎
15:26
|
(29) Естественно друг для этого я и написал
НаСервере ДокОбъект=Документы.АвансовыйОтчет.СоздатьДокумент(); ДокОбъект.ИмяПроцедурыПечати(); |
|||
31
palm1c
24.07.13
✎
15:29
|
ДокАкт = Документы.АктСверкиВзаиморасчетов.СоздатьДокумент();
ДокАкт.ДатаОкончания = Объект.Дата; ДокАкт.ДатаНачала = НачалоМесяца(Объект.Дата); ДокАкт.Дата = ТекущаяДата(); ДокАкт.Организация = Объект.Организация; ДокАкт.ДоговорКонтрагента = Объект.ДоговорКонтрагента; ДокАкт.ЗаполнитьПоДаннымУправленческогоУчета(); ДокАкт.Записать(); НашеСообщение = Новый СообщениеПользователю; НашеСообщение.Текст = Строка(ДокАкт); НашеСообщение.Сообщить(); НашеСообщение.Текст = Строка(ТипЗнч(ДокАкт)); НашеСообщение.Сообщить(); НашаТаб = ДокАкт.ПечатьАкта(); КонецПроцедуры &НаКлиенте Процедура СоздатьИРаспечататьАктСверки(Команда) СоздатьИРаспечататьАктСверкиНаСервере(); КонецПроцедуры Это код, если что. |
|||
32
palm1c
24.07.13
✎
15:38
|
&НаСервере
Процедура СоздатьИРаспечататьАктСверкиНаСервере() ДокАкт = Документы.АктСверкиВзаиморасчетов.СоздатьДокумент(); ДокАкт.ДатаОкончания = Объект.Дата; ДокАкт.ДатаНачала = НачалоМесяца(Объект.Дата); ДокАкт.Дата = ТекущаяДата(); ДокАкт.Организация = Объект.Организация; ДокАкт.ДоговорКонтрагента = Объект.ДоговорКонтрагента; ДокАкт.ЗаполнитьПоДаннымУправленческогоУчета(); ДокАкт.Записать(); НашаТаб = ДокАкт.ПечатьАкта(); КонецПроцедуры &НаКлиенте Процедура СоздатьИРаспечататьАктСверки(Команда) СоздатьИРаспечататьАктСверкиНаСервере(); КонецПроцедуры |
|||
33
palm1c
24.07.13
✎
15:38
|
Что-то я не понял, что у меня не так, господа.
|
|||
34
cw014
25.07.13
✎
07:34
|
Тут только смотреть напрямую, нету такого метода или написан он с ошибкой. Скопируй название функции прямо из модуля
|
|||
35
Худой
25.07.13
✎
07:53
|
Маразм крепчает.
"НаКлиенте", "НаСервере", .... "На сервере сначала получи объект, потом вызывай процедуру" и т.д. и т.п. Зачем думание по всей этой бодяге перекладывать на программера? Скоро фирма 1С придумает "НаНебе", "НаЗемле", "НаСтуле", "ВПодвале" |
|||
36
cw014
25.07.13
✎
08:20
|
(35) Ага и СП такой "Доступность: на сервере, на клиенте, в подвале"
|
|||
37
Худой
25.07.13
✎
08:32
|
(36)Это уже должна система сама разруливать.
А то скоро 1С дойдет до того, что на ассемблере надо будет писать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |