Как найти и отредактировать печатную форму в 1С:БГУ 1.0, если её нет в конфигураторе

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет
← На главную

В конфигурациях на базе обычных форм, таких как «Бухгалтерия государственного учреждения» редакции 1.0, разработчики часто сталкиваются с ситуацией, когда в режиме «Предприятие» кнопка «Печать» присутствует и выводит список форм, а в конфигураторе на форме документа этой кнопки нет. Это связано с особенностями построения интерфейса в толстом клиенте и использованием универсальных механизмов печати. Разберем подробно, где искать эти формы и как их редактировать.

Причина отсутствия кнопки «Печать» в конфигураторе

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

  1. Откроем модуль формы документа (например, МЗ_Списание).
  2. Найдем предопределенную процедуру ПриОткрытии.
  3. Внутри этой процедуры обычно содержится вызов функций из общих модулей. Ищите строки, похожие на:
    
    УниверсальныеМеханизмы.УстановитьКнопкиПечати(мКнопкиПечати, ЭтаФорма, ЭлементыФормы.ОсновныеДействияФормы);
    

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

Поиск макета в метаданных документа

Если форма является стандартной для данного документа, её макет должен находиться в дереве метаданных. Проверим это по шагам:

1. В конфигураторе развернем ветку документа МЗ_Списание (Списание материалов).
2. Перейдем на закладку «Макеты».
3. Если нужного названия (например, «Акт о списании») там нет, это не значит, что его не существует. В БГУ 1.0 многие формы первичных документов являются унифицированными и используются в разных документах одновременно.

Использование «Общих макетов»

Многие регламентированные формы (согласно приказам Минфина, например, формы 0504143, 0504230) вынесены в Общие макеты. Это позволяет системе использовать один и тот же шаблон для разных видов документов. Выясним, как их найти:

  1. В дереве конфигурации найдем ветку «Общие», а в ней — «Общие макеты».
  2. Воспользуемся глобальным поиском (нажмем Ctrl + Shift + F).
  3. В строке поиска введем номер формы по ОКУД (например, 0504230) или фрагмент названия.
  4. Проанализируем результаты. Скорее всего, вы найдете макет с префиксом Ф_ или Акт_.

Проверка внешних печатных форм (ВПФ)

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

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

Механизм печати в модуле объекта и модуле менеджера

Если макет найден, но вам нужно поправить логику заполнения полей, необходимо найти процедуру Печать. В БГУ 1.0 она чаще всего располагается в Модуле объекта документа. Проанализируем типичную структуру:


Процедура Печать(НазваниеМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
    Если НазваниеМакета = "АктОСписании" Тогда
        // Здесь происходит формирование табличного документа
        ТабДок = СформироватьАктСписания();
        УниверсальныеМеханизмы.НапечататьДокумент(ТабДок, КоличествоЭкземпляров, НаПринтер, "Акт о списании");
    КонецЕсли;
КонецПроцедуры

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

Редактирование макетов без использования конфигуратора

В современных версиях БГУ 1.0 реализован механизм «Пользовательских макетов». Это позволяет изменить внешний вид формы (шрифты, логотипы, текст), не меняя конфигурацию. Рассмотрим этот способ:

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

Практические советы по отладке

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

1. Используйте Регистр сведений «Пользовательские макеты печатных форм» через «Все функции». Там наглядно видно, какие шаблоны переопределены пользователями.
2. Если форма формируется в общем модуле на стороне сервера, убедитесь, что в параметрах запуска 1С включена отладка (параметр -debug).
3. Посмотрите в модуле формы документа переменную мКнопкиПечати. Это массив структур, где программно прописываются имена макетов и функций-обработчиков. Если вы видите там ссылку на функцию другого модуля — это и есть ключ к разгадке.

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

← На главную