В работе с программой 1С:Управление торговлей 11 (особенно на ранних релизах линейки 11.1) пользователи часто сталкиваются с ситуацией, когда после формирования отчета (например, «Прайс-листа») системные кнопки «Сохранить», «Сохранить как», «Печать» и «Предварительный просмотр» остаются серыми и недоступными. Даже наличие полных прав или роли «Администратор системы» не всегда решает эту проблему автоматически. Разберем детально, почему это происходит и как восстановить функциональность командной панели.
Прежде чем переходить к изменению конфигурации, проанализируем поведение интерфейса. В версиях платформы 8.3.4 и выше, особенно при использовании интерфейса «Такси» или режима закладок, существует особенность обработки командного меню. Кнопки печати и сохранения контекстно зависимы: они активируются только тогда, когда фокус ввода находится на объекте, который можно напечатать (в нашем случае — ТабличныйДокумент).
Рассмотрим простые действия для проверки:
Ctrl+Shift+F4 — это принудительно обновляет состояние командной панели в некоторых релизах платформы.Выясним, хватает ли пользователю специализированных прав на вывод данных. В современных конфигурациях на базе БСП (Библиотеки стандартных подсистем), к которым относится и УТ 11, недостаточно иметь просто права на «Чтение» или «Просмотр» отчета. Существует отдельная роль, отвечающая за возможность сохранения данных во внешние файлы.
Найдите в списке доступных ролей пользователя роль с названием «Вывод на принтер, в файл, в буфер обмена». Без этой роли платформа блокирует любые попытки извлечь данные из системы в целях безопасности (защита от несанкционированного копирования коммерческой информации).
Важный момент: даже под «Полными правами» эта возможность может быть ограничена, если в системе задействованы механизмы RLS (ограничение доступа на уровне записей) или специфические настройки функциональных опций, ограничивающие экспорт данных.
Если с правами все в порядке, проанализируем программные свойства самого отчета. В 1С ТабличныйДокумент имеет два критически важных свойства: ТолькоПросмотр и Защита.
Если для свойства Защита установлено значение Истина, кнопки печати и сохранения будут заблокированы платформой. Это часто делается разработчиками, чтобы пользователь не мог изменить сформированные данные перед отправкой на печать, но при неправильной настройке это блокирует и сам вывод.
Как проверить эти свойства, если у отчета нет формы (используется только СКД):
В случаях, когда отчет строится динамически через систему компоновки данных, свойства результирующего документа устанавливаются кодом в общем модуле или модуле объекта. Разберем по шагам, как принудительно разрешить вывод отчета.
Нам необходимо перехватить момент формирования результата. Для этого в модуле объекта отчета найдем (или создадим) процедуру ПриКомпоновкеРезультата. Рассмотрим пример кода, который гарантированно снимает блокировку:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
// Стандартное формирование отчета
// ...
// После формирования или в начале процедуры
// устанавливаем доступ к командам сохранения и печати
ДокументРезультат.Защита = Ложь;
ДокументРезультат.ТолькоПросмотр = Ложь;
ДокументРезультат.Вывод = ИспользованиеВывода.Разрешить;
КонецПроцедуры
Обратите внимание на свойство Вывод. Использование значения ИспользованиеВывода.Разрешить является ключевым для активации кнопок в системном меню «Файл» и на панели инструментов.
Проанализируем ситуацию, специфичную именно для «Прайс-листа». В УТ 11 этот отчет является сложным объектом, который может использовать дополнительные настройки прав на просмотр цен. Если у пользователя ограничены права на работу с видами цен или объектами номенклатуры через профили групп доступа, система может программно запрещать сохранение отчета, чтобы предотвратить утечку цен в формате Excel.
Также стоит проверить, не запущен ли отчет в так называемом «Безопасном режиме». Это часто случается, если отчет является внешним (подключен через справочник «Дополнительные отчеты и обработки»). В безопасном режиме платформа автоматически ограничивает доступ к файловой системе и принтерам.
Для решения проблемы рекомендуем придерживаться следующего алгоритма:
ДокументРезультат.Защита = Ложь.Эти действия позволят восстановить стандартную функциональность и дадут возможность пользователям сохранять отчеты в привычных форматах.