Как изменить печатную форму УПД в 1С:Управление торговлей 11 Базовая

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

При работе в программе «1С:Управление торговлей 11 (Базовая версия)» пользователи и начинающие разработчики часто сталкиваются с необходимостью кастомизации печатных форм, в частности Универсального передаточного документа (УПД). Попытка решить эту задачу стандартным для версий ПРОФ путем — включением возможности изменения конфигурации — в базовой версии приводит к серьезным техническим и лицензионным проблемам. В этой статье мы подробно разберем, как устроена печать УПД в УТ 11, почему в базовой версии категорически запрещено менять конфигурацию напрямую, и как решить задачу правильно с помощью механизма внешних печатных форм.

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

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

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

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

Где в коде УТ 11 формируется печатная форма УПД

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

1. Точка входа и менеджер печати: В документах продажи (например, РеализацияТоваровУслуг или СчетФактураВыданный) в модуле менеджера прописана команда печати УПД. Однако сам документ печать не выполняет. Он перенаправляет вызов на специальный общий менеджер печати. Строка инициализации выглядит следующим образом:

КомандаПечати.МенеджерПечати = "Обработка.ПечатьОбщихФорм";

2. Обработка «ПечатьОбщихФорм»: Именно в этой обработке находится макет УПД. Но если вы откроете модуль менеджера этой обработки, то увидите лишь вызов экспортной процедуры Печать(), которая перенаправляет выполнение дальше.

3. Общие модули учета НДС: Непосредственное заполнение параметров макета и вывод областей происходят в специализированных общих модулях, отвечающих за учет НДС. В зависимости от релиза конфигурации это могут быть модули УчетНДСПечатьКлиентСервер, УчетНДСКлиентСервер или ФормированиеПечатныхФорм. В этих модулях расположены такие ключевые процедуры, как:

Создание внешней печатной формы для УПД шаг за шагом

Чтобы внести свои изменения в УПД (например, добавить дополнительный текст, логотип или изменить логику вывода параметров) и при этом сохранить базу на поддержке, выполним следующие шаги по созданию внешней печатной формы:

Шаг 1. Создание внешней обработки в Конфигураторе

Запустите Конфигуратор, выберите меню Файл -> Новый -> Внешняя обработка. Сохраните файл на диск под понятным именем (например, ВнешняяПечатнаяФормаУПД.epf).

Шаг 2. Регистрация обработки в системе БСП (Библиотека стандартных подсистем)

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


Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.Версия = "1.0";
    ПараметрыРегистрации.Наименование = "Универсальный передаточный документ (модифицированный)";
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    
    // Указываем документы, к которым привязываем форму
    ПараметрыРегистрации.Назначение.Добавить("Документ.РеализацияТоваровУслуг");
    ПараметрыРегистрации.Назначение.Добавить("Документ.СчетФактураВыданный");
    
    // Настройка команды печати
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = "УПД (модифицированный)";
    НоваяКоманда.Идентификатор = "УПД_Мод";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипЗапускаВызовСерверногоМетода();
    НоваяКоманда.Вывод = ИспользованиеВыводаСобытия.Печать;
    
    Возврат ПараметрыРегистрации;

КонецФункции

Шаг 3. Реализация процедуры Печать в модуле объекта

При нажатии пользователем кнопки печати БСП вызывает в модуле объекта нашей обработки процедуру Печать(). Мы должны принять параметры, сформировать табличный документ и вернуть его обратно в систему:


Процедура Печать(МассивОбъектовНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    ПараметрыПечати = Новый Структура;
    
    // Проверяем, что вызвана именно наша команда
    ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "УПД_Мод");
    Если ПечатнаяФорма <> Неопределено Тогда
        
        // Вызываем функцию формирования табличного документа
        ПечатнаяФорма.ТабличныйДокумент = СформироватьУПД(МассивОбъектовНазначения, ОбъектыПечати);
        ПечатнаяФорма.СинонимМакета = "УПД (модифицированный)";
        
    КонецЕсли;
    
КонецПроцедуры

Шаг 4. Перенос макета и адаптация кода заполнения параметров

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

Функция СформироватьУПД() должна содержать логику формирования документа. Самый простой способ ее реализации — скопировать логику из общего модуля УчетНДСПечатьКлиентСервер, заменить обращения к типовому макету на обращение к макету нашей внешней обработки (через метод ПолучитьМакет()) и дописать присвоение собственных параметров. Проанализируем пример вывода области строки с добавлением своего реквизита:


// Пример заполнения кастомного параметра в строке УПД
ОбластьСтроки = Макет.ПолучитьОбласть("Строка");
ЗаполнитьЗначенияСвойств(ОбластьСтроки.Parameters, ДанныеСтроки);

// Добавляем заполнение собственного параметра, которого нет в типовой форме
ОбластьСтроки.Параметры.МойКастомныйПараметр = "Спец. условия доставки: " + ДанныеСтроки.ДополнительноеСвойство;

ТабличныйДокумент.Вывести(ОбластьСтроки);

Шаг 5. Подключение внешней печатной формы в режиме «1С:Предприятие»

После сохранения файла внешней обработки выполните следующие действия в режиме пользователя:

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

Теперь в документах «Реализация товаров и услуг» в меню «Печать» появится ваш новый пункт «УПД (модифицированный)», который будет выводить форму с вашими изменениями, а конфигурация вашей базы останется полностью типовой и обновляемой!

Как проверить статус лицензии и тип конфигурации

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

В появившемся окне обратите внимание на следующие блоки:

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

← На главную