|
Программное проведение и вывод на печать | ☑ | ||
---|---|---|---|---|
0
Peshalkin
05.01.21
✎
18:54
|
Здравствуйте, столкнулся с такой проблемой(УФ), нужно при нажатии на кнопку, чтобы проверялись нужные данные и если всё отлично, вызывается функция, которая создаёт новый документ, заполняет в нём все данные, проводит его и после должен документ выводиться на печать, но проблема заключается в том, что на сервере не работает метод показать(Метод не доступен на сервере)(как я понимаю), но что-то не могу понять, как мне на клиенте вызвать печать, чтобы посмотреть на документ, который будет выведен на печать?
2 строчки кода в обработке, которые отвечают за проведение + печать(на сервере) Документ.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный); Документ.Печать(); и вот это находится в модуле документа ТабДок.Показать(); |
|||
1
rphosts
05.01.21
✎
18:56
|
(0) ответ очевиден - возвращай табличный документ на клиента (с которого по клику кнопки управление было передано на сервер)
|
|||
2
Peshalkin
05.01.21
✎
18:59
|
(1) проблема в том, что при нажатии на кнопку, создаётся документ в нём заполняются все реквизиты и он проводится, после выводится сразу на печать, не совсем понимаю, как мне это всё вернуть?
|
|||
3
rphosts
05.01.21
✎
19:05
|
Печать() - это функция или процедура?
|
|||
4
Peshalkin
05.01.21
✎
19:08
|
(3) Сначала идёт Документ = Документы.Документ.СоздатьДокумент();
После полное заполнение его и после заполнения, проведение и вызов печати. Печать() - она описана в модуле самого документа, кнопка печати грубо говоря и в модуле объекта в самом конце заполнения макета печати, написано ТабДок.Показать() Документ.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный); Документ.Печать(); |
|||
5
ДенисЧ
05.01.21
✎
19:08
|
&НаКлиенте
Процедура ПоКнопке(Кнопка) табДок = СоздатьНапечататьДокумент(); табДок.Показать(); КонецПроцедуры &НаСервере Функция СоздатьНапечататьДокумент() док = СоздатьНовыйДокументКакНадо(); Если Проверить(док) Тогда док.Записать(РежимЗаписиДокумента.Проведение); Возврат док.ФункцияПечати(); Иначе Возврат Новый ТабличныйДокумент; КонецЕсли; КонецФункции |
|||
6
rphosts
05.01.21
✎
19:14
|
(5) это называется медвежья услуга. Он ведь нифига ничему не научился
|
|||
7
Peshalkin
05.01.21
✎
19:17
|
(5) так, ошибка же тогда будет, что значение не будет являться значением объектного типа? уже пытался так
|
|||
8
Peshalkin
05.01.21
✎
19:19
|
Вот мой код, который выполняется по нажатию кнопки
Если ПроверкаРеквизитов() = Ложь Тогда Если ЕстьПодсветка = 0 Тогда Док = Документы.ПриемТовараВСервис.СоздатьДокумент(); Док.Автор = Сотрудник; Док.Дата = ТекущаяДата(); Док.УстановитьНовыйНомер(); Док.Филиал = ФилРаб; Док.ДокументОснование = ДокументПродажи; Док.ФилиалПродажи = ДокументПродажи.Филиал; Док.ДанныеПоКлиенту = СтрШаблон("%1"+Символы.ПС+ "%2", ФИО, Адрес); Док.ТелефонДляОбращений = Объект.Телефон; Для каждого стр из Состав Цикл Добавление = Док.Состав.Добавить(); Добавление.SN = стр.SN; Добавление.Номенклатура = стр.Номенклатура; Добавление.ЦенаПродажи = стр.ЦенаПродажи; Добавление.ПричинаОбращения = стр.Причина; Запрос = Новый Запрос("ВЫБРАТЬ | ПродажаТовара.Себестоимость КАК Себестоимость |ИЗ | РегистрНакопления.ПродажаТовара КАК ПродажаТовара |ГДЕ | ПродажаТовара.Регистратор = &Регистратор | И ПродажаТовара.Номенклатура = &Номенклатура"); Запрос.УстановитьПараметр("Регистратор", ДокументПродажи); Запрос.УстановитьПараметр("Номенклатура",стр.Номенклатура); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Добавление.Себестоимость = Выборка.Себестоимость; КонецЦикла; Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный); Док.Печать(); КонецЦикла; Иначе Сообщить("Один из товаров списан в брак или находится в сервисе"); Возврат; КонецЕсли; Иначе Возврат; КонецЕсли; а есть код, который находится в модуле объекта данного документа(через конструктор печати сделан и доработан, для вывода более четкого), там у меня написано ТабДок.Показать() |
|||
9
rphosts
05.01.21
✎
19:23
|
(8) ты на (3) to` способен ответить или уже нет?
|
|||
10
Peshalkin
05.01.21
✎
19:25
|
(9) так я же в (4) ответил?
|
|||
11
rphosts
05.01.21
✎
19:47
|
(10) перепиши сделав функцию, не можешь переписать сделай подмену процедурой из расширения, не можешь по каким-то причинам сделать из расширения - сделай в своём коде аналог этой долбаной печати.
|
|||
12
Peshalkin
05.01.21
✎
19:53
|
(11) Благодарю, попробую последний вариант
|
|||
13
Peshalkin
05.01.21
✎
19:53
|
(11) остальные потому что пробовал и все равно та же ошибка возникала, которую я описывал ранее
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |