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



Метод недоступен на сервере

Метод недоступен на сервере
Я
   falselight
 
30.11.17 - 08:12
УТ 11.3 Делаю доработку обработки. Перенес в неё процедуры из
общего модуля. Но на одной процедуре выходит ошибка, -

{Обработка.ПП_РабочийСтолУпаковщика.Форма.Форма.Форма(874)}: Ошибка при вызове метода контекста (Напечатать)
    ПакетОтображаемыхДокументов.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
по причине:
Метод недоступен на сервере


Как это обойти? Пробовал у этой процедуры поставить &НаКлиенте, но эту процедура не находит тогда, пишет что она не определена!
 
 
   falselight
 
1 - 30.11.17 - 08:13
&НаКлиенте
Процедура СоздатьКоробку(Команда)
    ТекстПредупреждения = "";
    СоздатьКоробкуНаСервере(ТекстПредупреждения);
    Если ЗначениеЗаполнено(ТекстПредупреждения) Тогда
        ПоказатьПредупреждение(,ТекстПредупреждения);
    КонецЕсли;
    МасУпакЛ = Новый Массив;
    МасУпакЛ.Добавить(ТекущаяКоробка);
    ПечатьЭтикетокУпаковочныхЛистовНаПринтер2(МасУпакЛ); 
КонецПроцедуры
//

Функция ПечатьЭтикетокУпаковочныхЛистовНаПринтер2(МасУпакЛ) 
    СтруктураВозврата = УправлениеПечатьюУТВызовСервера.ДанныеДляПечатиЭтикетокУпаковочныеЛисты(МасУпакЛ);
    Если Не СтруктураВозврата.ЕстьШаблонЭтикетки Тогда
        ТекстСообщения = НСтр("ru = 'Не настроен общий шаблон этикетки упаковочного листа. Обратитесь к администратору.'");
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
    КонецЕсли;
    Если НЕ СтруктураВозврата.ЕстьЭтикеткиДляПечати Тогда
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Печатная форма недоступна.'"));
    КонецЕсли;
    Если СтруктураВозврата.ЕстьЭтикеткиДляПечати И СтруктураВозврата.ЕстьШаблонЭтикетки Тогда
        ВыполнитьКомандуПечатиНаПринтер(
            "Обработка.ПечатьЭтикетокИЦенников",
            "ЭтикеткаУпаковочныеЛисты",
            МасУпакЛ,
            Новый Структура(
                "АдресВХранилище, ШаблонЭтикетки, КоличествоЭкземпляров",
                СтруктураВозврата.АдресВХранилище, СтруктураВозврата.ШаблонЭтикетки, 1));
    КонецЕсли;
КонецФункции
//

// Формирует и выводит на принтер печатные формы.
//

// Параметры:
//  ИмяМенеджераПечати - Строка - менеджер печати для печатаемых объектов;

//  ИменаМакетов       - Строка - идентификаторы печатных форм;
//  МассивОбъектов     - Ссылка, Массив - объекты печати;

//  ВладелецФормы      - УправляемаяФорма - форма, из которой выполняется печать;
//  ПараметрыПечати    - Структура - произвольные параметры для передачи в менеджер печати.

//
Процедура ВыполнитьКомандуПечатиНаПринтер(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати = Неопределено) Экспорт
    // Проверим количество объектов.

    Если НЕ ПроверитьКоличествоПереданныхОбъектов(МассивОбъектов) Тогда
        Возврат;
    КонецЕсли;
    // Сформируем табличные документы.

#Если ТолстыйКлиентОбычноеПриложение Тогда

    ПечатныеФормы = УправлениеПечатьюВызовСервера.СформироватьПечатныеФормыДляБыстройПечатиОбычноеПриложение(
            ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати);
    Если НЕ ПечатныеФормы.Отказ Тогда
        ОбъектыПечати = Новый СписокЗначений;
        ТабличныеДокументы = ПолучитьИзВременногоХранилища(ПечатныеФормы.Адрес);
        Для Каждого ОбъектПечати Из ПечатныеФормы.ОбъектыПечати Цикл
            ОбъектыПечати.Добавить(ОбъектПечати.Значение, ОбъектПечати.Ключ);
        КонецЦикла;
        ПечатныеФормы.ОбъектыПечати = ОбъектыПечати;
    КонецЕсли;
#Иначе

    ПечатныеФормы = УправлениеПечатьюВызовСервера.СформироватьПечатныеФормыДляБыстройПечати(
            ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати);
#КонецЕсли

    Если ПечатныеФормы.Отказ Тогда
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Нет прав для вывода печатной формы на принтер, обратитесь к администратору.'"));
        Возврат;
    КонецЕсли;
    // Распечатаем

    РаспечататьТабличныеДокументы2(ПечатныеФормы.ТабличныеДокументы, ПечатныеФормы.ОбъектыПечати);
КонецПроцедуры
   Segate
 
2 - 30.11.17 - 08:23
Передать ПакетОтображаемыхДокументов на клиент и там распечатать, не?
   falselight
 
3 - 30.11.17 - 08:42
(2) Пишет процедура или функция с таким именем не определоена! Почему он её не видит?

Процедура РаспечататьТабличныеДокументы2(ТабличныеДокументы, ОбъектыПечати, Знач ПечататьКомплектами = Неопределено, Знач КоличествоКопийКомплектов = 1) 
    ПечататьКомплектами = ТабличныеДокументы.Количество() > 1;
    ПакетОтображаемыхДокументов = УправлениеПечатьюВызовСервера.ПакетДокументов(ТабличныеДокументы,
        ОбъектыПечати, ПечататьКомплектами, КоличествоКопийКомплектов);
    ГоуГоу(ПакетОтображаемыхДокументов);
    //ПакетОтображаемыхДокументов.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);

