Как доработать печатную форму ТОРГ-12 в 1С:ERP для вывода дополнительной информации?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет Торговля и дистрибуция
← На главную

При работе с типовыми конфигурациями 1С, особенно такими комплексными, как 1С:ERP Управление предприятием, мы часто сталкиваемся с необходимостью адаптировать стандартные печатные формы под специфические требования нашего бизнеса. Одна из распространенных задач — это вывод дополнительной информации в печатную форму ТОРГ-12, которая должна рассчитываться на основе данных шапки документа и его табличной части. Подобные доработки могут показаться трудоемкими, особенно если мы хотим сохранить возможность беспроблемного обновления конфигурации.

Давайте разберемся, какие методы существуют для решения этой задачи и какой подход является наиболее предпочтительным в современных реалиях 1С:ERP.

Определение проблемы: Доработка ТОРГ-12 в 1С:ERP

Предположим, нам нужно добавить в печатную форму ТОРГ-12, формируемую в 1С:ERP, новую колонку или область, где будет отображаться информация, которая динамически рассчитывается. Например, это может быть некий удельный вес товара, процент скидки от общей суммы документа, или какая-либо аналитика, полученная путем пересчета данных из таблицы товаров и общей стоимости документа. Классический путь — создание внешней печатной формы (ВПФ) — часто вызывает опасения, что придется "много выносить" из типового функционала в отдельный файл, что увеличит объем поддержки и разработки.

Действительно, механизм печати в 1С:ERP и других крупных конфигурациях на БСП (Библиотека стандартных подсистем), таких как 1С:Управление торговлей 11, является достаточно унифицированным и сложным. Попытка создания ВПФ "с нуля" или путем копирования и модификации типового макета может потребовать значительных усилий по воспроизведению всей логики формирования печатной формы, включая заполнение данных, обработку различных условий и вывод служебной информации. Это приводит к тому, что разработчики и пользователи задаются вопросом: "Есть ли какая-то общая методика по изменению, которая была бы менее затратной?"

Мы выясним, какие подходы предлагает платформа 1С для таких случаев.

Методики доработки печатных форм в 1С:ERP

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

  1. Редактирование существующих макетов в пользовательском режиме

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

    • Корректировать шрифты и их начертание.
    • Изменять линии границ таблиц, их толщину и стиль.
    • Добавлять или изменять статичный текст, например, условия доставки или оплаты.
    • Вставлять или удалять изображения, такие как логотипы или рекламные баннеры.

    Как это сделать:

    Доступ к этим настройкам осуществляется через раздел "НСИ и администрирование" – "Администрирование" – "Печатные формы, отчеты и обработки" – "Макеты печатных форм". Также мы можем перейти к макетам непосредственно из открытой печатной формы документа, выбрав команду "Перейти к макетам печатных форм" в меню "Еще". Здесь мы сможем открыть нужный макет и внести визуальные корректировки. Пользовательский режим позволяет нам гибко настроить внешний вид формы без привлечения программиста для простых задач.

    Ограничения метода:

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

  2. Использование внешних печатных форм (ВПФ)

    Внешние печатные формы (ВПФ) — это давно известный и широко используемый механизм в 1С для расширения функциональности типовых конфигураций. ВПФ представляют собой отдельные файлы с расширением .epf, содержащие код на языке 1С, который описывает логику формирования печатной формы и ее макет.

    Преимущества ВПФ:

    • Они позволяют нам создавать печатные формы, полностью отвечающие специфическим потребностям предприятия, без внесения изменений в основной код системы.
    • Использование ВПФ существенно упрощает процесс обновления типовой конфигурации, поскольку внесенные нами изменения находятся за ее пределами.

    Как это работает:

    Макет для ВПФ может быть разработан нами как непосредственно в Конфигураторе 1С, так и в стороннем графическом редакторе с последующим импортом. Программирование требуется для определения логики формирования и внешнего вида ВПФ. Для нашей задачи, заключающейся в выводе дополнительной информации, рассчитываемой на основе данных шапки и табличной части документа ТОРГ-12, создание ВПФ является одним из возможных вариантов.

    Сложности и особенности ВПФ:

    Как мы уже упоминали, основная сложность при работе с ВПФ в 1С:ERP заключается в том, что нам приходится полностью воссоздавать или адаптировать всю логику формирования типовой формы. Это может потребовать значительного объема переноса кода из типовой конфигурации, если мы хотим, чтобы наша ВПФ полностью повторяла функционал стандартной формы, добавляя лишь несколько полей. Общие механизмы печати на базе БСП, используемые в ERP и УТ 11, могут быть достаточно сложными для репликации во внешней обработке. Часто можно столкнуться с необходимостью глубоко разбираться в типовых модулях, отвечающих за формирование печатных форм, таких как МенеджерПечати или ОбщегоНазначенияКлиентСервер, чтобы правильно извлечь все необходимые данные и повторить логику печати.

    Тем не менее, существует альтернативный способ доработки типовых печатных форм с использованием ВПФ, который позволяет минимизировать объем переносимого кода. Мы можем вызвать типовую печатную форму из своей внешней, а затем программно обработать полученный табличный документ. Этот подход позволяет нам сначала получить стандартный вывод, а затем внести в него необходимые изменения (добавить строки, колонки, изменить ячейки) уже в нашей ВПФ.

  3. Применение расширений конфигурации

    Расширения конфигурации — это современный и наиболее предпочтительный способ модификации стандартной конфигурации, особенно для 1С:ERP. Они позволяют нам изменять, дополнять или модифицировать типовую конфигурацию, не внося изменений в её исходный код и сохраняя ее на поддержке. Это особенно актуально для больших и сложных систем, где нетиповая конфигурация может значительно усложнить обновления.

    Преимущества расширений:

    • Сохранение поддержки: Основное преимущество заключается в том, что наша базовая конфигурация остается на стандартной поддержке, и мы можем легко обновлять ее.
    • Интеграция: Расширения подключаются как отдельные, независимые модули, но при этом могут изменять объекты типовой конфигурации (формы, модули, макеты) без прямого изменения их исходного кода.
    • Гибкость: Мы можем добавлять новые печатные формы, изменять существующие макеты, дополнять формы новыми элементами управления и событиями, а также модифицировать логику типовых модулей.

    Как это работает:

    Расширение, по сути, является мини-конфигурацией, которая подключается к основной и применяется поверх нее. Для решения нашей задачи с ТОРГ-12 мы можем поступить следующим образом:

    1. Создать новое расширение в Конфигураторе.
    2. Добавить в расширение объект Документ (например, РеализацияТоваровУслуг, который формирует ТОРГ-12) и перетащить в него типовой макет печатной формы ТОРГ-12.
    3. Изменить этот макет, добавив новые области и ячейки для нашей дополнительной информации.
    4. Дополнить существующие или добавить новые обработчики печати в модулях расширения, чтобы реализовать логику расчета и заполнения этих новых областей.

    В некоторых конфигурациях на управляемых формах, таких как 1С:Управление нашей фирмой (УНФ), внешние печатные формы могут быть добавлены только как расширения, что подчеркивает вектор развития платформы в сторону этого механизма.

    Сравнение ВПФ и расширений для нашей задачи:

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

