Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
11 Дек 2017, 20:20
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Заставить PDFCreator объединить задания методом cCombineAll  (Прочитано 3722 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
В продолжение темы.
Решил вынести вопрос в отдельную тему. Бьюсь с этим делом уже второй день.

Итак, необходимо свернуть несколько заданий PDFCreator в одно. При чем так, чтобы пользователь не догадывался о существовании PDFCreator.

Есть метод cCombineAll, который теоретически должен это делать.
НО: если сразу до начала печати установить UseAutosave = 1, то происходит автосохранение каждого отдельного задания в файл и к моменту выполнения команды cCombineAll заданий уже нет.
Если же изначально установить UseAutosave = 0 и уже после выполнения cCombineAll изменить на 1, то вылезают стандартные окошки выбора действия, при чем, если там ничего не нажать, то и cCombineAll не отрабатывает.

Все что удается найти в интернете написано не в 1С и везде вроде как нормально отрабатывает вариант сначала UseAutosave = 1 потом cCombineAll.

Может кто сталкивался?
Что еще попробовать?




Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Добил!... :zebzdr:
Плохо когда нет нормальной документации с описанием значения методов и параметров (см рази два)
В общем надо было сначала установить cPrinterStop в 1, а потом уже в 0 (хотя "ручками" делается совсем наоборот).

в итоге код выглядит так:
ПринтерПоУмолчаниюРМВ = "PDFCreator";

// установим принтер по умолчанию
ТекущийПринтер = ПолучитьПринтерПоУмолчаниюРМВ();
УстановитьПринтерПоУмолчаниюРМВ(ПринтерПоУмолчаниюРМВ);

ПринтерПДФ = Новый COMОбъект("PDFCreator.clsPDFCreator");
ПринтерПДФ.cStart("/NoProcessingAtStartup");
ПринтерПДФ.cClearcache();
ПринтерПДФ.cPrinterStop = 1;

НаборОпций = ПринтерПДФ.cOptions();
НаборОпций.NoConfirmMessageSwitchingDefaultprinter = 1;
НаборОпций.UseAutosave = 1;
НаборОпций.UseAutosaveDirectory = 1;
НаборОпций.AutosaveFormat = 0; // PDF 
НаборОпций.AutosaveDirectory = КаталогВременныхФайлов();
НаборОпций.AutosaveFilename = Строка(Реализация.Ссылка.УникальныйИдентификатор()) + ".PDF";
НаборОпций.AutosaveStartStandardProgram = 0;

ПринтерПДФ.cOptions = НаборОпций;
ПринтерПДФ.cDefaultprinter = ПринтерПоУмолчаниюРМВ;

// бла-бла-бла (последовательная печать документов)

УстановитьПринтерПоУмолчаниюРМВ(ТекущийПринтер);
ПринтерПДФ.cDefaultprinter = ТекущийПринтер;

ПринтерПДФ.cCombineAll();
ПринтерПДФ.cPrinterStop = 0;

Счетчик = 0;
Пока ПринтерПДФ.cCountOfPrintjobs > 1 Цикл
Счетчик = Счетчик + 1;
ПринтерПДФ.cCombineAll();
Старт = ТекущаяДата();
Пока ТекущаяДата() <> Старт + 1 Цикл
КонецЦикла;
КонецЦикла;

Старт = ТекущаяДата();
Таймаут = 5;

Пока НЕ ЗначениеЗаполнено(ПринтерПДФ.cOutputFileName) ИЛИ (ТекущаяДата() - Старт < Таймаут) Цикл
КонецЦикла;

ПринтерПДФ.cClearcache();
ПринтерПДФ.cClose();
ПринтерПДФ = Неопределено;

пришлось добавить временные задержки, чтобы все нормально отрабатывало.

теперь вроде как все готово для тестовой эксплуатации. вопрос только в том, пойдет ли этот вариант с учетом временных задержек


Теги:
 

Как объединить объект в реквизите формы с типом "ДокументОбъект" и объект формы, созданной через "ПолучитьФорму()"?

Автор acces969Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 240
Последний ответ 06 Авг 2017, 21:22
от alex0402
Как удалить зависшее фоновое задание [фоновые задания] [фоновое задание] [снять зависший сеанс]

Автор MuI_I_IkaРаздел Администрирование 1с

Ответов: 0
Просмотров: 25542
Последний ответ 16 Июл 2014, 19:48
от MuI_I_Ika
Регламентные задания "Недопустимое значение параметра (параметр номер "1")

Автор pyvfРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 11
Просмотров: 17193
Последний ответ 27 Фев 2013, 11:57
от reshkra
Нужен пример задания по созданию внешней печатной формы)

Автор milaffkaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 1856
Последний ответ 12 Янв 2013, 10:23
от milaffka
можно ли узнать историю изменения расписания регламентного задания?

Автор sh_progrРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1060
Последний ответ 13 Апр 2015, 22:17
от MuI_I_Ika

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
163 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
36 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
28 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 349
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal