|
Вызов процедуры печати из обработки | ☑ | ||
|---|---|---|---|---|
|
0
1C2020
10.04.20
✎
11:46
|
Помогите, пожалуйста, начинающему.
Есть документ Поступление товаров с конструктором печати в модуле менеджера. Из команды формы обработки нужно вызвать эту процедуру. Чувствую, что ошибка прям на поверхности, а увидеть не могу. С таким кодом при нажатии на команду не происходит вообще ничего. В модуле формы обработки: &НаКлиенте Процедура Печать(Команда) ПечатьНаСервере(); КонецПроцедуры &НаСервере Процедура ПечатьНаСервере() ТабДок = Документы.ПоступлениеТоваров.ПолучитьМакет("Печать"); Ссылка = Новый Массив; Ссылка.Добавить(Документы.ПоступлениеТоваров.ПолучитьСсылку()); Документы.ПоступлениеТоваров.Печать(ТабДок, Ссылка); КонецПроцедуры В модуле менеджера документа: Процедура Печать(ТабДок, Ссылка) Экспорт //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать) Макет = Документы.ПоступлениеТоваров.ПолучитьМакет("Печать"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваров.Дата, | ПоступлениеТоваров.Номер, | ПоступлениеТоваров.Поставщик, | ПоступлениеТоваров.Склад, | ПоступлениеТоваров.СуммаДокумента, | ПоступлениеТоваров.Товары.( | НомерСтроки, | Номенклатура, | Количество, | Цена, | Сумма | ), | Контрагенты.Код КАК КодКонтрагента |ИЗ | Документ.ПоступлениеТоваров КАК ПоступлениеТоваров | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты | ПО ПоступлениеТоваров.Поставщик = Контрагенты.Ссылка |ГДЕ | ПоступлениеТоваров.Ссылка В(&Ссылка)"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка"); ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка"); ОбластьТовары = Макет.ПолучитьОбласть("Товары"); Подвал = Макет.ПолучитьОбласть("Подвал"); ТабДок.Очистить(); ВставлятьРазделительСтраниц = Ложь; Пока Выборка.Следующий() Цикл Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ТабДок.Вывести(ОбластьЗаголовок); Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень()); ТабДок.Вывести(ОбластьТоварыШапка); ВыборкаТовары = Выборка.Товары.Выбрать(); Пока ВыборкаТовары.Следующий() Цикл ОбластьТовары.Параметры.Заполнить(ВыборкаТовары); ТабДок.Вывести(ОбластьТовары, ВыборкаТовары.Уровень()); КонецЦикла; Подвал.Параметры.Заполнить(Выборка); ТабДок.Вывести(Подвал); ВставлятьРазделительСтраниц = Истина; КонецЦикла; //}} КонецПроцедуры |
|||
|
1
Momus
10.04.20
✎
11:50
|
ТабДок остается на сервере. Его нужно передать на клиент и показать()
|
|||
|
2
GGDots
10.04.20
✎
11:52
|
Конечно ничего не происходит. Ты просто в серверных процедурах работаешь с табличным документов и все. Тебе нужно в итоге вернуть табличныйдокумента на КЛИЕНТ и там уже его показать.
|
|||
|
3
GGDots
10.04.20
✎
11:57
|
Ссылка = Новый Массив;
Ссылка.Добавить(Документы.ПоступлениеТоваров.ПолучитьСсылку()); И ссылку ты просто получаешь новую - пустую? |
|||
|
4
GGDots
10.04.20
✎
11:59
|
И ТабДок = Документы.ПоступлениеТоваров.ПолучитьМакет("Печать"); У тебя макет а не табличный документ. Довольно таки странный код на первый взгляд.
|
|||
|
5
GGDots
10.04.20
✎
12:03
|
Если не справишься, напиши, могу помочь - че то немного скучно на удаленке)
|
|||
|
6
1C2020
10.04.20
✎
12:11
|
(5) Спасибо большое! Сейчас буду пробовать
|
|||
|
7
GGDots
10.04.20
✎
12:41
|
(6) Посмотри примерный алгоритм работы с табличным документом и макетов: https://craft1c.ru/1s-tablichnyjj-dokument/
Ну я прям уверен должен справиться! |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |