|
Метод недоступен на сервере | ☑ | ||
---|---|---|---|---|
0
falselight
30.11.17
✎
08:12
|
УТ 11.3 Делаю доработку обработки. Перенес в неё процедуры из
общего модуля. Но на одной процедуре выходит ошибка, - {Обработка.ПП_РабочийСтолУпаковщика.Форма.Форма.Форма(874)}: Ошибка при вызове метода контекста (Напечатать) ПакетОтображаемыхДокументов.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать); по причине: Метод недоступен на сервере Как это обойти? Пробовал у этой процедуры поставить &НаКлиенте, но эту процедура не находит тогда, пишет что она не определена! |
|||
1
falselight
30.11.17
✎
08:13
|
&НаКлиенте
Процедура СоздатьКоробку(Команда) ТекстПредупреждения = ""; СоздатьКоробкуНаСервере(ТекстПредупреждения); Если ЗначениеЗаполнено(ТекстПредупреждения) Тогда ПоказатьПредупреждение(,ТекстПредупреждения); КонецЕсли; МасУпакЛ = Новый Массив; МасУпакЛ.Добавить(ТекущаяКоробка); ПечатьЭтикетокУпаковочныхЛистовНаПринтер2(МасУпакЛ); КонецПроцедуры // Функция ПечатьЭтикетокУпаковочныхЛистовНаПринтер2(МасУпакЛ) СтруктураВозврата = УправлениеПечатьюУТВызовСервера.ДанныеДляПечатиЭтикетокУпаковочныеЛисты(МасУпакЛ); Если Не СтруктураВозврата.ЕстьШаблонЭтикетки Тогда ТекстСообщения = НСтр("ru = 'Не настроен общий шаблон этикетки упаковочного листа. Обратитесь к администратору.'"); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); КонецЕсли; Если НЕ СтруктураВозврата.ЕстьЭтикеткиДляПечати Тогда ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Печатная форма недоступна.'")); КонецЕсли; Если СтруктураВозврата.ЕстьЭтикеткиДляПечати И СтруктураВозврата.ЕстьШаблонЭтикетки Тогда ВыполнитьКомандуПечатиНаПринтер( "Обработка.ПечатьЭтикетокИЦенников", "ЭтикеткаУпаковочныеЛисты", МасУпакЛ, Новый Структура( "АдресВХранилище, ШаблонЭтикетки, КоличествоЭкземпляров", СтруктураВозврата.АдресВХранилище, СтруктураВозврата.ШаблонЭтикетки, 1)); КонецЕсли; КонецФункции // // Формирует и выводит на принтер печатные формы. // // Параметры: // ИмяМенеджераПечати - Строка - менеджер печати для печатаемых объектов; // ИменаМакетов - Строка - идентификаторы печатных форм; // МассивОбъектов - Ссылка, Массив - объекты печати; // ВладелецФормы - УправляемаяФорма - форма, из которой выполняется печать; // ПараметрыПечати - Структура - произвольные параметры для передачи в менеджер печати. // Процедура ВыполнитьКомандуПечатиНаПринтер(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати = Неопределено) Экспорт // Проверим количество объектов. Если НЕ ПроверитьКоличествоПереданныхОбъектов(МассивОбъектов) Тогда Возврат; КонецЕсли; // Сформируем табличные документы. #Если ТолстыйКлиентОбычноеПриложение Тогда ПечатныеФормы = УправлениеПечатьюВызовСервера.СформироватьПечатныеФормыДляБыстройПечатиОбычноеПриложение( ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати); Если НЕ ПечатныеФормы.Отказ Тогда ОбъектыПечати = Новый СписокЗначений; ТабличныеДокументы = ПолучитьИзВременногоХранилища(ПечатныеФормы.Адрес); Для Каждого ОбъектПечати Из ПечатныеФормы.ОбъектыПечати Цикл ОбъектыПечати.Добавить(ОбъектПечати.Значение, ОбъектПечати.Ключ); КонецЦикла; ПечатныеФормы.ОбъектыПечати = ОбъектыПечати; КонецЕсли; #Иначе ПечатныеФормы = УправлениеПечатьюВызовСервера.СформироватьПечатныеФормыДляБыстройПечати( ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати); #КонецЕсли Если ПечатныеФормы.Отказ Тогда ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Нет прав для вывода печатной формы на принтер, обратитесь к администратору.'")); Возврат; КонецЕсли; // Распечатаем РаспечататьТабличныеДокументы2(ПечатныеФормы.ТабличныеДокументы, ПечатныеФормы.ОбъектыПечати); КонецПроцедуры |
|||
2
Segate
30.11.17
✎
08:23
|
Передать ПакетОтображаемыхДокументов на клиент и там распечатать, не?
|
|||
3
falselight
30.11.17
✎
08:42
|
(2) Пишет процедура или функция с таким именем не определоена! Почему он её не видит?
Процедура РаспечататьТабличныеДокументы2(ТабличныеДокументы, ОбъектыПечати, Знач ПечататьКомплектами = Неопределено, Знач КоличествоКопийКомплектов = 1) ПечататьКомплектами = ТабличныеДокументы.Количество() > 1; ПакетОтображаемыхДокументов = УправлениеПечатьюВызовСервера.ПакетДокументов(ТабличныеДокументы, ОбъектыПечати, ПечататьКомплектами, КоличествоКопийКомплектов); ГоуГоу(ПакетОтображаемыхДокументов); //ПакетОтображаемыхДокументов.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать); КонецПроцедуры // &НаКлинете Процедура ГоуГоу(ПакетОтображаемыхДокументов) ПакетОтображаемыхДокументов.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать); КонецПроцедуры // <- |
|||
4
falselight
30.11.17
✎
08:44
|
&НаКлиенте попрачил правильно, все равно выдает ошибку
|
|||
5
igorPetrov
30.11.17
✎
09:08
|
(4) см(2)
|
|||
6
falselight
30.11.17
✎
09:21
|
(5) Как передать на клиент?
Все выполняется в модуле формы обраблотки. Я же передаю на клиент ГоуГоу(ПакетОтображаемыхДокументов); //ПакетОтображаемыхДокументов.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать); КонецПроцедуры // &НаКлинете Процедура ГоуГоу(ПакетОтображаемыхДокументов) ПакетОтображаемыхДокументов.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать); КонецПроцедуры // <- |
|||
7
hhhh
30.11.17
✎
09:37
|
(6) невозможно в нашей с вами реальности передать управление с сервера на клиент.
|
|||
8
falselight
30.11.17
✎
09:48
|
(7) вы можете объяснить как нужно сделать?
И же использую инструкцию &НаКлиенте Он вообще перестает видеть это процедуру. Как нужно сделать? |
|||
9
igorPetrov
30.11.17
✎
09:55
|
(8) Нужно сделать правильно.
|
|||
10
falselight
30.11.17
✎
10:08
|
Подскажите как? Я перетащил процедуры из общего модула я обработку
|
|||
11
falselight
30.11.17
✎
10:11
|
(9)(2) Не обладаю знаниями, умениями, вот и пытаюсь у вас выяснить!
|
|||
12
igorPetrov
30.11.17
✎
10:13
|
(11) Пора уже обладать.
|
|||
13
falselight
30.11.17
✎
10:14
|
(12) Что я не так делаю? Вопрос же ясен!
|
|||
14
hhhh
30.11.17
✎
10:46
|
(13) ну в типовой любой посмотрите, как печатают. У них же нет таких проблем. Зачем вы постоянно отсебятину начинаете гнать и не пользуетесь проверенными методиками? Постоянно что-то выдумываете и нас будоражите всякой фигней.
|
|||
15
Мимохожий Однако
30.11.17
✎
10:47
|
(13) Нельзя вызвать клиентскую процедуру из процедуры сервера. Это ясно. Как следствие: бездумное копирование процедур из общих модулей не всегда приводит к нужному результату.
|
|||
16
novichok79
30.11.17
✎
11:11
|
почему бы не сделать Процедура РаспечататьТабличныеДокументы2 функцией, которая возвращала бы ПакетОтображаемыхДокументов на клиент и выводила бы его уже в клиентской процедуре?
|
|||
17
falselight
30.11.17
✎
11:39
|
Да согласен. Извините что я так. Да простит меня бог за все и мои предки!!!!
|
|||
18
novichok79
30.11.17
✎
11:39
|
(17) да, ладно. не все так серьезно.
|
|||
19
falselight
30.11.17
✎
11:40
|
Решилось все вот так!!! Я щел не по правильному пути...
&НаКлиенте Процедура СоздатьКоробку(Команда) ТекстПредупреждения = ""; СоздатьКоробкуНаСервере(ТекстПредупреждения); Если ЗначениеЗаполнено(ТекстПредупреждения) Тогда ПоказатьПредупреждение(,ТекстПредупреждения); КонецЕсли; МасУпакЛ = Новый Массив; МасУпакЛ.Добавить(ТекущаяКоробка); СтруктураВозврата = УправлениеПечатьюУТВызовСервера.ДанныеДляПечатиЭтикетокУпаковочныеЛисты(МасУпакЛ); УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер( "Обработка.ПечатьЭтикетокИЦенников", "ЭтикеткаУпаковочныеЛисты", МасУпакЛ, Новый Структура( "АдресВХранилище, ШаблонЭтикетки, КоличествоЭкземпляров", СтруктураВозврата.АдресВХранилище, СтруктураВозврата.ШаблонЭтикетки, 1)); КонецПроцедуры |
|||
20
falselight
30.11.17
✎
11:40
|
(18) Не у меня серьезно, Очень. Психи...
|
|||
21
falselight
30.11.17
✎
11:41
|
(19+) То ест получается что из общего модуля нужно было взять только вот это, -
СтруктураВозврата = УправлениеПечатьюУТВызовСервера.ДанныеДляПечатиЭтикетокУпаковочныеЛисты(МасУпакЛ); УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер( "Обработка.ПечатьЭтикетокИЦенников", "ЭтикеткаУпаковочныеЛисты", МасУпакЛ, Новый Структура( "АдресВХранилище, ШаблонЭтикетки, КоличествоЭкземпляров", СтруктураВозврата.АдресВХранилище, СтруктураВозврата.ШаблонЭтикетки, 1)); И все работает! |
|||
22
novichok79
30.11.17
✎
11:45
|
(20) и все завертится, петля закрутится, сначала стерпится, потом полюбится (с) ГС
(21) аллилуйя! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |