Как найти печатную форму Печать пакета реализации в 1С:УТП

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

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

Метод 1. Глобальный поиск по названию кнопки

Первым делом проанализируем текст, который видит пользователь. Если кнопка называется «Печать пакета реализации», эта строка должна присутствовать в метаданных или программном коде. Нам необходимо выполнить Глобальный поиск (сочетание клавиш Ctrl + Shift + F).

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

Если поиск выдал результат в модуле документа или общем модуле, мы увидим что-то вроде добавления кнопки в командную панель:


НоваяКнопка = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Добавить("ПечатьПакет", ТипКнопкиКоманднойПанели.Действие, "Печать пакета реализации", Новый Действие("НажатиеКнопкиПечатьПакета"));

Проанализируем процедуру НажатиеКнопкиПечатьПакета, чтобы понять, какой объект вызывается далее.

Метод 2. Использование режима отладки и остановки

Если глобальный поиск не дал результатов (например, заголовок кнопки собирается из частей или берется из настроек), воспользуемся методом «мгновенной остановки». Рассмотрим этот алгоритм по шагам:

  1. Запустите конфигурацию в режиме «Отладка».
  2. В режиме «1С:Предприятие» откройте нужный документ (Реализация товаров и услуг).
  3. Вернитесь в Конфигуратор и выберите в меню пункт Отладка — Остановить.
  4. Снова перейдите в окно «1С:Предприятие» и нажмите на заветную кнопку печати.
  5. Программа немедленно «замрет», а конфигуратор подсветит строку кода, которая выполняется в данный момент.

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

Метод 3. Замер производительности для отслеживания вызовов

Иногда остановка происходит не в самом начале процесса. Чтобы увидеть всю цепочку вызовов — от нажатия кнопки до вывода табличного документа на экран — проанализируем ситуацию с помощью Замера производительности.

  1. В конфигураторе перейдите в меню Отладка — Замер производительности.
  2. В режиме «Предприятие» нажмите кнопку «Печать пакета реализации».
  3. После того как печатная форма сформируется, выключите замер в конфигураторе.

Перед нами откроется список всех выполненных процедур и функций. Отсортируйте список по колонке «Количество вызовов» или «Чистое время». Ищите обращения к таким объектам, как Обработка.ПечатьДокументов или функциям в общих модулях типа УниверсальныеМеханизмы.ПечатьПоВнешнемуИсточнику. Это позволит точно определить модуль, отвечающий за формирование пакета.

Метод 4. Анализ универсального механизма печати в УТП

В конфигурациях на базе УПП и УТП часто используется специализированный Универсальный механизм печати. В этом случае кнопка «Печать пакета» может не быть жестко прописана в форме документа. Выясним причину её появления через процедуру Печать в модуле объекта документа.

Найдите в модуле объекта документа РеализацияТоваровУслуг процедуру Печать(ИмяМакета, КоличествоЭкземпляров, НаПринтер) Экспорт. Проверьте, нет ли там условия для формирования пакета:


Если ИмяМакета = "Пакет" Тогда
    // Здесь может быть вызов внешней обработки или общего модуля
    УниверсальныеМеханизмы.ПечатьПакетаДокументов(Ссылка, СписокПечатныхФорм);
КонецЕсли;

Также стоит проверить общие макеты. Некоторые формы, общие для всех документов реализации (например, ТОРГ-12 или ТТН), хранятся не в самом документе, а в ветке Общие — Общие макеты.

Метод 5. Проверка внешних печатных форм в регистрах

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

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

Для более глубокого анализа можно заглянуть напрямую в регистр сведений ДополнительныеВнешниеПечатныеФормы через меню Операции — Регистр сведений.

Метод 6. Программное добавление кнопок в модуле формы

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


// Пример динамического добавления кнопки
КнопкаПечать = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Печать;
КнопкаПечать.Кнопки.Добавить("ПечатьПакета", ТипКнопкиКоманднойПанели.Действие, "Печать пакета...", Новый Действие("ВыполнитьПечатьПакета"));

В этом случае действие ВыполнитьПечатьПакета может вести к вызову специализированной обработки, например, Обработки.ПечатьПакетаДокументов. В УТП под «пакетом» часто понимается не один макет, а групповой вывод нескольких стандартных форм (Счет-фактура + ТОРГ-12). Настройки того, какие именно формы входят в этот пакет, могут храниться в Хранилище настроек или отдельном регистре настроек пользователя.

Резюме

Для поиска источника «Печати пакета реализации» мы рекомендуем использовать комбинацию Замера производительности и Глобального поиска. В 90% случаев в УТП это оказывается либо вызов универсального модуля УниверсальныеМеханизмы, либо внешняя обработка, зарегистрированная в базе данных. Помните, что сама печатная форма может не иметь собственного макета, а лишь последовательно вызывать штатные макеты документа.

← На главную