Работа с отчетами в 1С:Предприятие часто требует гибкой настройки видимости вариантов для разных пользователей. Ненужные или устаревшие варианты отчетов загромождают интерфейс, отвлекают сотрудников и увеличивают риск ошибок при выборе. Скрытие лишних элементов — стандартная задача администраторов и разработчиков, но способы ее решения зависят от версии платформы, типа формы (обычная или управляемая) и требуемого уровня гибкости.

В этой статье мы разберем 5 рабочих методов, как скрыть вариант отчета в 1С 8.3: через права доступа, настройку ролей, редактирование форм, программный код и дополнительные обработки. Особое внимание уделим нюансам управляемых форм, где стандартные механизмы платформы работают иначе, чем в обычных. Вы узнаете, какой способ подходит для вашей задачи — от простого ограничения видимости до полного удаления вариантов из системы.

Все инструкции актуальны для последних версий 1С:Предприятие 8.3 (включая 8.3.23 и новее) и проверены на типовых конфигурациях Бухгалтерия 3.0, ЗУП 3.1 и УТ 11. Если вы работаете с кастомизированной конфигурацией, некоторые шаги могут потребовать адаптации.

1. Скрытие через права доступа: самый быстрый способ

Наиболее универсальный метод — ограничение видимости вариантов отчетов через роли и права доступа. Он не требует изменения конфигурации и подходит для большинства типовых решений. Суть заключается в том, что пользователю просто не показываются те варианты, на которые у него нет прав.

Чтобы скрыть вариант отчета через права доступа:

  1. Откройте конфигуратор 1С:Предприятие в режиме 1С:Предприятие → Все функции (или через Файл → Открыть в конфигураторе).
  2. Перейдите в Администрирование → Пользователи и права → Настройка прав пользователей.
  3. Выберите роль, которую нужно ограничить (например, Бухгалтер или Менеджер по продажам).
  4. В дереве объектов найдите раздел Отчеты и раскройте его до нужного отчета (например, Оборотно-сальдовая ведомость).
  5. Снимите флажки с вариантов, которые должны быть скрыты для этой роли. Для полного скрытия отметьте Запретить вместо Разрешить.
  6. Сохраните изменения и обновите права пользователей (Администрирование → Обновление прав пользователей).

Этот способ работает для всех типов форм, но имеет ограничение: вариант отчета не удаляется физически, а лишь скрывается от пользователей с определенными ролями. Если пользователь имеет несколько ролей, видимость будет определяться по наиболее"широкой" роли.

💡

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

2. Редактирование управляемой формы отчета

Если вы работаете с управляемыми формами (а это большинство современных конфигураций на 1С 8.3), скрыть вариант отчета можно в форме. Этот метод требует доступа к конфигуратору и права на изменение объектов.

Инструкция по редактированию формы:

  • 🔧 Откройте конфигуратор и найдите нужный отчет в дереве объектов (Отчеты → [ИмяОтчета]).
  • 📄 Дважды кликните на отчет, чтобы открыть его свойства, и перейдите на вкладку Формы.
  • 🖥️ Откройте Управляемая форма (если ее нет, создайте новую).
  • 🔍 В дереве элементов формы найдите ВариантыОтчетов (обычно это реквизит типа ТаблицаЗначений или ДеревоЗначений).
  • 📝 В модуле формы добавьте обработчик события ПриСозданииНаСервере и напишите код для фильтрации вариантов:
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    

    Варианты = ЭлементыФормы.ВариантыОтчетов.Список;

    Для Каждого Вариант Из Варианты Цикл

    Если Вариант.Имя ="НеНужныйВариант" Тогда

    Варианты.Удалить(Вариант);

    КонецЕсли;

    КонецЦикла;

    КонецПроцедуры

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

Создать резервную копию конфигурации

Проверить версию платформы (не ниже 8.3.10)

Убедиться, что отчет использует управляемую форму

Получить права на изменение конфигурации-->

3. Программное скрытие вариантов через расширение

Если вы не хотите изменять типовую конфигурацию, но нужно скрыть варианты отчетов, оптимальный способ — использовать расширение конфигурации. Это безопасный метод, который сохраняет поддержку при обновлениях.

Алгоритм создания расширения:

  1. В конфигураторе выберите Конфигурация → Расширения → Добавить.
  2. Создайте новое расширение с произвольным именем (например, СкрытиеВариантовОтчетов).
  3. В дереве расширения найдите нужный отчет и добавьте к нему Подписку на событие.
  4. Выберите событие ПриОткрытии (или ПередОткрытием, если доступно).
  5. В обработчике напишите код для удаления ненужных вариантов:
    Процедура ОтчетПриОткрытии(Отчет, Отказ, СтандартнаяОбработка) Экспорт
    

    Варианты = Отчет.ВариантыОтчетов;

    Для Каждого Вариант Из Варианты Цикл

    Если Найти(Вариант.Имя,"Устаревший") > 0 Тогда

    Варианты.Удалить(Вариант);

    КонецЕсли;

    КонецЦикла;

    КонецПроцедуры

  6. Сохраните расширение и обновите конфигурацию базы данных.

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

Через права доступа

Редактирование формы

Расширения конфигурации

Программный код в модуле

Не скрываю варианты-->

4. Скрытие через дополнительные обработки

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

