| 
    
            
         
         | 
    
    
  | 
Тонкий клиент. Печать одного документа из другого. | ☑ | ||
|---|---|---|---|---|
| 
    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С дойдет до того, что на ассемблере надо будет писать.  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |