Отчеты и Аналитика · 7 мин
Как открыть форму отчета в 1С
Как открыть форму отчета в 1С: через интерфейс, командой ОткрытьФорму, программно с параметрами. Разбор ошибок, примеры кода и ответы на вопросы.
Форма отчета в 1С — это окно, в котором пользователь задаёт период, отборы и другие настройки перед формированием результата. Открыть её можно двумя принципиально разными способами: через стандартный интерфейс программы (если отчет включён в подсистемы) или программно — из встроенного языка 1С. Второй вариант нужен разработчикам, когда отчет должен запускаться из другого документа, обработки или по расписанию.
Выбор способа зависит от задачи. Бухгалтеру, которому нужен «Оборотно-сальдовый отчет», достаточно найти его в меню. Разработчику, который добавляет кнопку «Печать анализа» в карточку контрагента, потребуется команда ОткрытьФорму() с передачей параметров. Ниже разобраны оба сценария, типовые ошибки и проверка результата.
Как пользователю открыть отчет через интерфейс
В типовых конфигурациях (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ERP) отчеты собраны в отдельных разделах. Обычно это пункт главного меню «Отчеты» либо вкладка конкретного раздела — например, «Продажи → Отчеты по продажам». Достаточно щелкнуть по названию отчета, и его форма откроется с настройками по умолчанию.
Если нужный отчет не виден в меню, используйте команду «Все отчеты» (в некоторых конфигурациях — «Все функции → Отчеты»). Откроется полный список отчетов, доступных вашей роли. Отсутствие отчета даже в полном списке обычно означает, что у пользователя нет прав — это вопрос к администратору, а не ошибка программы.
После открытия формы задайте период и отборы, затем нажмите «Сформировать». Если кнопка неактивна, проверьте обязательные поля — чаще всего не заполнен период или организация.
Как открыть форму отчета программно: команда ОткрытьФорму
Основной инструмент разработчика — глобальный метод ОткрытьФорму(). Для отчета указывается путь вида Отчет.ИмяОтчета.Форма. Если у отчета несколько форм, добавляется имя конкретной формы; если не указать — откроется основная форма, назначенная в конфигураторе.
&НаКлиенте
Процедура ОткрытьОтчет(Команда)
ОткрытьФорму("Отчет.ПродажиПоМенеджерам.Форма");
КонецПроцедурыМетод открывает форму асинхронно и не блокирует выполнение кода. Если нужно дождаться закрытия формы и получить результат, используйте ОткрытьФормуМодально() — но учтите, что в тонком и веб-клиенте модальные вызовы ограничены и требуют включённого режима модальности, поэтому в современных конфигурациях предпочтителен вариант с описанием оповещения.
Передача параметров и отборов при открытии
Часто требуется открыть отчет уже настроенным: с заданным периодом, отбором по контрагенту или складу. Для этого вторым аргументом в ОткрытьФорму() передаётся структура параметров. Для отчетов на СКД (система компоновки данных) настройки передаются через параметр формы Отбор и стандартные ключи вроде СформироватьПриОткрытии.
&НаКлиенте
Процедура ОткрытьСОтбором(Команда)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Отбор", Новый Структура("Контрагент", КонтрагентСсылка));
ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
ОткрытьФорму("Отчет.Взаиморасчеты.Форма", ПараметрыФормы);
КонецПроцедурыКлюч СформироватьПриОткрытии со значением Истина заставляет отчет сразу построить результат, минуя ручное нажатие «Сформировать». Это удобно для кнопок быстрого анализа, но опасно для тяжелых отчетов: если отбор не ограничивает данные, формирование по всей базе может занять минуты и нагрузить сервер.
Открытие внешнего отчета
Внешние отчеты (файлы .erf и .epf) открываются иначе: сначала файл подключается к сеансу, затем вызывается его форма. В управляемом приложении используется механизм ВнешниеОтчеты либо подключение через Дополнительные отчеты и обработки в типовых конфигурациях.
&НаСервере
Функция ПодключитьОтчет(АдресХранилища)
ИмяОтчета = ВнешниеОтчеты.Подключить(АдресХранилища);
Возврат ИмяОтчета;
КонецФункции
&НаКлиенте
Процедура ОткрытьВнешний()
ИмяОтчета = ПодключитьОтчет(Адрес);
ОткрытьФорму("ВнешнийОтчет." + ИмяОтчета + ".Форма");
КонецПроцедурыЗагружайте внешние отчеты только из доверенных источников: файл отчета содержит исполняемый код, который выполняется с правами текущего пользователя. Вредоносная обработка способна прочитать или изменить данные базы.
Типичные ошибки и их устранение
Самая частая проблема — ошибка «Объект не найден» при вызове ОткрытьФорму(). Причины: опечатка в имени отчета, отчет удалён или переименован при обновлении, либо у пользователя нет права «Просмотр» на объект. Проверьте точное имя в конфигураторе и права роли.
Вторая группа ошибок связана с параметрами: форма открывается, но отбор не применяется. Обычно это значит, что имя поля в структуре отбора не совпадает с именем поля в схеме компоновки данных, либо переданный тип значения не соответствует типу поля (например, строка вместо ссылки).
Проверка результата
Как проверить результат
Окно отчета отображается, доступны настройки и кнопка «Сформировать»
Ошибка «Объект не найден» или пустое окно без элементов
В шапке настроек видно переданное значение отбора
Отбор пуст — проверить имена полей в СКД
Табличный документ заполнен данными за ожидаемый период
Пустой результат — проверить период и наличие данных
FAQ
Как открыть форму отчета, если её нет в меню?
Используйте команду «Все функции» (включается в параметрах запуска или через настройки интерфейса), затем раздел «Отчеты». Если отчета нет и там — вероятно, у вашей роли нет прав, обратитесь к администратору.
Чем ОткрытьФорму отличается от ПолучитьФорму?
ПолучитьФорму возвращает объект формы без её отображения — это нужно, чтобы программно заполнить реквизиты перед показом. ОткрытьФорму сразу показывает форму пользователю и является основным способом в управляемом приложении.
Можно ли открыть отчет сразу с результатом, минуя настройки?
Да: передайте параметр СформироватьПриОткрытии = Истина вместе со структурой отбора. Отчет построится автоматически при открытии формы.
Почему переданный отбор не применяется к отчету?
Чаще всего имя поля в структуре отбора не совпадает с именем поля в схеме компоновки данных, или тип значения не соответствует типу поля. Сверьте имена в настройках СКД отчета в конфигураторе.
Как открыть внешний отчет (.erf) без подключения к базе?
Через меню «Файл → Открыть» в толстом клиенте. В тонком и веб-клиенте внешний отчет нужно сначала подключить программно или зарегистрировать в справочнике дополнительных отчетов и обработок.
Что важно запомнить
Пользователь открывает отчет через меню, разработчик — командой ОткрытьФорму с путем Отчет.Имя.Форма. Параметры и отборы передаются структурой; внешние отчеты требуют предварительного подключения. Большинство ошибок связано с опечатками в именах и правами доступа.