КонецПроцедуры
//

&НаКлинете
Процедура ГоуГоу(ПакетОтображаемыхДокументов)
    ПакетОтображаемыхДокументов.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);    
КонецПроцедуры
// <-
   falselight
 
4 - 30.11.17 - 08:44
&НаКлиенте попрачил правильно, все равно выдает ошибку
   igorPetrov
 
5 - 30.11.17 - 09:08
(4) см(2)
   falselight
 
6 - 30.11.17 - 09:21
(5) Как передать на клиент?
Все выполняется в модуле формы обраблотки.
Я же передаю на клиент

ГоуГоу(ПакетОтображаемыхДокументов);
    //ПакетОтображаемыхДокументов.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);


КонецПроцедуры
//


&НаКлинете
Процедура ГоуГоу(ПакетОтображаемыхДокументов)
    ПакетОтображаемыхДокументов.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);    
КонецПроцедуры
// <-
   hhhh
 
7 - 30.11.17 - 09:37
(6) невозможно в нашей с вами реальности передать управление с сервера на клиент.
   falselight
 
8 - 30.11.17 - 09:48
(7) вы можете объяснить как нужно сделать?
И же использую инструкцию &НаКлиенте
Он вообще перестает видеть это процедуру. Как нужно сделать?
   igorPetrov
 
9 - 30.11.17 - 09:55
(8) Нужно сделать правильно.
   falselight
 
10 - 30.11.17 - 10:08
Подскажите как? Я перетащил процедуры из общего модула я обработку
 
 Рекламное место пустует
   falselight
 
11 - 30.11.17 - 10:11
(9)(2) Не обладаю знаниями, умениями, вот и пытаюсь у вас выяснить!
   igorPetrov
 
12 - 30.11.17 - 10:13
(11) Пора уже обладать.
   falselight
 
13 - 30.11.17 - 10:14
(12) Что я не так делаю? Вопрос же ясен!
   hhhh
 
14 - 30.11.17 - 10:46
(13) ну в типовой любой посмотрите, как печатают. У них же нет таких проблем. Зачем вы постоянно отсебятину начинаете гнать и не пользуетесь проверенными методиками? Постоянно что-то выдумываете и нас будоражите всякой фигней.
   МимохожийОднако
 
15 - 30.11.17 - 10:47
(13) Нельзя вызвать клиентскую процедуру из процедуры сервера. Это ясно. Как следствие: бездумное копирование процедур из общих модулей не всегда приводит к нужному результату.
   novichok79
 
16 - 30.11.17 - 11:11
почему бы не сделать Процедура РаспечататьТабличныеДокументы2 функцией, которая возвращала бы ПакетОтображаемыхДокументов на клиент и выводила бы его уже в клиентской процедуре?
   falselight
 
17 - 30.11.17 - 11:39
Да согласен. Извините что я так. Да простит меня бог за все и мои предки!!!!
   novichok79
 
18 - 30.11.17 - 11:39
(17) да, ладно. не все так серьезно.
   falselight
 
19 - 30.11.17 - 11:40
Решилось все вот так!!! Я щел не по правильному пути...

&НаКлиенте
Процедура СоздатьКоробку(Команда)
    ТекстПредупреждения = "";
    СоздатьКоробкуНаСервере(ТекстПредупреждения);
    Если ЗначениеЗаполнено(ТекстПредупреждения) Тогда
        ПоказатьПредупреждение(,ТекстПредупреждения);
    КонецЕсли;
    МасУпакЛ = Новый Массив;
    МасУпакЛ.Добавить(ТекущаяКоробка);
    СтруктураВозврата = УправлениеПечатьюУТВызовСервера.ДанныеДляПечатиЭтикетокУпаковочныеЛисты(МасУпакЛ);
    УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер(
            "Обработка.ПечатьЭтикетокИЦенников",
            "ЭтикеткаУпаковочныеЛисты",
            МасУпакЛ,
            Новый Структура(
                "АдресВХранилище, ШаблонЭтикетки, КоличествоЭкземпляров",
                СтруктураВозврата.АдресВХранилище, СтруктураВозврата.ШаблонЭтикетки, 1));
КонецПроцедуры
   falselight
 
20 - 30.11.17 - 11:40
(18) Не у меня серьезно, Очень. Психи...
   falselight
 
21 - 30.11.17 - 11:41
(19+) То ест получается что из общего модуля нужно было взять только вот это, -
    СтруктураВозврата = УправлениеПечатьюУТВызовСервера.ДанныеДляПечатиЭтикетокУпаковочныеЛисты(МасУпакЛ);
    УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер(
            "Обработка.ПечатьЭтикетокИЦенников",
            "ЭтикеткаУпаковочныеЛисты",
            МасУпакЛ,
            Новый Структура(
                "АдресВХранилище, ШаблонЭтикетки, КоличествоЭкземпляров",
                СтруктураВозврата.АдресВХранилище, СтруктураВозврата.ШаблонЭтикетки, 1));

И все работает!
   novichok79
 
22 - 30.11.17 - 11:45
(20) и все завертится, петля закрутится, сначала стерпится, потом полюбится (с) ГС
(21) аллилуйя!


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