Как создать обработку для скрытия вариантов:

  • 📁 В конфигураторе создайте новую Обработку (Файл → Новый → Обработка).
  • 📋 Добавьте реквизит типа Отчет (например, ТекущийОтчет).
  • 🖥️ Разместите на форме кнопку Скрыть варианты и напишите обработчик:
    Процедура СкрытьВарианты(Команда)
    

    Варианты = ТекущийОтчет.ВариантыОтчетов;

    СписокДляУдаления = Новый Массив;

    СписокДляУдаления.Добавить("Вариант1");

    СписокДляУдаления.Добавить("Вариант2");

    Для Каждого Вариант Из Варианты Цикл

    Если СписокДляУдаления.Найти(Вариант.Имя) > 0 Тогда

    Варианты.Удалить(Вариант);

    КонецЕсли;

    КонецЦикла;

    Сообщить("Варианты скрыты!");

    КонецПроцедуры

  • 💾 Сохраните обработку как внешний файл (.epf) и запустите ее в режиме 1С:Предприятие.

Этот способ удобен для тестирования или разовых операций. Однако он требует ручного запуска обработки каждый раз, когда нужно обновить список вариантов.

Что делать, если вариант отчета не удаляется?

Если вариант отчета не удаляется программно, проверьте:

1. Права доступа — возможно, у текущего пользователя нет прав на изменение отчета.

2. Блокировки — вариант может быть заблокирован другим пользователем или транзакцией.

3. Тип формы — в обычных формах используйте метод УдалитьСтроку вместо Удалить.

4. Версию платформы — в старых версиях (ниже 8.3.8) могут не работать некоторые методы работы с вариантами.

5. Полное удаление вариантов из базы данных

Если вариант отчета больше не нужен ни одному пользователю, его можно физически удалить из базы данных. Этот метод необратим и требует осторожности, так как может повлиять на работоспособность связанных объектов.

Инструкция по удалению:

  1. Откройте конфигуратор и перейдите в Администрирование → Поддержка и обслуживание → Хранилище вариантов отчетов.
  2. Найдите нужный отчет в списке и раскройте его варианты.
  3. Выделите ненужные варианты и нажмите Удалить (или Пометить на удаление, если используется механизм пометки).
  4. Выполните Администрирование → Тестирование и исправление → Выполнить, чтобы очистить помеченные объекты.

⚠️ Внимание: Удаление вариантов из хранилища необратимо восстановить их будет невозможно. Перед операцией проверьте, не используются ли эти варианты в регламентных заданиях, расчетах или других автоматизированных процессах.

Метод скрытия Требует прав на конфигуратор Сохраняется при обновлении Подходит для управляемых форм Обратимость
Права доступа Нет Да Да Да
Редактирование формы Да Нет Да Да
Расширение конфигурации Да Да Да Да
Внешняя обработка Нет Нет Да Да
Удаление из БД Да Да Да Нет

Частые ошибки и их решения

При скрытии вариантов отчетов пользователи часто сталкиваются с типичными проблемами. Вот наиболее распространенные из них и способы их устранения:

  • 🔄 Вариант отчета не исчезает после изменения прав — проверьте, что права обновлены для пользователя (Администрирование → Обновление прав пользователей). Иногда требуется перезапуск сеанса .
  • 🚫 Ошибка"Недостаточно прав" при редактировании формы — убедитесь, что у вас есть роль Администратор или Конфигуратор. В некоторых конфигурациях (например, 1С:ERP) могут быть дополнительные ограничения.
  • 🔍 Не видно вариант отчета в дереве конфигурации — возможно, отчет добавлен через расширение или внешнюю обработку. Проверьте все подключенные расширения в Конфигурация → Расширения.
  • 💻 Код не работает в управляемой форме — в управляемых формах используйте серверные процедуры (например, ПриСозданииНаСервере), а не клиентские.

⚠️ Внимание: Если вы работаете с 1С:Бухгалтерия КОРП или 1С:ERP, некоторые отчеты могут быть защищены от изменений на уровне конфигурации. В этом случае скрытие вариантов возможно только через права доступа или расширения.

💡

Перед применением любого метода скрытия вариантов отчетов всегда проверяйте его на тестовой копии базы. Это позволит избежать сбоев в рабочей системе.

FAQ: Ответы на частые вопросы

Можно ли скрыть вариант отчета только для одного пользователя?

Да, для этого нужно создать индивидуальную роль для пользователя и настроить права доступа только на этот вариант. Альтернативно — использовать расширение с проверкой текущего пользователя:

Если ТекущийПользователь.Имя ="ИвановИИ" Тогда

Варианты.Удалить(НужныйВариант);

КонецЕсли;

Почему после обновления 1С скрытые варианты снова появились?

Это происходит, если варианты были скрыты через редактирование формы или внешнюю обработку. Типовое обновление перезаписывает формы. Чтобы избежать этого, используйте расширения конфигурации — они сохраняются при обновлениях.

Как скрыть вариант отчета в мобильном приложении 1С?

В мобильном клиенте 1С:Предприятие варианты отчетов скрываются теми же способами, что и в десктопной версии, но с учетом ограничений интерфейса. Наиболее надежный метод — права доступа, так как программные методы могут не поддерживаться в мобильных формах.

Можно ли вернуть удаленный вариант отчета?

Если вариант был удален из Хранилища вариантов отчетов, восстановить его можно только из резервной копии базы. Если удаление было программным (через код), достаточно убрать строку удаления и обновить отчет.

Как скрыть варианты отчетов в 1С:УТ 11.5?

В 1С:Управление торговлей 11.5 скрытие вариантов отчетов выполняется стандартными методами, но учитывайте, что некоторые отчеты (например, Анализ продаж) могут использовать динамические списки. В этом случае скрытие нужно реализовывать через обработчик ПриФормированииДинамическогоСписка.