Групповая печать документов и сохранение их на диск в любом доступном формате

Групповая печать документов и сохранение их на диск в любом доступном формате.
Тестировалось на бухгалтерии 2.0 для 8.2.  Условием было не менять и не снимать с поддержки саму конфигурацию.
Но если кто захочет переделать её для любой конфигурации — минут 10-15 и она будет работать у вас. Самое главное понять принцип её нехитрого функционирования. Данная обработка делалась для сохранения и дальнейшего подписания печатных форм документов из 1с в формате PDF электроной подписью. Обработка сделана на основе стандартной из 1с Бухгалтерии.

Групповая печать документов и сохранение их на диск в любом доступном формате.
Тестировалось на бухгалтерии 2.0 для 8.2.  Условием было не менять и не снимать с поддержки саму конфигурацию.
Но если кто захочет переделать её для любой конфигурации — минут 10-15 и она будет работать у вас. Самое главное понять принцип её нехитрого функционирования. Данная обработка делалась для сохранения и дальнейшего подписания печатных форм документов из 1с в формате PDF электроной подписью. Обработка сделана на основе стандартной из 1с Бухгалтерии.

Все форматы прописаны (mxl pdf xls и т.д.)

46 Comments

  1. 1psspam

    (0), автор, приветствую! А какую именно печатную форму обработка сохраняет? Их же может быть несколько. И печатная форма используется, встроенная в 1С или необходимо иметь внешнюю печатную форму?

    Reply
  2. PORGY3000

    (1) Сохраняет печатную форму которая у документа по умолчанию. Никаких внешних печатных форм не требуется. Конечно используется встроенная. Но если по умолчанию у документа установлена внешняя то сохраняется она (хотя со внешними я не проверял)

    Reply
  3. PORGY3000

    Обработка использует некую хитрость (хотя на самом деле все тривиально) для получения из обычной процедуры печати сам табличный документ (Видимо до этого пока никто не догадался, в том числе и я).А получив сформированный табличный документ, мы его можем сохранить в любом формате и делать с ним что угодно. (Отправить по почте, подписать эл. подписью и т.д.)

    Reply
  4. 1psspam

    (3) PORGY3000, раз догадался — держи плюс))) Искренне, Молодец. Качать пока не буду, самому интересно «догадаться» до этого.

    Reply
  5. PORGY3000

    Я получил неизгладимые впечатления когда догадался как это сделать.

    Reply
  6. sttt

    схитрил однако)))

    Reply
  7. PORGY3000

    (6) sttt, самое главное результат.

    Reply
  8. Hellgga

    Ваша обработка просто замечательная!

    Спасибо.

    Reply
  9. anna140331

    Выдает такую ошибку

    Ошибка при вызове метода контекста (Закрыть): Операция не доступна для не открытой формы

    Файл \tsclientD mpРеализацияТоваровУслугЭЛС00094 от 2013_04_29_12_00_05.PDF записан.

    Соответственно документ реализации не сохраняет. При этом со счетами и счетами-фактурами все в порядке. Помогите пож-та, чтобы это могла значить?

    Reply
  10. PORGY3000

    (9) anna140331, Попробуйте открыть этот документ вручную и открыть печатную форму по умолчанию на просмотр. Скорее всего она не откроется из-за ошибок в самой конфигурации. Или откроется но с пустым печатным документом.

    Reply
  11. anna140331

    Вы имеете ввиду открыть сам документ реализации? Открываю. Нажимаю на печать, выходит акт, заполненный полностью, который можно распечатать

    Reply
  12. PORGY3000

    Конфигурация без изменений ? Печ.форма документа Реализации по умолчанию внутренняя или внешняя ?

    Reply
  13. PORGY3000

    (11) anna140331, в предыдушем посте вы написали что \tsclientD mpРеализацияТоваровУслугЭЛС00094 от 2013_04_29_12_00_05.PDF записан. Вопрос это файл существует и что внутри него ?

    Reply
  14. anna140331

    Этот файл существует, но он пустой, в том то и дело. Счет и Счет-фактуру сохраняет, а акт пустой

    Reply
  15. anna140331

    Конфигурация без изменений. Пробовала в разных базах, результат тот же. Что значит печатная форма внутренняя или внешняя?

    Reply
  16. iov

    если есть желание «догадаться» то посмотрите как формируется список печатных форм для документа. Этим механизмом можно выбирать формы для печати. Удачи.

    Reply
  17. Hellgga

    Здравствуйте.

    Вот бы ещё сделать возможность выбора печатной формы…., как вот здесь:http://infostart.ru/public/95557/

    Reply
  18. PORGY3000

    (17) Hellgga, я уже связался с автором указанной вами обработки, и он в ближайшее время добавит этот функционал и в свою обработку тоже.

    Reply
  19. Hellgga

    🙂

    Reply
  20. CratosX

    Вроде такое есть в функционале БСП

    Reply
  21. PORGY3000

    (20) CratosX, Опишите что такое БСП , не в курсе…

    Reply
  22. PORGY3000

    Да погуглил немного и понял что БСП это 1С:Библиотека стандартных подсистем. Да пробел моего 15 летнего образования. Сорри. Ознакомлюсь с этим в ближайшее время. Да но у меня было условие не изменять и не снимать конфу с поддержки ибо обновление 50-60 конфигураций ставит на этом крест. А рисовать все печатные формы в обработке подобно аду. И поддерживать их от релиза к релизу тоже самое — ad. Поэтому появилось это благодаря моим познаниям в Delphi, Turbo Pascal for windows и прочим. И я рад что смог такую задачу решить такими минимальными усилиями с моей стороны.

    Reply
  23. CratosX

    (22) PORGY3000, да молодец, это конечно плюс. Хотя если бы знал о БСП, то проще было бы оттуда выдернуть во внешнюю обработку и вся беда

    Reply
  24. amon_ra

    Обработка подходит для абсолютно любой конфигурации?

    Reply
  25. dyak84

    Автор подскажите пожалуйста а как будет работать Ваша обработка в самописной конфигурации. И можно ли добавить новые форматы документов например DOC или другие. зарание спасибо за ответ.

    Reply
  26. PORGY3000

    Эти форматы уже добавлены. Просто на скриншоте их не видно.

    Reply
  27. undo

    Добавка выбора печатной формы для вида документа, актуальная вещь. и вместе с формой указать количество экземпляров документа.

    Reply
  28. Alfer

    поюзаю

    Reply
  29. dusya2055

    Очень удобная штука. Спасибо автору!

    Reply
  30. alex_makhnov

    Если по умолчанию у документа стоит внешня печатная форма, то сохраняются пустые файлы.

    Легко исправляется.

    А в остальном все удобно работает.

    Автору спасибо.

    Reply
  31. Indifference

    (30) alex_makhnov, Подскажите пожалуйста, как можно это исправить?

    Reply
  32. alex_makhnov

    (31) Indifference, в процедуре НапечататьДокументПоУмолчаниюСвоя() заменить

    Объект.Печать(СтрокаПоУмолчанию.Имя, 1,Ложь, Ложь);

    на

    Если ТипЗнч(СтрокаПоУмолчанию.Расшифровка) = Тип(«Структура») Тогда

    ТабДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(Объект.Ссылка, СтрокаПоУмолчанию.Расшифровка);

    УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ?(ЭтоДокумент, ОбщегоНазначения.СформироватьЗаголовокДокумента(Объект.Ссылка), Строка(Объект)), НепосредственнаяПечать);

    Иначе

    Объект.Печать(СтрокаПоУмолчанию.Имя, КоличествоЭкземпляров, НаПринтер, НепосредственнаяПечать);

    КонецЕсли;

    PS Это взято из типовой обработки.

    Просто автор слишком «упростил» процедуру…

    Reply
  33. Indifference

    (32) alex_makhnov, Огромное вам спасибо, все получилось!

    Reply
  34. alex_makhnov

    (33) Indifference, рад помочь))

    Reply
  35. Uplifted

    Добрый день! Подскажите, пожалуйста, не работает в КА 8.2 Пишет :

    «Произошли ошибки при подготовке печатной формы документа.

    Авансовый отчет 00000000003 от 31.01.2014 0:00:00″

    Очень очень нужно. Заранее спасибо!

    Reply
  36. folo

    Впечатлил перехват формы печати. Автору почет и уважение.

    Reply
  37. onsamuy

    (5) PORGY3000, я тоже получил такие впечатления, когда понял как это сделать. Но мы тут коллективным разумом дошли до этого, а Вы сами, респект!

    Reply
  38. Mihalich20

    Для БГУ адаптировал, но когда пытаюсь сохранить на диск, выдает такую ошибку

    {Форма.Форма.Форма(1852)}: Ошибка при вызове метода контекста (Закрыть): Недопустимая операция для неоткрытой формы

    Файл D:1C_ServiceОбработкиДля БюджетаПлатежноеПоручениеПлатежноеПоручение0000512 от 2015_09_22_12_00_13.PDF записан.

    Reply
  39. SuhoffGV

    (38) похожая ошибка в КА. Визуально форма открыта, а метод ФормаПечати.Открыта() выдает Ложь.

    Форма печати в КА называется «ПечатьДокументов», но с этим вроде разобрался.

    Какие-то файлы формируются но в них ничего нет. В формах на экране все норм.

    Судя по всему «криво» отрабатывается получение формы печати. У формы которую создает 1с и формы которую получаем в обработке через разные ключи уникальности. Поэтому и ФормаПечать.Закрыть() срабатывает с ошибкой.

    И команда ФормаПечати = ПолучитьОбщуюФорму(«ФормаПечати»,,ИдентификаторФормы2) получает не открытую форму со сформированным макетом а новую, пустую и неоткрытую форму.

    Reply
  40. Nathaly

    Ошибка: {Форма.Форма.Форма(2054)}: Ошибка при вызове метода контекста (Закрыть): Недопустимая операция для неоткрытой формы

    Файл C:Documents and SettingsojiginanaРабочий столТребованиеНакладнаяСМК00000034 от 2013_08_15_03_00_00.PDF записан.

    Требование-накладная СМК00000034 от 15.08.2013 15:00:00

    действительно появляется, но обходится легко:

    1. Нажимаем Печать с предварительным просмотром

    2. Затем Сохранить печатные формы на диск

    БОЛЬШОЕ СПАСИБО автору обработки.

    Reply
  41. Sancho Panza

    Конфигурация АНР-Аптека, 1С:Предприятие 8.3 (8.3.6.2299):

    {Форма.Форма.Форма(147,8)}: Переменная не определена (УниверсальныеМеханизмы)

    Если <<?>>УниверсальныеМеханизмы.НапечататьДокументПоУмолчанию(Объект, , НаПринтер, Истина) Тогда

    {Форма.Форма.Форма(1947,18)}: Переменная не определена (УниверсальныеМеханизмы)

    ДеревоМакетов = <<?>>УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(Объект.Ссылка, СтруктураВнутреннихПечатныхФорм);

    {Форма.Форма.Форма(1961,23)}: Переменная не определена (ОбщегоНазначения)

    ИдентификаторФормы1=<<?>>ОбщегоНазначения.СформироватьЗаголовокДокумента(Объект.Ссылка,Строка(Объект.Ссылка.ВидОперации));

    {Форма.Форма.Форма(1964,23)}: Переменная не определена (ОбщегоНазначения)

    ИдентификаторФормы2=<<?>>ОбщегоНазначения.СформироватьЗаголовокДокумента(Объект.Ссылка);

    Поправте если возможно.

    Reply
  42. efimov.alex.ser

    Произошли ошибки при подготовке печатной формы документа.

    Реализация товаров и услуг КБ000000075 от 29.11.2017 9:23:08

    очень надо

    Reply
  43. zavyalova

    {ВнешняяОбработка.ГрупповаяОбработкаСправочниковИДокументов.Форма.Форма.Форма(2054)}: Ошибка при вызове метода контекста (Закрыть): Недопустимая операция для неоткрытой формы

    Файл C:UsersUserDownloadsдокиСчетФактураВыданный00000932 от 2017_12_01_12_00_00.PDF записан.

    Счет-фактура выданный 000000932 от 01.12.2017 12:00:00

    Документ абсолютно пустой…

    Как можно исправить? Пробовала на всяких формах в любом предлагаемом формате.

    Документ создается в указанное место, но либо не открывается, либо чистый лист (pdf)

    Reply
  44. novinnik

    Такая же ошибка как и в сообщении №39, подскажите как победить данную проблему?

    Reply
  45. PORGY3000

    Если честно в запаре как мышь. Чтобы доделать мне нужна точная версия 1с и базы …. тогда попробую подправить.

    Reply
  46. novinnik

    (45) Версия 1с доработанная, могу скинуть описание процедур и функций, но по тем которые участвуют в обработке изменений не было. Объект.Печать() — выводит на экран печатную форму, но ФормаПечати = ПолучитьОбщуюФорму(«ПечатьДокументов»,,Идентификтатор), не получает ее, а формирует свою, т.к. не можут найти по идентификатору. При обращении к процедуре Печать(), сформированный табличный документ, обрабатывается в общем модуле УниверсальныеМеханизмы.НапечататьДокумент и там ФормаПечати = ПолучитьОбщуюФорму(«ПечатьДокументов»,, Новый УникальныйИдентификатор); Вот поэтому он наверное найти и не может.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *