После планового обновления конфигурации «1С:Бухгалтерия предприятия 3.0» (БП 3.0) системные администраторы и программисты часто сталкиваются с ситуацией, когда обычные пользователи перестают видеть внешние печатные формы (ВПФ) в меню «Печать» документов. При этом у администраторов с полными правами все отображается корректно. Такая проблема обычно связана с изменением состава ролей в обновленной конфигурации или особенностями работы Библиотеки стандартных подсистем (БСП).
Рассмотрим подробно причины возникновения этой ошибки и разберем по шагам все способы ее решения, начиная от простых настроек прав в Конфигураторе и заканчивая проверкой программного кода самой обработки.
Первым делом проанализируем настройки прав доступа конкретного пользователя. В управляемых приложениях на базе БСП для работы с дополнительными отчетами и обработками недостаточно просто разрешить интерактивное открытие внешних файлов. Выясним, какие именно роли должны быть назначены пользователю.
Рассмотрим список критически важных ролей:
ДополнительныеОтчетыИОбработки, где хранятся зарегистрированные внешние формы. Как показывает практика (и сообщения на форумах), именно отсутствие этой роли чаще всего является причиной проблемы.Для проверки прав в режиме Конфигуратор откройте карточку пользователя, перейдите на закладку «Прочие» и убедитесь, что флаг на роли ЧтениеДополнительныхОтчетовИОбработок установлен. Если вы используете профили групп доступа в пользовательском режиме, это право должно быть включено в соответствующий профиль.
Если права в Конфигураторе настроены верно, но внешние формы всё равно не отображаются, проанализируем настройки непосредственно в самой программе. В БП 3.0 механизмы БСП позволяют гибко управлять видимостью команд.
Разберем основные моменты, которые стоит проверить в справочнике «Дополнительные отчеты и обработки»:
Публикация. Если там установлено значение «В разработке», форму увидят только пользователи с полными правами. Для общего доступа необходимо установить статус «Используется».Видимость может быть настроен список конкретных пользователей. Если ваш пользователь в этот список не входит, он не увидит форму. Очистите настройки видимости, чтобы форма была доступна всем.Иногда причина кроется в глобальных настройках программы, которые могут измениться при обновлении. Проанализируем раздел «Администрирование».
Перейдите в меню «Печатные формы, отчеты и обработки». Убедитесь, что установлена галочка Дополнительные отчеты и обработки. Если этот флаг снят, весь механизм использования внешних форм будет отключен для всех пользователей, кроме администраторов. Проверьте этот параметр, так как при обновлении системы значения функциональных опций иногда сбрасываются в состояние «по умолчанию».
Если визуальный осмотр настроек не помог, воспользуемся инструментами диагностики. Попросим пользователя выполнить переход по прямой ссылке к списку дополнительных обработок.
Для этого пользователь должен нажать Shift+F11 и ввести адрес: e1cib/list/Справочник.ДополнительныеОтчетыИОбработки. Если при попытке перехода система выдаст сообщение «Нарушение прав доступа», значит, проблема однозначно в ролях. Сразу после этого администратору следует зайти в «Журнал регистрации» и отфильтровать события по данному пользователю. Ищите событие «Отказ в доступе» — в нем будет четко указано, к какому объекту метаданных (праву) не хватило доступа.
Рассмотрим ситуацию с технической точки зрения программиста. При обновлении конфигурации обновляется и версия БСП. Если внешняя печатная форма была создана очень давно, ее структура может не соответствовать новым требованиям системы.
Выясним, корректно ли заполнена функция СведенияОВнешнейОбработке() в модуле объекта обработки. Пример правильной структуры для современной БП 3.0:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Назначение.Добавить("Документ.РеализацияТоваровУслуг");
ПараметрыРегистрации.Наименование = "Моя внешняя форма (улучшенная)";
ПараметрыРегистрации.БезопасныйРежим = Ложь;
ПараметрыРегистрации.Версия = "1.1";
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "Напечатать спец. форму";
НоваяКоманда.Идентификатор = "ОсновнаяКоманда";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Истина;
НоваяКоманда.Модификатор = "ПечатьMXL";
Возврат ПараметрыРегистрации;
КонецФункции
Если в параметре Версия указана слишком старая версия БСП, или если структура ПараметрыРегистрации не содержит обязательных полей, система может проигнорировать обработку при построении меню печати для обычного пользователя, так как механизмы проверки прав в БСП стали более строгими.
Нередко проблема носит «фантомный» характер и связана с кэшированием прав. Платформа 1С сохраняет список доступных команд для каждого пользователя, чтобы не пересчитывать их при каждом открытии формы документа.
Для решения попробуем следующие действия:
/ClearCache в строке запуска.Важный нюанс: Обратите внимание на Безопасный режим. Если он включен, а в коде обработки происходит обращение, например, к COM-объектам или файловой системе сервера, БСП может заблокировать выполнение команды для пользователя без административных прав, просто скрыв ее из интерфейса.
Подводя итог, можно сказать, что в 90% случаев проблема решается добавлением роли Чтение дополнительных отчетов и обработок и проверкой статуса «Используется» в карточке обработки. Оставшиеся 10% приходятся на специфические ошибки кэширования или несоответствие программного кода обработки актуальной версии БСП в «1С:Бухгалтерия предприятия 3.0».