![]() |
Экспорт печатной формы акта и счета-фактуры в файл Есть внешняя обработка, которая формирует на основании счетов акты и счета-фактуры, а затем печатает их. Стоит задача помимо печати акта и СЧФ, еще и сохранять их в файлы в любом виде (в указанную директорию), пригодном для печати или отправки электронной почтой. Это реально? Если да, то буду благодарен за примерный код или любые ссылки и наводки. |
ТабДок.Записать("C:\My Documents\Таблица2.mxl"); Либо я чего то не понимаю? |
Раз обработка печатает табличные документы самостоятельно, пусть и сохраняет их ... в чем проблема? Метод Записать() Табличного документа... |
Спасибо, Друзья! Похоже, да, нужен метод Записать(). Я просто с 1С встречаюсь пару раз в полгода, поэтому плаваю. Доброго вам здоровьичка! |
готовое решение [url]http://infostart.ru/public/14180/[/url] . совершенно аналогичное - для сохранения в папку. |
Нет, видимо, я еще глуп и чего-то не понимаю. Вот кусок кода, который печатает акт: Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Ссылка РТУ |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.СчетНаОплатуПокупателю.Ссылка = &Счет"; Запрос.УстановитьПараметр("Счет", Счет.Ссылка); Результат = Запрос.Выполнить().Выбрать(); Если Результат.Следующий() Тогда Сообщить("Из данного счета уже делали реализацию"); Сообщить(Результат.РТУ); РТУ=Результат.РТУ; РТУ=РТУ.ПолучитьОбъект(); Иначе Сообщить("Создаём новую реализацию"); РТУ = Документы.РеализацияТоваровУслуг.СоздатьДокумент(); РТУ.Заполнить(Счет.Ссылка); НаименованиеДоговора= "Счет" + " № " + ОбщегоНазначения.ПолучитьНомерНаПечать(Счет) + " от " + Формат(Счет.Дата, "ДФ='дд ММ гггг'")+ " г."; НайтиДоговор = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(НаименованиеДоговора,,,Счет.Контрагент); Если Не НайтиДоговор.Пустая() Тогда РТУ.ДоговорКонтрагента=НайтиДоговор.Ссылка; КонецЕсли; РТУ.Дата = ТекущаяДата(); РТУ.ВидОперации=Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия; РТУ.Записать(РежимЗаписиДокумента.Проведение); КонецЕсли; //Если реализации нет // ТУТ ИДЕТ ПЕЧАТЬ ДОКУМЕНТА, ПЫТАЕМСЯ ЕГО СОХРАНИТЬ РТУ.Печать("Акт", 2, ИСТИНА, ИСТИНА); РТУ.Записать("C:\акт-1.mxl"); И на последней строке при выполнении этого участка кода получаю ошибку: Ошибка при вызове метода контекста (Записать) РТУ.Записать("C:\Акт-1.mxl"); по причине: Несоответствие типов (параметр номер '1') Что я делаю не так? |
Использую 1С:Предприятие 8.2 (8.2.16.368) |
[quote=Nikitz;27467752]Что я делаю не так?[/quote] Метод Записать() [u]Табличного документа[/u] пытаешься применить к объекту совсем другого типа |
А как же добраться до табличного документа и есть ли он здесь вообще? |
8-Nikitz > он вот здесь внутри спрятан РТУ.Печать("Акт", 2, ИСТИНА, ИСТИНА) |
(5) самое простое, процедуру Печать переделать на функцию и возвращать макет. но это, конечно, уже изменение конфигурации. без изменения конфигурации - вынести и переделать процедуру печати в обработку. |
9-roma n > ругается: Обращение к процедуре объекта как к функции (Печать) ТабДок = РТУ.Печать("Акт", 2, ИСТИНА, ИСТИНА); |
11-Nikitz > я бы тоже ругался. Кури (10) вдумчиво... |
Может я чего-то не понимаю, но если есть печатающийся файл, и нужен файл любого формата для e-mail и печати, то прямой путь к виртуальному PDF принтеру, и ничего курить не придется. |
13-i555 > то есть выбирать принтер каждый раз? тогда можно и через "Сохранить как..." ручками сохранять в нужную папку. 11-Nikitz > а можно отправлять по почте прямо из 1С, в 1С:"Управление торговлей", например, такое есть. |
13-i555 > +100500. Только вот как задать ИмяПринтера (а точнее двух принтеров - для реальной печати и для печати в PDF) при условии использования экспортной процедуры модуля объекта без её переделки? |
13-i555 > в обработке файла нет, нет макета. его в любом случае надо как-то сначала получить в обработку. |
14, 16> Одно из двух: или файла нет, или Сохранить как... Как работает обработка: печатает сама, или юзер нажимает кнопочку Печать - не знаю, но, думаю, нажимает. 15> Да, на два принтера печатать проблемно, вернее много курить надо. Но, если сначала напечатать на PDF принтер, то, что получится, можно потом печатать, как угодно. Недостаток - придется кнопочку Печать нажать два раза. Если это пересилит обкуривание, то да, согласен, надо курить дальше. |
нужен вменяемый 1с-ник, там на пол-часа-час делов максимум |
17-i555> Обработка работает без нажатия каких-либо кнопочек, участие человека недопустимо (вообще, бред — привлекать человека к задачам, которые должна делать машина). 18-lalex23> Слишком просто и неинтересно. |
19-Nikitz > Ну тогда у тебя 2 варианта - мало-мало изменить конфигурацию в части формирования печатной формы (чтоб можно было ТабДок заиметь). Я бы вносил изменения не (10), а одну строку в УниверсальныеМеханизмы.НапечататьДокумент (если используется типовая) - пригодится. - организовать формирование ТабДок непосредственно в своей обработке, без использования РТУ.Печать(... |
Текущее время: 17:26. Часовой пояс GMT +3. |