Для чего предназначен конструктор печати 1с

Обновлено: 08.07.2024

Привет всем! В данной статье предлагаю рассмотреть методы вывода макета на печать любых документов (собственных или типовых) с помощью актуальной библиотеки стандартных подсистем (БСП). Данный небольшой обзор поможет снять вам вопросы типа "как прицепить макет печати к собственному документу или справочника?" или "как разместить кнопку печать на форме списка и форме документа или справочника". На момент написания статьи - середина февраля 2021 года - точка актуальности - это БСП версии 3.1.4.148.

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

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

Начнем с простого создания документа ТестоваяПечатьДокументов в конфигурации на БСП. В качестве конфигурации я беру чистую библиотеку стандартных подсистем версии 3.1.4.148. Разработка ведется на Платформе 1с 8.3.18.1208.

Основным и главным моментом после создания собственного документа будет необходимость прописать данный документ в общем модуле - процедуре УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт

выглядит это вот так:

ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт

Далее, что нам потребуется. Создаем 2 формы в документе ТестоваяПечатьДокументов - это "ФормаСписка" и "ФормаДокумента". В каждой из этих форм создаем и привязываем процедуру ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

выглядит она вот так:

Далее, для "формы списка" добавляем внутренние БСП подключаемые процедуры:

"ФормаСписка" в документе "ТестовыйДокумент"

А для "формы документа" добавляем вот такие внутренние БСП подключаемые процедуры:

"ФормаДокумента" в документе "ТестовыйДокумент"

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

Далее, заполним модуль менеджера нашего документа. Напишем в нем такой код:

Здесь функция - ПечатнаяФормаТестовогоДокумента(МассивОбъектов, ОбъектыПечати) - формирует заполненный макет печатной формы и возвращает пользователю.

Процедура - Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт - типовая процедура печати БСП.

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

Открываем код БСП и смотрим какие возможности предоставляет нам функция УправлениеПечатью.СоздатьКоллекциюКомандПечати() - она используется для "наполнения" объекта КомандыПечати(). Возможности широчайшие:

Как мы видим, основные параметры - Идентификатор, Представление. Остальные являются необязательными.

Правильно разместив вышеуказанный код в конфигурации вы получите необходимый результат - вывод кнопки "Печать" для формы документа и формы списка для документа ТестоваяПечатьДокументов.
Перейдем к разделу заключений и выводов по данной статье.

Заключение и выводы

В данной статье мы рассмотрели основной алгоритм БСП для размещения команд печати на любых документах конфигурации, в основе которой лежит современная библиотека стандартных подсистем. Напомню, что разработка примера велась на "чистой" библиотеке стандартных подсистем версии 3.1.4.148 и Платформе 1с 8.3.18.1208.

Ну и конечно, знание данных методов позволит вам ускорить разработку и доработку любых типовых конфигураций 1с (БУХ, ЗУП, Розница, УНФ и т.п. ), основой которых является библиотека стандартных подсистем. И самое главное - это правильно и по стандарту профессиональных разработчиков.

Другие мои материалы по БСП

Так же прошу ознакомиться с другими моими статьями по функционалу библиотеки стандартных подсистем и типовым конфигурациям:

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

Конструктор печати работает со справочниками, документами, журналами документов, регистрами сведений и пр., и позволяет:

  • выбрать вариант работы конструктора (для форм управляемого или обычного режима);
  • создать новую команду или изменить существующую;
  • определить поля (реквизиты), которые будут печататься в шапке и таблицах макета;
  • задать параметры печати.



Конструктор печати 1С


В результате работы конструктора печати:

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

Вызов конструктора печати 1С:


Результатом работы конструктора является программный код и макет, в который будут выводиться данные (рисунок отсюда ).


Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Конструктор форматной строки позволяет разработчику составить текст форматной строки исключительно визуальными средствами и предназначен для настроек правил отображения значений типа "Число", "Дата", или "Булево" в выводных формах или полях ввода данных.

Форматная строка представляет собой строковое значение, включающее параметры форматирования. Используются в конструкциях встроенного языка для того, чтобы сформировать нужное представление отображаемых данных (см. также справку 1С: Глобальный контекст (Global context) Формат (Format)).

