В работе с типовой конфигурацией 1С:Бухгалтерия предприятия 3.0 пользователи часто сталкиваются с ситуацией, когда при попытке напечатать конверт из справочника Контрагенты система выдает досадное сообщение: «Печатная форма недоступна». При этом у одного пользователя (например, с правами администратора или главного бухгалтера) всё работает корректно, а у другого (рядового бухгалтера) — нет. Разберем подробно, почему так происходит, и пройдем по шагам процесс диагностики и решения этой проблемы.
Прежде всего, нам необходимо выяснить, на каком этапе программный код «отсекает» возможность печати. Ошибка может быть вызвана как нехваткой прав, так и отсутствием необходимых данных в базе. Чтобы понять причину, воспользуемся механизмом отладки. Рассмотрим, как запустить отладку именно под тем пользователем, у которого возникает проблема, не меняя его роли в конфигураторе.
Для этого выполним следующие действия:
Теперь мы можем установить точку останова в процедуре печати (обычно это общие модули, связанные с печатью конвертов или управлением печатью) и проанализировать, какая функция возвращает Ложь. Часто это связано с проверкой функциональных опций или прав на конкретные объекты.
Одной из скрытых причин является отсутствие у профиля пользователя системного права Вывод (Output). Это право отвечает за возможность формирования любых табличных документов, их печать и сохранение. Если галочка в роли снята, кнопка печати может быть активна, но само формирование формы прервется ошибкой недоступности.
Проанализируем настройки профиля безопасности:
Вывод отсутствует, его необходимо добавить, создав новый профиль или отредактировав существующий (если это допустимо в вашей модели безопасности).Существует заблуждение, что на общие формы и макеты права не распространяются. На самом деле, у любой Общей формы есть право Просмотр. Если механизм формирования конверта обращается к специализированной форме настроек печати, а у пользователя нет прав на ее открытие, система выдаст сообщение о недоступности. Кроме того, в современных версиях БП 3.0 печать часто реализована через внутренние обработки. Проверим наличие права Интерактивное открытие внешних отчетов и обработок, так как иногда система ошибочно блокирует внутренние вызовы, если этот механизм ограничен.
Выясним, достаточно ли данных для формирования конверта. Программа не сможет построить макет, если ей нечего в него вписывать. Для печати конверта критически важен Почтовый адрес контрагента. Рассмотрим частые ошибки заполнения:
Если отладка кажется слишком сложным процессом, воспользуемся стандартным инструментом администратора — Журналом регистрации. Посмотрим на ситуацию глазами системы:
Рассмотрим ситуацию, когда права в порядке, но форма всё равно не открывается. Проблема может крыться в Функциональных опциях. Если в базе отключена опция работы с дополнительными отчетами или специфическими видами контактной информации, механизм печати может блокироваться программно.
Также не стоит забывать про локальный кэш. Некорректно сохраненные настройки печати (например, параметры страницы или выбранный принтер, который более недоступен) могут приводить к программному сбою при выводе табличного документа. Попробуем выполнить очистку настроек пользователя:
Разберем, как это сделать в интерфейсе:
Если вы программист и хотите добавить собственную проверку перед выводом формы, чтобы пользователь получал более понятное сообщение, можно использовать следующий код в модуле менеджера или обработки печати:
Если Не ПравоДоступа("Вывод", Метаданные) Тогда
Сообщить("У вас недостаточно прав для формирования печатных форм (право 'Вывод'). Обратитесь к администратору.");
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(ПочтовыйАдресКонтрагента) Тогда
Сообщить("Для формирования конверта необходимо заполнить почтовый адрес в карточке контрагента.");
Возврат;
КонецЕсли;
Резюмируем: решение проблемы с недоступностью печатной формы «Конверт» обычно лежит в плоскости либо системных прав (Вывод), либо корректности заполнения контактных данных (Почтовый адрес по ФИАС). Рекомендуем начинать диагностику с Журнала регистрации и отладки под пользователем, чтобы не тратить время на догадки.