Как найти программный код формирования печатной формы в 1С?

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

При доработке или отладке типовых конфигураций (например, «1С:Бухгалтерия предприятия 3.0») разработчики часто сталкиваются с задачей: макет печатной формы (например, М-11, М-15 или ТОРГ-12) найден в ветке метаданных или общих макетах, но не очевидно, в каком именно модуле и какой процедуре происходит сбор данных и вывод табличного документа. Разберем по шагам надежные способы быстро найти исполняемый программный код печатной формы.

Способ 1. Глобальный поиск по имени макета печатной формы

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

  1. Находим имя макета в ветке Общие — Общие макеты или в макетах конкретного документа (например, ПФ_MXL_М15 или ПФ_MXL_М11).
  2. Нажимаем комбинацию клавиш Ctrl + Shift + F для вызова диалога глобального поиска.
  3. В поле поиска вводим точное имя макета, например ПФ_MXL_М15, указываем область поиска «Модули» и запускаем процесс.

Посмотрим на пример результатов поиска в конфигурации «1С:Бухгалтерия предприятия»:


Документ.ПередачаТоваров.Модуль менеджера : ПечатьМ15(МассивОбъектов, ОбъектыПечати), , "ОбщийМакет.ПФ_MXL_М15");
Документ.ПередачаТоваров.Модуль менеджера : Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.ПФ_MXL_М15");
Документ.РеализацияТоваровУслуг.Модуль менеджера : ПечатьМ15(МассивОбъектов, ОбъектыПечати), , "ОбщийМакет.ПФ_MXL_М15");
Документ.РеализацияТоваровУслуг.Модуль менеджера : Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.ПФ_MXL_М15");

Двойным кликом по строке результата переходим непосредственно в процедуру формирования печатной формы (в данном примере — ПечатьМ15 модуля менеджера соответствующего документа).

Способ 2. Архитектура подсистемы печати БСП и поиск через модуль менеджера

Проанализируем структуру работы подсистемы печати Библиотеки стандартных подсистем (БСП), на которой построены современные конфигурации 1С. Логика печати унифицированных форм стандартизирована:

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

Если поиск по макету не дал результата из-за динамического формирования имени, выполним глобальный поиск по названию команды из пользовательского интерфейса (например, «Накладная на отпуск материалов на сторону (М-15)») — поиск выведет нас на процедуру ДобавитьКомандыПечати.

Способ 3. Поиск точки формирования через отладчик и замер производительности

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

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

Способ 4. Вынос логики печати в общие модули

Обратим внимание на то, что для унифицированных регламентированных форм (М-11, М-15, ТОРГ-12) логика запросов и вывода областей нередко вынесена в специализированные общие модули учета. В таком случае в модуле менеджера документа будет находиться только короткий вызов процедуры общего модуля с передачей параметров и массива ссылок на объекты.

← На главную