Программное формирование существующих печатных форм

17.12.21

Разработка - Инструментарий разработчика

Получение списка печатных форм, формирование выбранной печатной формы и сохранение ее в файл.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Программное формирование существующих печатных форм
.epf 8,97Kb ver:1.0.0
57
57 Скачать (1 SM) Купить за 1 850 руб.

В один прекрасный момент возникла задача контролировать комплектность печатных форм для документов реализации. При этом требовалось для разных случаев контролировать наличие разных печатных форм. Целиком задачу в рамках данной публикации рассматривать не будем, а  рассмотрим следующие вопросы:

  1. Получение списка печатных форм некоторого объекта
  2. Программное получение заполненного табличного документа печатной формы
  3. Сохранение табличного документа в формате pdf качестве присоединенного файла

Данный пример будем рассматривать в условиях наличия подсистем печати и внешних обработок БСП.

Для тестов использовалась конфигурация "1С:Комплексная автоматизация 2.4.13.278" с платформой 8.3.18.1289 (клиент-серверный вариант работы, тонкий клиент)

 

Получение списка печатных форм

 

Для получения объектов метаданных с командами печати будем использовать функцию УправлениеПечатью.ИсточникиКомандПечати:

  • Возвращаемое значение - Массив  элементов типа ОбъектМетаданных.

Для получения списка печатных форм будем использовать функцию УправлениеПечатью.КомандыПечатиОбъекта:

  • Входящий параметр - ОбъектМетаданных (например, Метаданные.Документы.РеализацияТоваровУслуг)
  • Возвращаемое значение - ТаблицаЗначений с командами печати

 

Сразу оговоримся, будем получать следующие команды печати:

  1. С заполненными менеджерами печати (комплекты печатных форм в этом случае в наш список не попадут)
  2. Для внешних печатных форм получать будем команды с вариантом запуска ВызовСерверногоМетода

 

Итак, подготовим форму обработки:

 

 

  • ОбъектМетаданных - тип Строка (для хранение полного имени метаданных)
  • ПечатнаяФорма - тип Произвольный (для хранения свойств команды печати)
  • ОбъектСсылка - тип ЛюбаяСсылка (для выбора конкретного объекта базы данных)
  • У элементов формы ОбъектМетаданных и Печатная форма установим свойство Режим выбора из списка
  • У элемента формы ОбъектСсылка установим свойство ВыбиратьТип в значение Ложь

Далее добавим обработчик события формы ПриСозданииНаСервере, в котором заполним список выбора объектов метаданных с командами печати:

 
 ПриСозданииНаСервере

Для элемента формы ОбъектМетаданных добавим обработчик события ПриИзменении

 
 ОбъектМетаданныхПриИзменении

Итак, нам понадобятся следующие параметры команд:

  1. Представление - Строка - представление печатной формы
  2. ВнешняяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки - обработка с экспортной процедурой Печать (для внешних печатных форм)
  3. МенеджерПечати - Строка - строковое представление менеджера печати
  4. Идентификатор - Строка - идентификатор печатной формы, понадобится для формирования коллекции печатных форм
  5. ДополнительныеПараметры - Структура - другие параметры, используемые при формировании печатных форм

 

Программное формирование печатной формы

 

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

Здесь у нас возможны 2 варианта печатных форм:

  1. Печатная форма встроена в конфигурацию
  2. Внешняя печатная форма

В соответствие с этим будут небольшие отличия формирования, но в любом случае их объединяет одно: в модуле менеджера печати должна содержаться экспортная процедура Печать.

Рассмотрим список параметров процедуры Печать для обоих случаев

 

Встроенная Внешняя Тип
МассивОбъектов МассивОбъектов Массив
ДополнительныеПараметры - Структура
Коллекция Коллекция ТаблицаЗначений
ОбъектыПечати ОбъектыПечати СписокЗначений
ПараметрыВывода ПараметрыВывода Структура

 

  • МассивОбъектов - содержит массив ссылок, для которых формируются печатные формы
  • ДополнительныеПараметры - дополнительные параметры формирования печатной формы (не используются для внешних печатных форм)
  • Коллекция - для формирования на сервере используем УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм, будет содержать сформированные табличные документы
  • ОбъектыПечати - для назначения соответствий областей табличного документа ссылкам
  • ПараметрыВывода - дополнительные параметры сформированных форм (выходной параметр); для инициализации используется функция УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода

Собственно, единственное отличие в процедурах - это количество параметров: для встроенных печатных форм - 5, для внешних печатных форм - 4. Следование параметров процедуры Печать сохранена в таблице выше.

Второй нюанс - это получение модуля менеджера печати:

  1. Для встроенных печатных форм используем функцию БСП ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени
  2. Для внешних печатных форм ДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки

Когда мы выяснили все нюансы формирования, перейдем к реализации. Добавим на нашу форму:

  • реквизит формы ТабличныйДокумент с типом ТабличныйДокумент; перенесем реквизит на форму
  • команду формы Сформировать и перенесем ее на форму

 

 

Для команды Сформировать добавим обработчик:

 
 Сформировать

 

Сохранение печатной формы

 

В качестве небольшого бонуса рассмотрим, как сохранить нашу печатную форму:

  1. В файл на клиентский ПК
  2. В качестве присоединенного файла

Добавим на форму 2 команды и соответствующие им кнопки:

 

 

 
 СохранитьВФайл
 
 СохранитьКакПрисоединенный

 

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

ПФ ВПФ печатная форма БСП печать pdf присоединенный файл

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    171826    962    403    

924

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    14334    109    46    

108

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    17298    43    15    

75

Инструментарий разработчика Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    27290    96    48    

138

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    11907    45    27    

67

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    191253    1152    0    

920

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18094    7    32    

42

Инструментарий разработчика Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1121    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1836 17.12.21 09:13 Сейчас в теме
интересненько...
RocKeR_13; +1 Ответить
2. МимохожийОднако 142 21.12.21 08:12 Сейчас в теме
Было бы интересно получить вывод печатных форм в общую форму печати документов
3. RocKeR_13 1379 21.12.21 08:35 Сейчас в теме
4. user1823913 02.11.22 07:21 Сейчас в теме
&НаСервере
Процедура СформироватьНаСервере()
....

Коллекция = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ПечатнаяФорма.Идентификатор);

ПодготовитьКоллекциюПечатныхФорм () - не экспортная процедура, вызвать её не возможно.
5. RocKeR_13 1379 07.11.22 15:34 Сейчас в теме
(4) Это в какой версии БСП? В КА 2.5.8.267 (БСП 3.1.5.473) процедура экспортная:
Прикрепленные файлы:
6. InShallaH 59 18.04.24 11:47 Сейчас в теме
Не вываливаются ВПФ. Есть идеи почему?

Вопрос снят "ВызовСерверногоМетода"
7. AKV77 263 25.09.24 14:13 Сейчас в теме
Добрый день ! Спасибо коллега, пригодилось !
RocKeR_13; +1 Ответить
8. RocKeR_13 1379 25.09.24 14:14 Сейчас в теме
(7) Добрый день! Рад помочь)
Оставьте свое сообщение