Как вывести сразу(!) на принтер ВПФ программно. УТ 11.4
Код, который выводит на экран. Как сразу на принтер?
Накл - массив реализаций
Накл - массив реализаций
&НаКлиенте
Процедура Печать1()
Накл = ВернутьНакладные(СпПар, ДатаНачала, ДатаКонца); // для всех
ВПФ = НайтиВПФ("Маршрутный лист");
Если ЗначениеЗаполнено(ВПФ) Тогда
ОбъектыНазначения = Новый Массив;
ОбъектыНазначения.Добавить(Накл);
ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника");
ПараметрыОткрытия.ИсточникДанных = ВПФ;
ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения");
ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = "МаршрутныйЛист";
ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = ОбъектыНазначения;
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция НайтиВПФ(ЧтоНайти)
Возврат Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ЧтоНайти);
КонецФункции
ПоказатьНайденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Товарищи подскажите, как при выводе ВПФ, добавить значение (дата отгрузки) из другого документа? вроде как через дополнительные параметры можно, но не могу врубиться пока
&НаКлиенте
Процедура Дополнение_МППисьмоКлиентуПосле(Команда) Экспорт
ВПФ = НайтиВПФ();
Если ВПФ.Пустая() Тогда
Возврат;
КонецЕсли;
ОбъектыНазначения = Новый Массив;
ОбъектыНазначения.Добавить(Объект.ДокументОснование);
ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника");
ПараметрыОткрытия.ИсточникДанных = ВПФ;
ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения");
ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = "СчетСпецификация_для_заказчика_отгрузка";
ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = ОбъектыНазначения;
ТабДок = ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия).ПечатнаяФорма1;
ТабДок.Записать(КаталогФайла+"ИмяФайла.PDF", ТипФайлаТабличногоДокумента.PDF);
КонецПроцедуры
&НаКлиенте
Процедура Дополнение_МППисьмоКлиентуПосле(Команда) Экспорт
ВПФ = НайтиВПФ();
Если ВПФ.Пустая() Тогда
Возврат;
КонецЕсли;
ОбъектыНазначения = Новый Массив;
ОбъектыНазначения.Добавить(Объект.ДокументОснование);
ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника");
ПараметрыОткрытия.ИсточникДанных = ВПФ;
ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения");
ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = "СчетСпецификация_для_заказчика_отгрузка";
ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = ОбъектыНазначения;
ТабДок = ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия).ПечатнаяФорма1;
ТабДок.Записать(КаталогФайла+"ИмяФайла.PDF", ТипФайлаТабличногоДокумента.PDF);
КонецПроцедуры
(5) А зачем вообще её вызывать? Если ВПФ формирует табличный документ, то пусть сразу и отправляет на принтер или если нельзя в ней такое делать, то уже возвращенный табличный документ отправить на принтер, а не открывать общую форму.
Ну либо смотрите в сторону:
Ну либо смотрите в сторону:
// Распечатаем
РаспечататьТабличныеДокументы(ПечатныеФормы.ТабличныеДокументы, ПечатныеФормы.ОбъектыПечати);
(6)
ВПФ используется и в обычном режиме тоже.
РаспечататьТабличныеДокументы(ПечатныеФормы.ТабличныеДокументы
Тут параметром уже готовый список ТД? Где б его взять
Если ВПФ формирует табличный документ, то пусть сразу и отправляет на принтер или если нельзя в ней такое делать
ВПФ используется и в обычном режиме тоже.
РаспечататьТабличныеДокументы(ПечатныеФормы.ТабличныеДокументы
Тут параметром уже готовый список ТД? Где б его взять
Может и не то, в БСП наверняка есть такая процедура (а может и нет). Я бы просто нашел программно ВПФ, вызвал бы процедуру формирования ТД и уже его отправил бы на печать.
С БСП, либо надо знать, либо это должно гуглиться просто.
С БСП, либо надо знать, либо это должно гуглиться просто.
(14) она экспортная. И что?
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыПечати) Экспорт
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"МаршрутныйЛист",
НСтр("ru = 'Маршрутный лист'"),
СформироватьПечатнуюФормуМЛ(МассивОбъектов, ОбъектыПечати, ПараметрыПечати),
,
"МаршрутныйЛист");
КонецПроцедуры
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыПечати) Экспорт
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"МаршрутныйЛист",
НСтр("ru = 'Маршрутный лист'"),
СформироватьПечатнуюФормуМЛ(МассивОбъектов, ОбъектыПечати, ПараметрыПечати),
,
"МаршрутныйЛист");
КонецПроцедуры
(18) на ИТС доступа нет ?
ОбъектыПечати
Список значений, в котором обработчик печати устанавливает соответствие между объектами и именами областей печати табличного документа: значение – Объект, представление – имя области, в которой был выведен объект
ПараметрыПечати
Дополнительные параметры печати, переданные из модуля команды
В большинстве случаев ОбъектыПечати - это пустой список значений, а ПараметрыПечати - пустая структура
ОбъектыПечати
Список значений, в котором обработчик печати устанавливает соответствие между объектами и именами областей печати табличного документа: значение – Объект, представление – имя области, в которой был выведен объект
ПараметрыПечати
Дополнительные параметры печати, переданные из модуля команды
В большинстве случаев ОбъектыПечати - это пустой список значений, а ПараметрыПечати - пустая структура
(19) Это стандартные параметры, которые передает БСП, для возможности печати (если разработчик предусмотрел), возможно кроме массиваОбъектов там в принципе ничего не используется и передать можно неопределено. Можно по коду посмотреть использование этих параметров.
(20) вроде близок к победе, но
при попытке создать валиться на безопасном режиме. В новом релизе платформы нужно как-то по особому отключать безопасный режим у внешних обработок? По сути-то я тут экземпляр создаю
ДвоичныеДанные = ВПФ.ХранилищеОбработки.Получить();
ИмяФайла = ПолучитьИмяВременногоФайла("epf");
ДвоичныеДанные.Записать(ИмяФайла);
ВнешняяОбработка = ВнешниеОбработки.Создать(ИмяФайла);
ТД = ВнешняяОбработка.СформироватьПечатнуюФормуМЛ(Накл, Неопределено, Неопределено);
ТД.Показать();
при попытке создать валиться на безопасном режиме. В новом релизе платформы нужно как-то по особому отключать безопасный режим у внешних обработок? По сути-то я тут экземпляр создаю
(21)
ВнешниеОбработкиМенеджер (ExternalDataProcessorsManager)
Подключить (Connect)
Синтаксис:
Подключить(<Путь>, <Имя>, <БезопасныйРежим>, <ЗащитаОтОпасныхДействий>)
Параметры:
<Путь> (обязательный)
Тип: Строка.
Ссылка на реквизит объекта конфигурации, который содержит данные внешней обработки. Ссылка может быть получена методом ПолучитьНавигационнуюСсылку.
<Имя> (необязательный)
Тип: Строка.
Имя внешней обработки, с которым она будет зарегистрирована в системе.
Наличие одинаковых имен в процессе работы сеанса не допускается. Если имя не указано, будет использовано имя, содержащееся в самой обработке.
<БезопасныйРежим> (необязательный)
Тип: Булево, Строка.
Признак подключения внешней обработки в безопасном режиме. Если параметр не указан, подключение будет осуществлено в безопасном режиме.
Если указана строка, то внешняя обработка будет исполняться в безопасном режиме под управлением профиля безопасности с этим именем. Профиль безопасности должен иметь SafeModeProfile=Истина.
Значение по умолчанию: Истина.
<ЗащитаОтОпасныхДействий> (необязательный)
Тип: ОписаниеЗащитыОтОпасныхДействий.
Структура, описывающая параметры защиты от опасных действий для подключаемого модуля.
Возвращаемое значение:
Тип: Строка.
Описание:
Выполняет подключение внешней обработки по указанному пути.
Возвращает имя подключенной внешней обработки. Показать
А дальше уже
ВнешняяОбработка = ВнешниеОбработки.Создать(ЗарегистрированноеИмя);
ВнешниеОбработкиМенеджер (ExternalDataProcessorsManager)
Подключить (Connect)
Синтаксис:
Подключить(<Путь>, <Имя>, <БезопасныйРежим>, <ЗащитаОтОпасныхДействий>)
Параметры:
<Путь> (обязательный)
Тип: Строка.
Ссылка на реквизит объекта конфигурации, который содержит данные внешней обработки. Ссылка может быть получена методом ПолучитьНавигационнуюСсылку.
<Имя> (необязательный)
Тип: Строка.
Имя внешней обработки, с которым она будет зарегистрирована в системе.
Наличие одинаковых имен в процессе работы сеанса не допускается. Если имя не указано, будет использовано имя, содержащееся в самой обработке.
<БезопасныйРежим> (необязательный)
Тип: Булево, Строка.
Признак подключения внешней обработки в безопасном режиме. Если параметр не указан, подключение будет осуществлено в безопасном режиме.
Если указана строка, то внешняя обработка будет исполняться в безопасном режиме под управлением профиля безопасности с этим именем. Профиль безопасности должен иметь SafeModeProfile=Истина.
Значение по умолчанию: Истина.
<ЗащитаОтОпасныхДействий> (необязательный)
Тип: ОписаниеЗащитыОтОпасныхДействий.
Структура, описывающая параметры защиты от опасных действий для подключаемого модуля.
Возвращаемое значение:
Тип: Строка.
Описание:
Выполняет подключение внешней обработки по указанному пути.
Возвращает имя подключенной внешней обработки.
А дальше уже
ВнешняяОбработка = ВнешниеОбработки.Создать(ЗарегистрированноеИмя);
финальный код
накл - массив накладных
ВПФ - ссылка на справочник допобработок
&НаСервере
Функция НапечататьВПФ(ВПФ, Накл)
ДвоичныеДанные = ВПФ.ХранилищеОбработки.Получить();
ИмяФайла = ПолучитьИмяВременногоФайла("epf");
ДвоичныеДанные.Записать(ИмяФайла);
ВН = ВнешниеОбработки.Создать(ИмяФайла, Ложь);
ТД = ВН.СформироватьПечатнуюФормуМЛ(Накл, Новый СписокЗначений, Новый Структура);
Возврат ТД;
накл - массив накладных
ВПФ - ссылка на справочник допобработок
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот