Как настроить отбор по документу и восстановить видимость во внешнем отчете 1С

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Управленческий учет Промышленность, строительство и АПК
← На главную

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

Причина отсутствия отбора в форме внешнего отчета

Когда вы копируете штатный отчет и делаете его внешним, он теряет контекстную связь с формой документа, из которой вызывается. В типовых конфигурациях на базе БСП (Библиотеки стандартных подсистем) параметры отбора передаются через специальные структуры формы. Проанализируем код, который часто отсутствует в модуле формы внешнего отчета при его простом копировании.

Чтобы отчет «подхватывал» документ (например, План производства), необходимо в процедуре ПриСозданииНаСервере формы отчета обработать входящие параметры. Рассмотрим пример реализации:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    ПараметрыФормы = ЭтаФорма.Параметры;
    
    // Проверяем наличие параметра команды, который передает ссылку на документ
    Если ПараметрыФормы.Свойство("ПараметрКоманды") Тогда
        // Вставляем значение в отборы формы
        ЭтаФорма.ФормаПараметры.Отбор.Вставить("ПланПроизводства", ПараметрыФормы.ПараметрКоманды);
    КонецЕсли;

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

Если отчет подключается через механизм Дополнительные отчеты и обработки, система может ожидать структуру ОбъектыНазначения. В этом случае логика получения ссылки будет иной, и важно убедиться, что в схеме компоновки данных (СКД) параметр отбора имеет идентичное имя и тип.

Работа с перечислениями в расширениях: ошибка в запросе

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

Важно: если в тексте запроса используется конструкция ЗНАЧЕНИЕ(Перечисление.Периодичность.Неделя), недостаточно просто добавить само перечисление Периодичность. Нужно обязательно зайти в состав этого перечисления внутри расширения и отметить «галочкой» конкретное значение Неделя. Без этого компилятор запросов не увидит объект и выдаст ошибку.

В качестве альтернативы, чтобы избежать жесткой привязки к метаданным расширения, можно передавать значение перечисления через параметр СКД, заполняя его программно в модуле объекта:


Процедура ПриКомпоновкеРезультата(ДанныеРасшифровки, СтандартнаяОбработка)
    
    ПараметрПериод = КомпоновкаДанныхНастройки.ПараметрыДанных.Элементы.Найти("Периодичность");
    Если ПараметрПериод <> Неопределено Тогда
        ПараметрПериод.Значение = Перечисления.Периодичность.Неделя;
        ПараметрПериод.Использование = Истина;
    КонецЕсли;
    
КонецПроцедуры

Как вернуть отчет в интерфейс и подсистемы

Если вы создали отдельный отчет в расширении, но он не отображается в панели отчетов, выполним следующие действия:

  1. Заимствование подсистем: Отчет должен входить хотя бы в одну подсистему. Найдите нужную подсистему в основной конфигурации (например, Производство) и заимствуйте её в расширение. Затем в свойствах вашего отчета укажите эту подсистему.
  2. Настройка ролей: Новые объекты расширения по умолчанию недоступны пользователям. Создайте в расширении новую роль, дайте права на «Просмотр» и «Чтение» вашего отчета и назначьте эту роль пользователям.
  3. Регистрация вариантов: В современных конфигурациях ERP-класса за отображение отчетов отвечает справочник Варианты отчетов. Если отчет не появляется, проверим настройки размещения через раздел НСИ и администрирование — Настройка печатных форм, отчетов и обработок — Отчеты.

Восстановление кнопки «Настройки» и выбора вариантов

Если в форме отчета пропала кнопка настроек, проанализируем настройки самого объекта в Конфигураторе. Для корректной работы стандартного интерфейса отчетов на базе СКД должны быть заполнены следующие свойства:

Если вы редактировали вкладку Ресурсы в СКД, это также может привести к сбросу настроек формы. Проверьте, что после изменения ресурсов поля, по которым выполняется отбор, остались доступными в настройках компоновки (вкладка «Доступные поля отбора»).

Проблема исчезновения типовых отчетов

Иногда после манипуляций с расширениями или внешними отчетами из интерфейса пропадают даже штатные отчеты. Это происходит из-за кэширования или некорректного обновления реестра вариантов отчетов. Рассмотрим способы решения:

  1. Очистка кэша: Самый простой шаг — запуск 1С с параметром /ClearCache или удаление базы из списка и её повторное добавление.
  2. Обновление конфигурации: В некоторых случаях помогает запуск информационной базы в режиме «Конфигуратор» и выполнение команды «Обновить конфигурацию базы данных», даже если изменений нет.
  3. Ручная активация: Зайдем в справочник «Варианты отчетов» (через «Все функции» или «Функции для технического специалиста»), найдем штатный отчет и убедимся, что флаг «Видимость» установлен для нужных разделов интерфейса.

Используя данные рекомендации, мы сможем эффективно модифицировать отчеты в 1С:Комплексная автоматизация 2, сохраняя при этом весь стандартный функционал отборов и пользовательских настроек.

← На главную