<Значение> (обязательный)
Тип: Число ; Дата ; Булево .
Форматируемое значение.

Формирует удобное для чтения представление значений. Полезно использование в отчетах и при прочем визуальном отображении значений.

Параметры форматирования перечисляются через символ ";". Наличие параметра означает отличие форматирования от стандартного.

Если параметр не задан, то применяется стандартное форматирование, которое в основном соответствует преобразованию значения к строке. Однако для значений типа Число и Дата по умолчанию (0 и 01.01.0001 00:00:00 соответственно) будет выдаваться пустая строка.

  • en Английский
  • en_US Английский (Соединенные Штаты Америки)
  • ru Русский
  • ru_RU Русский (Россия)
  • ru_UA Русский (Украина)
  • uk Украинский
  • uk_UA Украинский (Украина)
  • zh Китайский
  • zh_CN Китайский (Китай)

Остальные языки можно посмотреть в справке 1С.

  • ЧЦ (ND) - общее число отображаемых десятичных разрядов целой и дробной частей. Исходное число округляется при этом в соответствии с правилами округления Окр15как20 (при округлении 1.5 будет округлено до 2). Если указан этот параметр, то для отображения дробной части числа обязательно указание параметра ЧДЦ, иначе дробная часть отображаться не будет.
  • ЧДЦ (NFD) - число десятичных разрядов в дробной части. Исходное число округляется при этом в соответствии с правилами округления Окр15как20.
  • ЧС (NS) - сдвиг разрядов: положительный - деление, отрицательный - умножение. Другими словами, это означает, что исходное число будет умножено или поделено на 10*С, где С - значение параметра по модулю.
  • ЧРД (NDS) - символ-разделитель целой и дробной части.
  • ЧРГ (NGS) - символ-разделитель групп целой части числа. Если в качестве разделителя использовать пустую строку, то в этом случае разделителем будет символ неразрывного пробела.
  • ЧН (NZ) - строка, представляющая нулевое значение числа. Если не задано, то представление в виде пустой строки. Если задано "ЧН=", то в виде "0". Не используется для числовых полей ввода.
  • ЧВН (NLZ) - если параметр указан, лидирующие нули выводятся. Если не указан - лидирующие нули не выводятся. Значение параметра игнорируется.
  • ЧГ (NG) - порядок группировки разрядов числа. В качестве значения указываются числа, через запятую, обозначающие количество группируемых разрядов справа налево. Имеют смысл только два первых числа. Первое из них указывает первичную группировку, то есть ту, которая будет использована для наименее значимых разрядов целой части числа. Если второе число не указано, то будут сгруппированы только наименее значимые разряды. Если в качестве второго числа задан 0, то для всех разрядов целой части числа будет применено значение указанное для первичной группировки. Если в качестве второго числа используется значение, отличное от 0, то это значение будет использовано для группировки всех разрядов, кроме уже сгруппированных наименее значимых.
  • ЧО (NN) - представление отрицательных чисел.
    • 0 (0) - строка вида "(1,1)";
    • 1 (1) - строка вида "-1,1";
    • 2 (2) - строка вида "- 1,1";
    • 3 (3) - строка вида "1,1-";
    • 4 (4) - строка вида "1,1 -".
    • д (d) - день месяца (цифрами) без лидирующего нуля;
    • дд (dd) - день месяца (цифрами) с лидирующим нулем;
    • ддд (ddd) - краткое название дня недели *);
    • дддд (dddd) - полное название дня недели *);
    • М (m) - минута без лидирующего нуля;
    • ММ (mm) - минута с лидирующим нулем;
    • МММ (MMM) - краткое название месяца *);
    • ММММ (MMMM) - полное название месяца *);
    • к (q) - номер квартала в году;
    • г (y) - номер года без века и лидирующего нуля;
    • гг (yy) - номер года без века с лидирующим нулем;
    • гггг (yyyy) - номер года с веком;
    • ч (h) - час в 12-часовом варианте без лидирующих нулей;
    • чч (hh) - час в 12-часовом варианте с лидирующим нулем;
    • Ч (H) - час в 24-часовом варианте без лидирующих нулей;
    • ЧЧ (HH) - час в 24-часовом варианте с лидирующим нулем;
    • м (m) - минута без лидирующего нуля;
    • мм (mm) - минута с лидирующим нулем;
    • с (s) - секунда без лидирующего нуля;
    • сс (ss) - секунда с лидирующим нулем;
    • вв (tt) - отображение половины дня AM/PM (действительно только для языков конфигурирования, поддерживающих 12 часовой вариант представления времени).

    Примечание: *) - не используется для форматной строки поля ввода даты.

    • ДЛФ (DLF) - локальный формат даты. Указывается вариант отображения частей даты.
      • Д (D) - дата (цифрами);
      • ДД (DD) - длинная дата (месяц прописью);
      • В (T) - полное время, дата может объединяться со временем;
      • ДВ (DT) - дата время.

      Пример: выражение Формат('20051120140323',"ДЛФ=ДДВ") имеет значение "20 ноября 2005 г. 14:03:23".

      Важно! Порядок следования опций форматной строки для ДЛФ <дата + время> (ДВ или ДДВ) не может быть изменен.

      • ДП (DE) - строка, представляющая пустую дату (например, Формат('00010101000000' ,"ДП=""пустая дата""") вернет строку "пустая дата").
      • БЛ (BF) - строка, представляющая логическое значение Ложь.
      • БИ (BT) - строка, представляющая логическое значение Истина.
      • ЧФ (NF) - шаблон форматирования числа. В строке можно использовать символ Ч(N) для указания позиции, в которую нужно вывести число. Число выводится с учетом остальных параметров, заданных в форматной строке. Остальные символы выводятся как есть. Символы, находящиеся между двойными или одинарными кавычками выводятся как есть. Шаблон форматирования не применяется к числу 0 (за исключением случая наличия в формате строки параметра "ЧН text-align: justify;"> Примечание. Использование параметров для поля ввода:

      1. параметр ДП (DE) не используется;
      2. параметр ДЛФ (DLF) используется только со значениями Д (D), В(T) и ДВ (DT).

      Конструктор форматной строки можно:

      • вызывать в поле ввода и ячейке табличного документа;
      • использовать при написании текстов модулей.

      Конструктор форматной строки поддерживает формирование форматных строк:

      1. для числовых значений;
      2. для логических значений;
      3. для значений типа "Дата".

      Конструктор форматной строки

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

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

      Имеющаяся форматная строка будет проанализирована и представлена в конструкторе в виде соответствующих параметров форматирования.

      Вызов конструктора форматной строки:

      1. через свойство "Формат" соответствующего элемента (объекта);
      2. через меню "Текст" - "Конструктор форматной строки. ";
      3. через контекстное меню модуля командой "Конструктор форматной строки. ".

      Вызов конструктора форматной строки

      Через меню "Текст" - "Конструктор форматной строки. " (после установки курсора в текст модуля):


      Через контекстное меню модуля командой "Конструктор форматной строки. ":


      Добавить комментарий Отменить ответ

      Для отправки комментария вам необходимо авторизоваться.

      Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

      Заканчивается поддержка УПП

      Введение

      • Ограниченное количество свободных программистов и их переключение между проектами.
      • Недостаточная информация от пользователей по особенностям работы механизма печати в УПП.
      • Большой объем доработок, без описания, без данных об актуальности.
      • Необходимость реализации задачи к фиксированной дате.
      • Мы поняли, что переделывать все 300 печатных форм 1 в 1 пахнет безумством, и мы не сможем это сделать ни в бюджет, ни в срок. Стали искать варианты у коллег.
      • Идею подали коллеги, внедрявшие в 2019 крупное мясное производство ( принципы работы с торговыми партнерами у крупного производителя пищевой продукции одинаковые), переняли у них идею как сделать настройку общих печатных форм и параметризацию макетов вместо создания индивидуальных комплектов печати под каждого клиента. Таким образом, мы бы перешли от 300 печатных форм с параметрами в УПП к ограниченному количеству печатных форм в ERP (в районе 15) с понятным алгоритмом поддержки их в дальнейшем. Универсальные настраиваемые алгоритмы печати и макетов – мы назвали «Конструктор печати».
      • Далее потребовалось снизить объем задачи, провели 2 онлайн встречи с пользователями и ИТ-специалистами Заказчика, на которых определили:
      1. Список используемых видов документов
      2. Список используемых видов печатных форм
      3. Список контрагентов с особенностями печати (в основном ими оказались сети: Метро, Ашан, Лента, Билла и т.п.)
      4. Утвердили с ИТ-службой Заказчика и пользователями смену концепции печати комплектов форм для контрагентов на «Конструктор печати»
      5. Составили таблицу в Google Docs с планом работ
      • Для начала архитектором был разработал «скелет» системы.
      • Затем подключались другие программисты, которые адаптировали в рамках общей идеи механизмы в разных формах.

      Как все организовано

      Подключение подсистемы


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

      Подключение расширения

      1. Переходим в Главное меню - Настройки - Параметры - Отображать команду «Функции технического специалиста».
      2. Переходим в Главное меню - «Функции технического специалиста» - Стандартные - Управление расширениями конфигурации - Добавляем расширение.
      3. Перезапускаем сеанс 1С:Предприятие.

      Подключение внешних печатных форм

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


      Затем подключить в режиме 1С предприятие


      В разделе «НСИ и администрирование – Администрирование – Печатные формы, отчеты и обработки – Дополнительные отчеты и обработки».

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

      Затем последовательно подключить все формы.

      Почему формы в расширении

      Формы присутствуют в расширении ещё и для того, чтобы макеты, прикрепленные к ним, появились в типовом механизме редактирования макетов, что позволило бы редактировать макеты вручную.

      Появляются в разделе «НСИ и администрирование - Печатные формы, отчеты и обработки – Макеты печатных форм».

      Раздел «Конструктор печати»


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

      Первоначальная настройка


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

      · Заполнить справочник "Конструктор печати: Виды параметров"

      • При создании нужно заполнить все параметры по аналогии с предопределенными настройками.
      • Имя для разработчика, указанное в параметре нужно использовать как имя переменной в Макете печатной формы.
      • Значения можно задавать константами (строковыми, числовыми, дата, булево) или получать кодом через переменную Док (= Ссылка на документ, из которого идет печать).

      · Заполнить настройки печати контрагента можно несколькими способами


      1. В панели формы Контрагента, в меню «Ещё»

      Доступные виды печатных форм конструктора.

      Формы прописываются в перечислении и оформлены в виде обработок.

      Обработки печати встроены в расширение. Каждому виду печатной формы, соответствует 1 обработка. Формы предварительно сохраняются и подключаются как внешние к документам, автоматически определяя документы для подключения. Каждая обработка также имеет форму отладки, в которой задается ссылка на документ и вид печатной формы, тестовое выполнение по кнопке [Печать].

      В коде обработки идет запрос на выбор макета и запрос на получение всех настроек контрагента.

      Например:

      Макет= РегистрыСведений.печать_Макеты.ПолучитьМакетДляПечати(Контрагент, Перечисления.печать_ТипыПФ.ТОРГ12);

      ПараметрыМакета= РегистрыСведений.печать_ПараметрыМакетов.ПолучитьПараметрыПечати(Контрагент, Дата, Перечисления.печать_ТипыПФ.ТОРГ12);

      Настройки затем выводятся в секциях макета, вот, например, вывод номера ТОРГ-12 и номера автомобиля

      Будут выводиться в зависимости от настроек у контрагента

      Порядок выбора настроек печати для контрагента.

        – выбираются в порядке 1. Контрагент; 2. Головной контрагент.
        - выбираются в порядке 1. Контрагент; 2. Головной контрагент. 3. Группа контрагентов.

      Печать комплекта


      · Из формы документа


      Осуществляется для конкретного документа по кнопке меню Печать – [Комплект документов …].

      · Из формы списка документов.


      Либо осуществляется из журнала документа для нескольких выделенных строк документов, также по кнопке меню Печать – [Комплект документов ….]

      Читайте также: