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