Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Как и всегда.Внешняя обработка.

Как и всегда.Внешняя обработка.
Я
   Slava685
 
09.09.16 - 11:21
Никак не могу вывести форму.Я ещё чайник в 1с и поэтому прошу помощи.
Есть код.
В модуле объекта

Функция Печать(ТекДок) Экспорт
    ТекДок = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("Макет");
    
        ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
    ОбластьШапки.Параметры.Дата = СсылкаНаОбъект.Дата;
    ОбластьШапки.Параметры.Номер = СсылкаНаобъект.Номер;
        
        Текдок.Вывести(ОбластьШапки);
    
КонецФункции

    

И всё это я экспортирую на сервер через кнопку    



&НаСервере
Функция ПоказатьФормуНаСервере(ТекДок)
            
        ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
    ОбработкаОбъект.Печать("Макет");    
ТекДок.Показать("Макет");
КонецФункции


&НаКлиенте
Процедура ПоказатьФорму(Команда)
    ПоказатьФормуНаСервере("ФормаПропуск");
    
КонецПроцедуры


Ошибка такая
{ВнешняяОбработка.Пропускная.Форма.ФормаПропуск.Форма(15)}: Значение не является значением объектного типа (Показать)
ТекДок.Показать("Макет");

Не пойму как вывести на сервере
 
 
   Dmitrith
 
1 - 09.09.16 - 11:24
На сервере некому показывать твой макет. У сервера нет глаз.
   Slava685
 
2 - 09.09.16 - 11:27
Значит я так понимаю это делается на клиенте?
   artems
 
3 - 09.09.16 - 11:28
Передай с сервера на клиент и покажи.
   Slava685
 
4 - 09.09.16 - 11:32
В том то и дело я не понимаю как.
   LordCMEPTb
 
5 - 09.09.16 - 11:33
Либо в функции модуля объекта менять входящий параметр на "ИмяМакета", который использовать при "ПолучитьМакет", а затем возвращать ТекДок, либо в вызове этой функции передавать ТекДок, а не имя макета.
Ну и надо иметь ввиду, что показать табличный документ можно только на клиенте, а формируется он на сервере.
   Slava685
 
6 - 09.09.16 - 11:33
&НаСервере
Функция ПоказатьФормуНаСервере(ТекДок)
    
        ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
КонецФункции


&НаКлиенте
Функция ПоказатьФорму(ТекДок,Команда)
    ПоказатьФормуНаСервере("ФормаПропуск");
         ТабДок = Новый ТабличныйДокумент;

    
КонецФункции

Теперь ошибок не выдаёт,но печать не выводит))))
   sitex
 
7 - 09.09.16 - 11:34
(6) в функцию то возврат то добавь. И может ты процедуру и функцию местами поменяешь в итоге
   sitex
 
8 - 09.09.16 - 11:35
(6) перечитай еще раз пост (1)
   Slava685
 
9 - 09.09.16 - 11:36
Секунду
   Slava685
 
10 - 09.09.16 - 11:37
(7) На сервере процедура а на клиенте функция?
 
 Рекламное место пустует
   artems
 
11 - 09.09.16 - 11:38
Логика такая

&НаСервере
Функция СформироватьТабДок()
  // Формируешь табличный документ
   ....
   ....
   Возврат ТабДок;
КонецФункции

&НаКлиенте
Процедура ПоказатьТабДок()

   Табдок = СформироватьТабДок();
   ТабДок.Показать();

КонецПроцедуры
   Slava685
 
12 - 09.09.16 - 11:46
(11) Таб.Док.Показать(Какой параметр должен здесь стоять??)
   Метранпаж
 
13 - 09.09.16 - 11:47
(12) Можно никакого.
А вообще - ну прочти справку.
Или тебе сюда скопировать кусок?
   Slava685
 
14 - 09.09.16 - 11:47
(11) Макет?Потому что значение не является объектного типа.
   Slava685
 
15 - 09.09.16 - 11:50
Хочу всё таки разобраться.У нас с модуля возвращается ТекДок.Теперь мне его нужно сформировать на сервере.Потом кинуть на клиент.Я понимать понимаю а как написать не знаю.Полный булщит.Как мне сформировать на сервере?До клиента ещё рановато.Нужно разобраться с сервером.

&НаСервере
Функция ПоказатьФормуНаСервере(ТекДок)
        
        ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
        Возврат ТекДок;
КонецФункции


&НаКлиенте
Функция ПоказатьФорму(ТабкДок,Команда)
    ТекДок = ПоказатьФормуНаСервере(Текдок);
     ТекДок.Показать();
КонецФункции
   Slava685
 
16 - 09.09.16 - 11:52
Сижу с книгой 1с но вижу огромный просто ФИГ
   Метранпаж
 
17 - 09.09.16 - 11:54
&НаСервере 
Функция ПоказатьФормуНаСервере(ТекДок)
        
        ОбработкаОбъект = РеквизитФормыВЗначение("Объект");

макет = ОбработкаОбъект.ПолучиьтМакет("Макет");
табДок = Новый ТабличныйДокумент;
табДок.Вывести(макет);

        Возврат ТабДок;
КонецФункции


&НаКлиенте
Функция ПоказатьФорму(ТабкДок,Команда)
    ТабДок = ПоказатьФормуНаСервере(Текдок);
     ТабДок.Показать();
КонецФункции
   Slava685
 
18 - 09.09.16 - 11:58
(17) На клиенте при вызове серверной функции выдаёт ошибку

{ВнешняяОбработка.Пропускная.Форма.ФормаПропуск.Форма(22,34)}: Переменная не определена (Текдок)
    ТабДок = ПоказатьФормуНаСервере(<<?>>Текдок); (Проверка: Тонкий клиент)
   Mankubus
 
19 - 09.09.16 - 12:00
(18) а может подумать а не тупо копипастить?
 ТабДок = ПоказатьФормуНаСервере(ТабкДок);
   sitex
 
20 - 09.09.16 - 12:01
(19) В это в точку!
   Slava685
 
21 - 09.09.16 - 12:02
(19) Я уже подумал и переделал)) Запускаю на платформе.Теперь там уже ошибка.

{ВнешняяОбработка.Пропускная.Форма.ФормаПропуск.Форма(16)}: Ошибка при вызове метода контекста (Вывести)
         табДок.Вывести("Макет");
по причине:
Несоответствие типов (параметр номер '1')

Что это за параметр?
   Slava685
 
22 - 09.09.16 - 12:03
Почему типы не соответствуют.И тут и там табличные доки.
   Метранпаж
 
23 - 09.09.16 - 12:04
(21) табДок.Вывести(макет);

откуда ты кавычки взял?
   Slava685
 
24 - 09.09.16 - 12:06
23 Упс.Привычка.
   Slava685
 
25 - 09.09.16 - 12:11
Не понимаю почему но он ругается на ТабДок.Показать();

&НаКлиенте
Функция ПоказатьФорму(ТабкДок,Команда)
    ТабДок = ПоказатьФормуНаСервере(ТабДок);
     ТабДок.Показать();
КонецФункции

Пишет что значение не является значением объектного типа (Показать)
     ТабДок.Показать(ТабДок);
   Slava685
 
26 - 09.09.16 - 12:12
Вбивал макет но бестолку.
   Slava685
 
27 - 09.09.16 - 12:16
Всё разобрался.У меня просто глаза обшиты.Спасибо большое всем вам)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует