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

Групповая печать документов и сохранение их на диск в любом доступном формате.
Тестировалось на бухгалтерии 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 не будет опубликован. Обязательные поля помечены *