Разработка и подключение внешних печатных форм (ВПФ) на базе Библиотеки Стандартных Подсистем (БСП) — это стандартная задача для разработчика 1С. Однако новички часто сталкиваются с критической ошибкой: после загрузки файла обработки в справочник Дополнительные отчеты и обработки при нажатии на кнопку печати в документе система выдает сообщение Печатная форма недоступна. Давайте разберем, почему это происходит и как исправить ситуацию по шагам.
Одной из наиболее распространенных причин сбоя является несоответствие параметров процедуры печати стандартам БСП. Для актуальных версий библиотек стандартных подсистем процедура, вызываемая из модуля объекта обработки, должна строго содержать четыре параметра. Если вы ошибочно добавили пятый или изменили их порядок, система не сможет корректно инициализировать вызов.
Проверьте заголовок вашей процедуры в модуле объекта:
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
// Тело процедуры
КонецПроцедуры
Если в вашем коде количество параметров отличается, БСП заблокирует выполнение, так как не сможет передать необходимые данные из документа во внешнюю обработку.
Второй критический узел — это типы реквизитов, используемых в обработке. При попытке выполнить запрос к базе данных, разработчики часто ошибочно указывают тип ДокументОбъект вместо ДокументСсылка. Это приводит к ошибке при обращении к методу Выполнить() или Выбрать(), так как ДокументОбъект является серверным представлением данных в памяти, а не ссылочным идентификатором в базе.
Для исправления этой проблемы:
Конфигураторе.Реквизитам формы или объекта, которые отвечают за передачу данных документа.Тип убедитесь, что выбрана именно ДокументСсылка.АктСверкиВзаиморасчетов (или соответствующий вашему документу тип).ДокументОбъект в параметрах запроса, так как СУБД требует именно Ссылка для корректной фильтрации.Если после исправления типов сообщение об ошибке исчезло, но «ничего не происходит» (форма не открывается), необходимо локализовать место остановки кода. Рассмотрим процесс отладки:
Пошаговая инструкция для отладки:
1С:Предприятие в режиме отладки через меню Отладка -> Начать отладку.точку останова (клавиша F9) в самом начале процедуры Печать.F10 (шаг через процедуру) или F11 (шаг с заходом в процедуру).Табло (меню Отладка -> Табло), чтобы просматривать значения переменных, например, содержимое МассивОбъектов или результат выполнения запроса.Не забывайте, что для корректной работы БСП в модуле объекта должна быть реализована функция СведенияОВнешнейОбработке(). В этой функции необходимо правильно заполнить массив команд, указав:
Идентификатор команды (должен совпадать с тем, который вы используете в процедуре Печать).Использование (обычно это ВызовКлиентскогоМетода или ВызовСерверногоМетода).Модификатор, если требуется работа с конкретными формами документов.Если регистрационные данные указаны неверно, система не сможет «подцепить» вашу обработку к документу, и вы снова увидите ошибку о недоступности печатной формы.
Подводя итог, можно сказать, что решение проблемы чаще всего кроется в строгом соблюдении архитектурных требований БСП: правильная сигнатура процедуры Печать, использование ссылочных типов данных в запросах и корректное заполнение функции СведенияОВнешнейОбработке(). Если проблема сохраняется, используйте Отладчик для проверки того, попадает ли выполнение кода в цикл обхода выборки данных.