При работе с типовыми конфигурациями 1С, особенно такими комплексными, как 1С:ERP Управление предприятием, мы часто сталкиваемся с необходимостью адаптировать стандартные печатные формы под специфические требования нашего бизнеса. Одна из распространенных задач — это вывод дополнительной информации в печатную форму ТОРГ-12, которая должна рассчитываться на основе данных шапки документа и его табличной части. Подобные доработки могут показаться трудоемкими, особенно если мы хотим сохранить возможность беспроблемного обновления конфигурации.
Давайте разберемся, какие методы существуют для решения этой задачи и какой подход является наиболее предпочтительным в современных реалиях 1С:ERP.
Предположим, нам нужно добавить в печатную форму ТОРГ-12, формируемую в 1С:ERP, новую колонку или область, где будет отображаться информация, которая динамически рассчитывается. Например, это может быть некий удельный вес товара, процент скидки от общей суммы документа, или какая-либо аналитика, полученная путем пересчета данных из таблицы товаров и общей стоимости документа. Классический путь — создание внешней печатной формы (ВПФ) — часто вызывает опасения, что придется "много выносить" из типового функционала в отдельный файл, что увеличит объем поддержки и разработки.
Действительно, механизм печати в 1С:ERP и других крупных конфигурациях на БСП (Библиотека стандартных подсистем), таких как 1С:Управление торговлей 11, является достаточно унифицированным и сложным. Попытка создания ВПФ "с нуля" или путем копирования и модификации типового макета может потребовать значительных усилий по воспроизведению всей логики формирования печатной формы, включая заполнение данных, обработку различных условий и вывод служебной информации. Это приводит к тому, что разработчики и пользователи задаются вопросом: "Есть ли какая-то общая методика по изменению, которая была бы менее затратной?"
Мы выясним, какие подходы предлагает платформа 1С для таких случаев.
Существует несколько основных методик, которые мы можем использовать для модификации печатных форм в 1С:ERP. Выбор конкретного метода будет зависеть от сложности требуемых изменений, нашей готовности вносить изменения в конфигурацию и необходимости сохранить ее на поддержке.
Для относительно простых изменений, которые не требуют сложной программной логики или добавления новых данных, мы можем использовать встроенный механизм редактирования макетов печатных форм прямо в пользовательском режиме 1С:Предприятия. Этот метод позволяет нам:
Как это сделать:
Доступ к этим настройкам осуществляется через раздел "НСИ и администрирование" – "Администрирование" – "Печатные формы, отчеты и обработки" – "Макеты печатных форм". Также мы можем перейти к макетам непосредственно из открытой печатной формы документа, выбрав команду "Перейти к макетам печатных форм" в меню "Еще". Здесь мы сможем открыть нужный макет и внести визуальные корректировки. Пользовательский режим позволяет нам гибко настроить внешний вид формы без привлечения программиста для простых задач.
Ограничения метода:
Однако, для добавления новых параметров, создания сложных расчетов или формирования областей со сложным динамическим заполнением, этот метод не подходит. Он ориентирован исключительно на изменение визуального представления и статического текста. Если нам необходимо вывести дополнительную информацию, рассчитываемую на основе данных шапки и табличной части, нам потребуется более мощный инструментарий.
Внешние печатные формы (ВПФ) — это давно известный и широко используемый механизм в 1С для расширения функциональности типовых конфигураций. ВПФ представляют собой отдельные файлы с расширением .epf, содержащие код на языке 1С, который описывает логику формирования печатной формы и ее макет.
Преимущества ВПФ:
Как это работает:
Макет для ВПФ может быть разработан нами как непосредственно в Конфигураторе 1С, так и в стороннем графическом редакторе с последующим импортом. Программирование требуется для определения логики формирования и внешнего вида ВПФ. Для нашей задачи, заключающейся в выводе дополнительной информации, рассчитываемой на основе данных шапки и табличной части документа ТОРГ-12, создание ВПФ является одним из возможных вариантов.
Сложности и особенности ВПФ:
Как мы уже упоминали, основная сложность при работе с ВПФ в 1С:ERP заключается в том, что нам приходится полностью воссоздавать или адаптировать всю логику формирования типовой формы. Это может потребовать значительного объема переноса кода из типовой конфигурации, если мы хотим, чтобы наша ВПФ полностью повторяла функционал стандартной формы, добавляя лишь несколько полей. Общие механизмы печати на базе БСП, используемые в ERP и УТ 11, могут быть достаточно сложными для репликации во внешней обработке. Часто можно столкнуться с необходимостью глубоко разбираться в типовых модулях, отвечающих за формирование печатных форм, таких как МенеджерПечати или ОбщегоНазначенияКлиентСервер, чтобы правильно извлечь все необходимые данные и повторить логику печати.
Тем не менее, существует альтернативный способ доработки типовых печатных форм с использованием ВПФ, который позволяет минимизировать объем переносимого кода. Мы можем вызвать типовую печатную форму из своей внешней, а затем программно обработать полученный табличный документ. Этот подход позволяет нам сначала получить стандартный вывод, а затем внести в него необходимые изменения (добавить строки, колонки, изменить ячейки) уже в нашей ВПФ.
Расширения конфигурации — это современный и наиболее предпочтительный способ модификации стандартной конфигурации, особенно для 1С:ERP. Они позволяют нам изменять, дополнять или модифицировать типовую конфигурацию, не внося изменений в её исходный код и сохраняя ее на поддержке. Это особенно актуально для больших и сложных систем, где нетиповая конфигурация может значительно усложнить обновления.
Преимущества расширений:
Как это работает:
Расширение, по сути, является мини-конфигурацией, которая подключается к основной и применяется поверх нее. Для решения нашей задачи с ТОРГ-12 мы можем поступить следующим образом:
Конфигураторе.Документ (например, РеализацияТоваровУслуг, который формирует ТОРГ-12) и перетащить в него типовой макет печатной формы ТОРГ-12.В некоторых конфигурациях на управляемых формах, таких как 1С:Управление нашей фирмой (УНФ), внешние печатные формы могут быть добавлены только как расширения, что подчеркивает вектор развития платформы в сторону этого механизма.
Сравнение ВПФ и расширений для нашей задачи:
Если объем изменений значителен и затрагивает сложную логику, как в нашем случае с расчетом дополнительной информации по шапке и табличной части, то расширение может оказаться более интегрированным и эффективным решением. Оно позволяет нам точечно модифицировать нужные части типовой конфигурации (например, добавить поля в структуру передаваемых на печать данных, изменить модуль менеджера документа для вызова нашей логики или переопределить макет), не копируя весь функционал. Это минимизирует риски при обновлении и сокращает объем рутинной работы.
Мы должны осознавать, что доработка печатных форм в 1С:ERP сопряжена с определенными трудностями, которые необходимо учитывать при планировании работ:
Для нашей конкретной задачи — вывода дополнительной информации в ТОРГ-12, рассчитываемой в зависимости от значений шапки и табличной части документа в 1С:ERP — мы рекомендуем следующий порядок действий:
Рассмотреть использование расширения конфигурации: Это наиболее современный и гибкий подход. Мы создаем расширение, в котором либо:
ВызовыДобавленияКомандПечати для регистрации нашей новой печатной формы или модификации существующей.Этот метод позволит нам сохранить типовую конфигурацию на поддержке и избежать полного копирования функционала.
Если расширение слишком сложно или не подходит по каким-то причинам, использовать ВПФ с частичной интеграцией: Если нам все же предпочтительнее внешняя печатная форма, то вместо полного переписывания логики мы можем использовать следующий подход:
ТабличныйДокумент (например, методы Область(), Вывести(), Объединить(), ВставитьОбласти()), мы программно вставляем в этот табличный документ наши новые строки, колонки или изменяем содержимое существующих ячеек, добавляя рассчитанную информацию.Этот подход позволяет нам использовать всю сложную типовую логику формирования документа, фокусируясь только на добавлении своих данных. Мы минимизируем объем кода, который нужно поддерживать, и значительно упрощаем себе задачу.
В любом случае, для реализации сложной логики расчета и вывода данных потребуется программирование в Конфигураторе 1С (для расширений) или в отдельном файле .epf (для ВПФ). Мы должны быть готовы к тому, что работа с печатными формами в 1С:ERP требует внимательности и понимания архитектуры системы.
Выбрав один из этих подходов, мы сможем эффективно доработать печатную форму ТОРГ-12, добавив всю необходимую дополнительную информацию, и при этом минимизировать риски, связанные с дальнейшей поддержкой и обновлением нашей системы 1С:ERP.