0
- 26.10.2012 - 13:36
|
Есть внешняя обработка, которая формирует на основании счетов акты и счета-фактуры, а затем печатает их. Стоит задача помимо печати акта и СЧФ, еще и сохранять их в файлы в любом виде (в указанную директорию), пригодном для печати или отправки электронной почтой. Это реально? Если да, то буду благодарен за примерный код или любые ссылки и наводки. | |
1
- 26.10.2012 - 13:49
|
ТабДок.Записать("C:\My Documents\Таблица2.mxl"); Либо я чего то не понимаю? | |
2
- 26.10.2012 - 13:52
|
Раз обработка печатает табличные документы самостоятельно, пусть и сохраняет их ... в чем проблема? Метод Записать() Табличного документа... | |
3
- 26.10.2012 - 13:56
|
Спасибо, Друзья! Похоже, да, нужен метод Записать(). Я просто с 1С встречаюсь пару раз в полгода, поэтому плаваю. Доброго вам здоровьичка! | |
4
- 26.10.2012 - 16:11
|
готовое решение http://infostart.ru/public/14180/ . совершенно аналогичное - для сохранения в папку. | |
5
- 29.10.2012 - 10:35
|
Нет, видимо, я еще глуп и чего-то не понимаю. Вот кусок кода, который печатает акт: Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Ссылка РТУ |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.СчетНаОплатуПокупателю.Ссыл ка = &Счет"; Запрос.УстановитьПараметр("Счет", Счет.Ссылка); Результат = Запрос.Выполнить().Выбрать(); Если Результат.Следующий() Тогда Сообщить("Из данного счета уже делали реализацию"); Сообщить(Результат.РТУ); РТУ=Результат.РТУ; РТУ=РТУ.ПолучитьОбъект(); Иначе Сообщить("Создаём новую реализацию"); РТУ = Документы.РеализацияТоваровУслуг.СоздатьДокумент() ; РТУ.Заполнить(Счет.Ссылка); НаименованиеДоговора= "Счет" + " № " + ОбщегоНазначения.ПолучитьНомерНаПечать(Счет) + " от " + Формат(Счет.Дата, "ДФ='дд ММ гггг'")+ " г."; НайтиДоговор = Справочники.ДоговорыКонтрагентов.НайтиПоНаименован ию(НаименованиеДоговора,,,Счет.Контрагент); Если Не НайтиДоговор.Пустая() Тогда РТУ.ДоговорКонтрагента=НайтиДоговор.Ссылка; КонецЕсли; РТУ.Дата = ТекущаяДата(); РТУ.ВидОперации=Перечисления.ВидыОперацийРеализаци яТоваров.ПродажаКомиссия; РТУ.Записать(РежимЗаписиДокумента.Проведение); КонецЕсли; //Если реализации нет // ТУТ ИДЕТ ПЕЧАТЬ ДОКУМЕНТА, ПЫТАЕМСЯ ЕГО СОХРАНИТЬ РТУ.Печать("Акт", 2, ИСТИНА, ИСТИНА); РТУ.Записать("C:\акт-1.mxl"); И на последней строке при выполнении этого участка кода получаю ошибку: Ошибка при вызове метода контекста (Записать) РТУ.Записать("C:\Акт-1.mxl"); по причине: Несоответствие типов (параметр номер '1') Что я делаю не так? | |
6
- 29.10.2012 - 10:36
| Использую 1С:Предприятие 8.2 (8.2.16.368) | |
7
- 29.10.2012 - 11:10
| Метод Записать() Табличного документа пытаешься применить к объекту совсем другого типа | |
8
- 29.10.2012 - 12:40
| А как же добраться до табличного документа и есть ли он здесь вообще? | |
9
- 29.10.2012 - 12:58
|
8-Nikitz > он вот здесь внутри спрятан РТУ.Печать("Акт", 2, ИСТИНА, ИСТИНА) | |
10
- 29.10.2012 - 15:05
|
(5) самое простое, процедуру Печать переделать на функцию и возвращать макет. но это, конечно, уже изменение конфигурации. без изменения конфигурации - вынести и переделать процедуру печати в обработку. | |
11
- 29.10.2012 - 15:34
|
9-roma n > ругается: Обращение к процедуре объекта как к функции (Печать) ТабДок = РТУ.Печать("Акт", 2, ИСТИНА, ИСТИНА); | |
12
- 29.10.2012 - 15:45
| 11-Nikitz > я бы тоже ругался. Кури (10) вдумчиво... | |
13
- 29.10.2012 - 17:07
| Может я чего-то не понимаю, но если есть печатающийся файл, и нужен файл любого формата для e-mail и печати, то прямой путь к виртуальному PDF принтеру, и ничего курить не придется. | |
14
- 29.10.2012 - 17:13
|
13-i555 > то есть выбирать принтер каждый раз? тогда можно и через "Сохранить как..." ручками сохранять в нужную папку. 11-Nikitz > а можно отправлять по почте прямо из 1С, в 1С:"Управление торговлей", например, такое есть. | |
15
- 29.10.2012 - 17:14
| 13-i555 > +100500. Только вот как задать ИмяПринтера (а точнее двух принтеров - для реальной печати и для печати в PDF) при условии использования экспортной процедуры модуля объекта без её переделки? | |
16
- 29.10.2012 - 17:14
| 13-i555 > в обработке файла нет, нет макета. его в любом случае надо как-то сначала получить в обработку. | |
17
- 29.10.2012 - 17:39
|
14, 16> Одно из двух: или файла нет, или Сохранить как... Как работает обработка: печатает сама, или юзер нажимает кнопочку Печать - не знаю, но, думаю, нажимает. 15> Да, на два принтера печатать проблемно, вернее много курить надо. Но, если сначала напечатать на PDF принтер, то, что получится, можно потом печатать, как угодно. Недостаток - придется кнопочку Печать нажать два раза. Если это пересилит обкуривание, то да, согласен, надо курить дальше. | |
18
- 29.10.2012 - 20:14
| нужен вменяемый 1с-ник, там на пол-часа-час делов максимум | |
19
- 30.10.2012 - 08:30
|
17-i555> Обработка работает без нажатия каких-либо кнопочек, участие человека недопустимо (вообще, бред — привлекать человека к задачам, которые должна делать машина). 18-lalex23> Слишком просто и неинтересно. | |
20
- 30.10.2012 - 09:04
|
19-Nikitz > Ну тогда у тебя 2 варианта - мало-мало изменить конфигурацию в части формирования печатной формы (чтоб можно было ТабДок заиметь). Я бы вносил изменения не (10), а одну строку в УниверсальныеМеханизмы.НапечататьДокумент (если используется типовая) - пригодится. - организовать формирование ТабДок непосредственно в своей обработке, без использования РТУ.Печать(... | |
| Интернет-форум Краснодарского края и Краснодара |