Печать тонкий клиент в одном вызове

1. s1koka 15.09.17 09:19 Сейчас в теме
Подскажите как упростить печать
     &НаКлиенте
Процедура пэ_Ценник(Команда)
	
	
	ТабДок = Новый ТабличныйДокумент;
	
	ПечатьНаСервереЦенник(ТабДок);
	
	ФормаПечати = ПолучитьФорму("ОбщаяФорма.ПечатьДокументовУпр");
	ФормаПечати.ТекущаяПечатнаяФорма = Таб;
	
	ФормаПечати.Открыть();
	
КонецПроцедуры


&НаСервере 
Процедура ПечатьНаСервереЦенник(Таб)
	... код вывода на печать в таб док
КонецПроцедуры

Показать


при таком коде 2 вызова сервера сама процедура и получение формы, подскажите как всё в одном вызове сделать?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. japopov 68 15.09.17 10:17 Сейчас в теме
(1) Переносите всё на сервер, пусть функция всё там собирает и возвращает форму.
Вот тут идея, как: https://infostart.ru/public/671436/
3. s1koka 15.09.17 11:03 Сейчас в теме
(2) я видел эту статью) но смотрел в неё как потерянный.
8. japopov 68 15.09.17 15:13 Сейчас в теме
(3) Ох... Ну, так:
&НаКлиенте
Процедура пэ_Ценник(Команда)
    
    ФормаПечати = ПолучитьФормуСВыведеннымиЦенниками();
    ФормаПечати.Открыть();
    
КонецПроцедуры

&НаСервере
Функция ПолучитьФормуСВыведеннымиЦенниками()
    
    ТабДок = Новый ТабличныйДокумент;
    
    ПечатьНаСервереЦенник(ТабДок);
    
    ФормаПечати = ПолучитьФорму("ОбщаяФорма.ПечатьДокументовУпр");
    ФормаПечати.ТекущаяПечатнаяФорма = Таб;

    Возврат ФормаПечати;
    
КонецФункции

&НаСервере 
Процедура ПечатьНаСервереЦенник(Таб)
    ... код вывода на печать в таб док
КонецПроцедуры

Показать


Попробуйте, взлетит? Если сможете переделать &НаСервере в &НаСервереБезКонтекста - будет вообще красота. Только это, разумеется, зависит от процедуры ПечатьНаСервереЦенник().
9. FirePyres 70 18.09.17 05:34 Сейчас в теме
(8) передаете с сервера на клиент форму? :)
И получить форму на сервере не получится.

Глобальный контекст (Global context)
ПолучитьФорму (GetForm)

Доступность:

Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).
10. japopov 68 18.09.17 08:22 Сейчас в теме
(9) Первое - получается, второе - не очень :-)
Как ни крути - два разных серверных вызова.
11. japopov 68 18.09.17 08:24 Сейчас в теме
(1) В общем, как в (9) написали, похоже, единственный выход: обработка события ПриСозданииНаСервере() в форме. Передавать в неё исходные параметры, чтобы она сама сделала всё и заполнила, что надо. Разумеется, если стандартная форма - смотреть её код этого обработчика и, если никак - то никак.
4. FirePyres 70 15.09.17 12:35 Сейчас в теме
Передать через параметры в форму данные для формирования печатной формы
И при её открытии сформировать

ПараметрыОткрытия = Новый Структура("ИмяПроцедуры, Ссылка", "ОбщийМодуль.ПечатьНаСервереЦенник", Объект.Ссылка);
ОткрытьФорму("ОбщаяФорма.ПечатьДокументовУпр", ПараметрыОткрытия)

---------------------- в общей форме


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Если Параметры.Свойство("ИмяПроцедуры") Тогда
		Выполнить(Параметры.ИмяПроцедуры+"(Параметры.Ссылка, ТекущаяПечатнаяФорма)");
	КонецЕсли;
КонецПроцедуры
Показать
5. s1koka 15.09.17 13:48 Сейчас в теме
(4) круто но я не документ печатаю а таблицу значений строки в которой и есть ценники, как мне её передать?
7. starik-2005 3033 15.09.17 14:26 Сейчас в теме
(5) таблицу значений можно юзать на клиенте, если она является реквизитом формы.
6. FirePyres 70 15.09.17 13:55 Сейчас в теме
Преобразовать ТаблицуЗначений в Массив структур

Массив = Новый Массив;
Для Каждого Стр из ТЗ Цикл
   Массив.Добавить(Новый Структура("Колонка1, Колонка2", Стр.Колонка1, Стр.Колонка2));
КонецЦикла;
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)