Сложности и особенности доработки печатных форм в 1С:ERP

Мы должны осознавать, что доработка печатных форм в 1С:ERP сопряжена с определенными трудностями, которые необходимо учитывать при планировании работ:

  1. Нетиповая конфигурация: Любые прямые изменения в типовой конфигурации делают ее нетиповой. Это значительно усложняет ее обновление или переход на новые редакции, требуя постоянного внимания и, зачастую, помощи специалистов 1С для адаптации изменений. Именно поэтому мы всегда стремимся использовать методы, сохраняющие конфигурацию на поддержке.
  2. Сложность ERP: Сама по себе система 1С:ERP является комплексным решением с глубоко интегрированными подсистемами. Изменение ее стандартных механизмов, включая печать, требует глубоких знаний как платформы 1С, так и специфики конфигурации ERP. Нам потребуется понимание структуры объектов, работы регистров, а также логики типовых модулей.
  3. Общие механизмы печати: Как мы видели, единый механизм печати для накладных и подобных документов, общий с 1С:УТ 11 и базирующийся на БСП, указывает на централизованную и унифицированную логику. Это может усложнять точечные изменения, если мы не используем расширения, которые позволяют "встроиться" в эту логику.
  4. Зависимость от БСП: Библиотека стандартных подсистем (БСП), на которой построены современные конфигурации, постоянно развивается. Методы формирования печатных форм могут меняться от релиза к релизу, поэтому наши доработки должны быть устойчивы к таким изменениям или мы должны быть готовы их адаптировать.

Рекомендации по решению задачи

Для нашей конкретной задачи — вывода дополнительной информации в ТОРГ-12, рассчитываемой в зависимости от значений шапки и табличной части документа в 1С:ERP — мы рекомендуем следующий порядок действий:

  1. Рассмотреть использование расширения конфигурации: Это наиболее современный и гибкий подход. Мы создаем расширение, в котором либо:

    • Переопределяем существующий макет печатной формы ТОРГ-12, добавляем в него новые области и элементы.
    • Модифицируем модули документа или общие модули, отвечающие за печать, чтобы добавить нашу логику расчета и заполнения новых полей. Мы можем использовать обработчики событий или ВызовыДобавленияКомандПечати для регистрации нашей новой печатной формы или модификации существующей.

    Этот метод позволит нам сохранить типовую конфигурацию на поддержке и избежать полного копирования функционала.

  2. Если расширение слишком сложно или не подходит по каким-то причинам, использовать ВПФ с частичной интеграцией: Если нам все же предпочтительнее внешняя печатная форма, то вместо полного переписывания логики мы можем использовать следующий подход:

    • Создаем ВПФ, которая будет выполнять роль "обертки".
    • В коде нашей ВПФ мы вызываем типовую функцию формирования печатной формы ТОРГ-12 из основной конфигурации. Это позволяет нам получить уже готовый табличный документ, сформированный по типовой логике.
    • Затем, используя возможности объекта ТабличныйДокумент (например, методы Область(), Вывести(), Объединить(), ВставитьОбласти()), мы программно вставляем в этот табличный документ наши новые строки, колонки или изменяем содержимое существующих ячеек, добавляя рассчитанную информацию.

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

В любом случае, для реализации сложной логики расчета и вывода данных потребуется программирование в Конфигураторе 1С (для расширений) или в отдельном файле .epf (для ВПФ). Мы должны быть готовы к тому, что работа с печатными формами в 1С:ERP требует внимательности и понимания архитектуры системы.

Выбрав один из этих подходов, мы сможем эффективно доработать печатную форму ТОРГ-12, добавив всю необходимую дополнительную информацию, и при этом минимизировать риски, связанные с дальнейшей поддержкой и обновлением нашей системы 1С:ERP.

← На главную