|
Конфигурация с нуля на БСП. Как организовать печать? | ☑ | ||
---|---|---|---|---|
0
buketovav
09.07.19
✎
10:14
|
Добрый день, Уважаемые Форумчане!
Платформа - 1С:Предприятие 8.3 (8.3.13.1513). Библиотека стандартных подсистем (демо) 3.0.3.13 Конфигурация с нуля на БСП. Как организовать печать? В модуль формы документа добавил код: [CODE]&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма) КонецПроцедуры &НаКлиенте Процедура Подключаемый_ВыполнитьКомандуПечати(Команда) УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма, Объект) КонецПроцедуры[/CODE] В модуль менеджера документа добавил код: [CODE]Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Идентификатор = "ПФ_ПутевойЛист"; КомандаПечати.Представление = "Путевой лист (легковой)"; КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати"; КомандаПечати.СписокФорм = "ФормаСписка,ФормаДокумента"; КонецПроцедуры Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина; Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_ПутевойЛист") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПФ_ПутевойЛист", "ПФ_ПутевойЛист", СформироватьТабДок1(МассивОбъектов),"Документ.ПутевойЛист.ПФ_ПутевойЛист"); КонецЕсли; КонецПроцедуры Функция СформироватьТабДок1(МассивОбъектов) Ссылка = МассивОбъектов[0]; ТабДокумент = Новый ТабличныйДокумент; // ... // подготовка ТабДокумента // ... Макет = Документы.ПутевойЛист.ПолучитьМакет("ПФ_ПутевойЛист"); ОбластьШапка = Макет.ПолучитьОбласть("ОбластьШапка"); ОбластьОрганизация = Макет.ПолучитьОбласть("ОбластьОрганизация"); ОбластьЗаданиеВодителю = Макет.ПолучитьОбласть("ОбластьЗаданиеВодителю"); ОбластьДвижениеГорючего = Макет.ПолучитьОбласть("ОбластьДвижениеГорючего"); ОбластьОбратнаяСторона = Макет.ПолучитьОбласть("ОбластьОбратнаяСторона"); ТабДокумент.Вывести(ОбластьШапка); ТабДокумент.Вывести(ОбластьОрганизация); ТабДокумент.Вывести(ОбластьЗаданиеВодителю); ТабДокумент.Вывести(ОбластьДвижениеГорючего); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ТабДокумент.Вывести(ОбластьОбратнаяСторона); При этом команда печати на появляется в документе. Подскажите, как заставить работать Печать в данном случае. Заранее благодарю. Возврат ТабДокумент; КонецФункции[/CODE] |
|||
1
novichok79
09.07.19
✎
10:17
|
смотрите типовые, сделайте по аналогии
|
|||
2
novichok79
09.07.19
✎
10:32
|
||||
3
buketovav
09.07.19
✎
21:46
|
все сделал по инструкции БСП и получаю сообщение об ошибке - {ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(20)}: Значение не является значением объектного типа (АдресТаблицыКоманд)
АдресНастроек = Форма.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд; |
|||
4
PuhUfa
09.07.19
✎
21:52
|
(0) >> При этом команда печати на появляется в документе.
А на форме в КМ есть Подменю "ПодменюПечать"? |
|||
5
buketovav
09.07.19
✎
21:54
|
сейчас есть, но получаю ошибку
|
|||
6
PuhUfa
09.07.19
✎
22:00
|
У тебя печать же в менеджере документа?
Вот это не надо тогда КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати"; |
|||
7
buketovav
09.07.19
✎
22:06
|
да, в менеджере
#Область ПрограммныйИнтерфейс // Заполняет список команд печати. // // Параметры: // КомандыПечати – ТаблицаЗначений – состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати. // Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт // Путевой лист КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.МенеджерПечати = "Документ.ПутевойЛист"; КомандаПечати.Идентификатор = "ПФ_ПутевойЛист"; КомандаПечати.Представление = НСтр("ru = Путевой лист (легковой)'"); КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; КонецПроцедуры #КонецОбласти // Формирует печатные формы. // // Параметры: // МассивОбъектов – Массив – ссылки на объекты, которые нужно распечатать; // ПараметрыПечати – Структура – дополнительные настройки печати; // КоллекцияПечатныхФорм – ТаблицаЗначений – сформированные табличные документы (выходной параметр) // ОбъектыПечати – СписокЗначений – значение – ссылка на объект; // представление – имя области, в которой был выведен объект (выходной параметр); // ПараметрыВывода – Структура – дополнительные параметры сформированных табличных документов (выходной параметр). // Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт НужноПечататьМакет = УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_ПутевойЛист"); Если НужноПечататьМакет Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, "ПФ_ПутевойЛист", НСтр("ru = 'Путевой лист (легковой)'"), ПечатьПутевогоЛиста(МассивОбъектов, ОбъектыПечати), , "Документ.ПутевойЛист.ПФ_ПутевойЛист"); КонецЕсли; КонецПроцедуры Функция ПечатьПутевогоЛиста(МассивОбъектов, ОбъектыПечати) ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.КлючПараметровПечати = "ПараметрыПечати_ПутевойЛист"; ТабДокумент.АвтоМасштаб = Истина; Макет = Документы.ПутевойЛист.ПолучитьМакет("ПФ_ПутевойЛист"); ОбластьШапка = Макет.ПолучитьОбласть("ОбластьШапка"); ЗаполнитьЗначенияСвойств(ОбластьШапка.Параметры, ОбъектыПечати); ОбластьОрганизация = Макет.ПолучитьОбласть("ОбластьОрганизация"); ЗаполнитьЗначенияСвойств(ОбластьОрганизация.Параметры, ОбъектыПечати); ОбластьЗаданиеВодителю = Макет.ПолучитьОбласть("ОбластьЗаданиеВодителю"); ЗаполнитьЗначенияСвойств(ОбластьЗаданиеВодителю.Параметры, ОбъектыПечати); ОбластьДвижениеГорючего = Макет.ПолучитьОбласть("ОбластьДвижениеГорючего"); ЗаполнитьЗначенияСвойств(ОбластьДвижениеГорючего.Параметры, ОбъектыПечати); ОбластьОбратнаяСторона = Макет.ПолучитьОбласть("ОбластьОбратнаяСторона"); ЗаполнитьЗначенияСвойств(ОбластьОбратнаяСторона.Параметры, ОбъектыПечати); ТабДокумент.Вывести(ОбластьШапка); ТабДокумент.Вывести(ОбластьОрганизация); ТабДокумент.Вывести(ОбластьЗаданиеВодителю); ТабДокумент.Вывести(ОбластьДвижениеГорючего); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ТабДокумент.Вывести(ОбластьОбратнаяСторона); Возврат ТабДокумент; КонецФункции |
|||
8
buketovav
09.07.19
✎
22:08
|
а это в форме документа
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // СтандартныеПодсистемы.ПодключаемыеКоманды ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); // Конец СтандартныеПодсистемы.ПодключаемыеКоманды КонецПроцедуры // СтандартныеПодсистемы.ПодключаемыеКоманды &НаКлиенте Процедура Подключаемый_ВыполнитьКоманду(Команда) ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект); КонецПроцедуры &НаСервере Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат); КонецПроцедуры &НаКлиенте Процедура Подключаемый_ОбновитьКоманды() ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); КонецПроцедуры // Конец СтандартныеПодсистемы.ПодключаемыеКоманды &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) // СтандартныеПодсистемы.ПодключаемыеКоманды ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); // Конец СтандартныеПодсистемы.ПодключаемыеКоманды КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) // СтандартныеПодсистемы.ПодключаемыеКоманды ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); // Конец СтандартныеПодсистемы.ПодключаемыеКоманды КонецПроцедуры |
|||
9
buketovav
10.07.19
✎
10:57
|
или что-то неправильно я сделал?
|
|||
10
buketovav
10.07.19
✎
11:31
|
делал по этой инструкции - http://wiki.programstore.ru/dobavlenie-komand-pechati-v-konfiguracii-s-bsp/ - не работает
|
|||
11
RomaH
naïve
10.07.19
✎
11:38
|
(10) старьё
на ИТС смотри - но даже там есть неточности |
|||
12
RomaH
naïve
10.07.19
✎
11:40
|
УправлениеПечатьюПереопределяемый - добавить свой док не забыл?
|
|||
13
craxx
10.07.19
✎
11:43
|
(0) https://youtu.be/0RCSeojdjk4 - видео по работе с печатью с БСП
|
|||
14
RomaH
naïve
10.07.19
✎
11:46
|
(13) смешно - с какой минуты смотреть? - там 40 минут ... на ИТС две страницы текста...
ИТС не предлагать? |
|||
15
buketovav
10.07.19
✎
11:51
|
(12) добавил
|
|||
16
buketovav
10.07.19
✎
11:52
|
(14) по ИТС делал, не получилось. Попробую еще раз все с самого начала, возможно, что где-то что-то упускаю
|
|||
17
buketovav
10.07.19
✎
11:52
|
(11) вот поэтому и не получилось )))
|
|||
18
DrZombi
гуру
10.07.19
✎
12:00
|
(0) У БСП есть "секрет" про печатные формы.
Смотри в общий модуль "УправлениеПечатьюПереопределяемый", процедура "ПриОпределенииОбъектовСКомандамиПечати" Туда надо добавить код по примеру: СписокОбъектов.Добавить(Документы.СОГ_ВыдачаБСО); СписокОбъектов.Добавить(Документы.СОГ_РасходБСО); СписокОбъектов.Добавить(Документы.СОГ_ПеремещениеБСО); СписокОбъектов.Добавить(Документы.СОГ_ВводОстатокБСО); //Внимание Вариант объектов у тебя возможно другой, он зависит от БСП :) |
|||
19
DrZombi
гуру
10.07.19
✎
12:04
|
+ Вариант формата добавляемых объектов метаданных может быть другой...
К примеру ЗУП 3.1 и БП 3.0, по БСП очень отличаются в формате печатных форм и расположении этих процедур перечисления объектов :) |
|||
20
buketovav
10.07.19
✎
15:09
|
(18) это сделано давно, не помогает
|
|||
21
RomaH
naïve
10.07.19
✎
15:13
|
(20)
В модуль формы документа добавил код: [CODE]&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма) КонецПроцедуры &НаКлиенте Процедура Подключаемый_ВыполнитьК фишка в том, что у тебя "УправлениеПечатью" а сейчас - ПодключаемыеКонманды" открой уже ИТС |
|||
22
RomaH
naïve
10.07.19
✎
15:13
|
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // СтандартныеПодсистемы.ПодключаемыеКоманды ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); // Конец СтандартныеПодсистемы.ПодключаемыеКоманды КонецПроцедуры // СтандартныеПодсистемы.ПодключаемыеКоманды вижу ок - что отладчик показывает? |
|||
23
buketovav
10.07.19
✎
16:14
|
(22) непонятно где теперь тыкать точку останова...
как только нажимаю на печать, то сразу получаю ошибку - {ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(20)}: Значение не является значением объектного типа (АдресТаблицыКоманд) АдресНастроек = Форма.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд; |
|||
24
buketovav
10.07.19
✎
16:28
|
у меня был реквизит ПараметрыПодключаемыхКоманд только у него тип был указан "Строка". поменял его на Произвольный и все заработало
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |