Отчеты и Аналитика · 9 мин
Как сделать расшифровку в отчете 1С
Как сделать расшифровку в отчете 1С: двойной клик по ячейке, настройка расшифровки в СКД, программная обработка. Пошаговые инструкции и типичные ошибки.
Расшифровка в отчете 1С — это возможность из итоговой цифры перейти к детальным данным, из которых она сформирована. Например, из суммы продаж за месяц — к списку конкретных документов реализации. В типовых конфигурациях на управляемых формах расшифровка работает «из коробки»: достаточно дважды щелкнуть по ячейке табличного документа.
Однако поведение расшифровки зависит от того, как построен отчет. Отчеты на СКД (системе компоновки данных) поддерживают гибкую настройку расшифровки без программирования, а для самописных отчетов на обычных формах или с выводом через табличный документ механизм придется реализовывать вручную в модуле объекта.
Ниже разобраны оба сценария: работа с готовой расшифровкой в типовых отчетах, настройка собственной расшифровки в СКД и программная обработка события «ОбработкаРасшифровки» для нестандартных случаев.
Как работает расшифровка в типовых отчетах
В конфигурациях на управляемом приложении (1С:ERP, Комплексная автоматизация, УТ 11, Бухгалтерия 3.0) большинство отчетов построено на СКД. В них расшифровка доступна по умолчанию: нужно сформировать отчет, навести курсор на интересующую ячейку и дважды щелкнуть левой кнопкой мыши либо нажать Enter.
Появится контекстное меню с вариантами действий. «Расшифровать» откроет новый отчет с детализацией до уровня ниже (например, от контрагента — к документам). «Открыть» покажет объект, на который ссылается ячейка, — документ или элемент справочника. «Отфильтровать» сформирует тот же отчет с отбором по значению ячейки.
Важный нюанс: расшифровка доступна только для ячеек, содержащих данные, а не для заголовков и пустых областей. Если двойной клик не срабатывает, проверьте, не включена ли защита табличного документа или не открыт ли отчет в режиме «Только просмотр» без интерактивности.
- 1Сформируйте отчет с нужными отборами и периодом
- 2Дважды щелкните по ячейке с суммой или количеством
- 3В меню выберите действие: Расшифровать, Открыть или Отфильтровать
- 4При выборе «Расшифровать» укажите поле детализации, например Документ или Номенклатура
- 5Проверьте, что новый отчет содержит детальные строки, дающие в сумме исходную цифру
Настройка расшифровки в СКД без программирования
Если вы разрабатываете собственный отчет на СКД, расшифровка во многом формируется автоматически за счет структуры схемы компоновки. Платформа сама понимает, какие поля доступны для детализации, если они присутствуют в наборе данных и добавлены в список выбранных полей или ресурсов.
Чтобы расшифровка работала корректно, в настройках схемы на закладке «Настройки» должны быть определены группировки: например, «Контрагент» → «Документ». Тогда двойной клик по строке контрагента позволит развернуть данные до документов. Если группировка одна и без детальных записей, расшифровывать будет нечего.
На закладке «Ресурсы» проверьте, что поля-суммы рассчитываются агрегатными функциями (Сумма, Количество). Ресурсы, вычисляемые выражением, иногда дают неочевидную расшифровку: платформа покажет детальные записи, но итог по ним может не совпасть с ячейкой, если выражение нелинейно (например, проценты или отношения).
Программная обработка расшифровки
Когда стандартного поведения недостаточно — например, по двойному клику нужно открыть не типовой отчет, а собственную форму анализа — используется обработчик «ОбработкаРасшифровки» в модуле формы отчета. Для отчетов на СКД в управляемых формах он вызывается с параметрами, содержащими значение расшифровки и данные компоновки.
Типовой подход: в обработчике получить из данных расшифровки значения полей текущей строки (период, контрагент, номенклатура), затем программно сформировать другой отчет с отборами по этим значениям или открыть форму списка документов с установленным отбором. Стандартную обработку при этом следует отключить, установив параметр «СтандартнаяОбработка» в Ложь.
Для отчетов, выводимых в табличный документ вручную (без СКД), расшифровка задается через свойство «Расшифровка» ячейки при выводе. В него можно поместить ссылку на объект или структуру с параметрами, а в событии табличного поля «ОбработкаРасшифровки» описать реакцию на клик.
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
// Получаем данные расшифровки и открываем свою форму
ОткрытьФорму("Отчет.ПродажиДетально.Форма", Новый Структура("КлючРасшифровки", Расшифровка));
КонецПроцедурыРасшифровка в отчетах на обычных формах
В старых конфигурациях на обычных формах (УТ 10.3, УПП 1.3) механизм отличается. Там у табличного поля результата есть событие «ОбработкаРасшифровки», а типовые отчеты используют объект «ТиповойОтчет» или универсальные механизмы отчетности, где расшифровка настраивается через настройки отчета.
Для самописного отчета на обычной форме последовательность такая: при выводе ячейки в табличный документ заполнить параметр «Расшифровка» (например, ссылкой на документ), затем в модуле формы создать обработчик события «ОбработкаРасшифровки» табличного поля и в нем вызвать «ОткрытьЗначение» для ссылки или сформировать детальный отчет.
Если отчет строится построителем отчетов, стандартная расшифровка обычно уже включена и позволяет выбрать поле детализации из списка полей построителя.
Проверка результата и типичные ошибки
После настройки расшифровки обязательно проверьте сходимость: сумма детальных строк в расшифровке должна равняться значению исходной ячейки. Расхождение — признак того, что в запросе есть соединения, дублирующие строки, либо ресурс вычисляется выражением, которое не сводится к сумме деталей.
Частая причина «пустой» расшифровки — отборы, наложенные в исходном отчете, не передаются в расшифровывающий отчет. В СКД это решается корректным использованием стандартного механизма (он переносит отборы автоматически), а в программном сценарии — явным копированием отборов в новые настройки компоновщика.
Как проверить результат
Равна значению исходной ячейки
Расходится — проверяйте соединения в запросе и выражения ресурсов
Совпадают с отборами исходного отчета плюс отбор по значению ячейки
Отборы потеряны, в деталях лишние данные
Открывается меню действий или нужная форма
Ничего не происходит — не заполнена расшифровка или отключена обработка
Ограничения и альтернативные способы
Расшифровка не работает в отчетах, выведенных как «плоский» табличный документ без ссылок и данных расшифровки, а также при выгрузке в Excel или PDF — там остаются только значения. Если нужен интерактивный анализ, работайте внутри 1С или используйте варианты отчета с разным уровнем группировок.
Альтернатива расшифровке — несколько вариантов одного отчета на СКД: укрупненный (по контрагентам) и детальный (по документам). Пользователь переключается между вариантами, что иногда удобнее, чем многократные двойные клики, особенно при регулярном анализе одних и тех же данных.
Для сложной аналитики с переходами между разными отчетами удобен механизм связанных отчетов через программную расшифровку: из отчета по продажам открывать отчет по задолженности с теми же отборами. Это требует разработки, но дает цельный аналитический контур.
Способы организации детализации
Без программирования, работает сразу; ограничение — детализация только в рамках той же схемы
Полная свобода: открытие любых форм и отчетов; требует доработки и поддержки кода
Просто и надежно для регулярного анализа; нет перехода именно от выбранной ячейки
Подходит для отчетов без СКД; всю логику клика нужно писать вручную
Частые вопросы
Почему двойной клик по ячейке отчета ничего не делает?
Наиболее вероятные причины: ячейка не содержит данных расшифровки (выведена без заполнения соответствующего свойства), в модуле формы стандартная обработка отключена, но свой обработчик не написан, либо табличный документ открыт в режиме без интерактивности. Проверьте также, что клик выполняется по ячейке со значением, а не по заголовку.
Можно ли настроить расшифровку без изменения конфигурации?
Да, если отчет построен на СКД. Пользовательские настройки (группировки, выбранные поля, отборы) меняются в режиме предприятия через «Ещё — Изменить вариант отчета» и сохраняются как пользовательский вариант без доработки конфигурации.
Почему сумма в расшифровке не совпадает с исходной ячейкой?
Обычно это следствие соединений в запросе, дублирующих строки, или ресурса, вычисляемого нелинейным выражением (проценты, отношения, разности). Проверьте запрос набора данных на дубли и упростите выражение ресурса до агрегатной функции.
Как из расшифровки открыть другой отчет, а не тот же самый?
Используйте программную обработку: в обработчике «ОбработкаРасшифровки» установите СтандартнаяОбработка = Ложь, извлеките значения полей текущей строки из данных расшифровки и программно сформируйте нужный отчет с отборами по этим значениям.
Сохраняется ли расшифровка при выгрузке отчета в Excel?
Нет. При сохранении табличного документа в Excel, PDF или при печати переносятся только значения и оформление. Интерактивная расшифровка доступна только при работе с отчетом внутри 1С.
Работает ли расшифровка в веб-клиенте?
Да, в отчетах на СКД расшифровка работает и в веб-клиенте: двойной клик по ячейке открывает то же меню действий. Особенности могут касаться только производительности на больших отчетах — детализация формируется дольше.
Что важно запомнить
В типовых отчетах на СКД расшифровка работает по двойному клику без настройки. Для собственного отчета обеспечьте наличие нужных полей в запросе и группировок в настройках, а нестандартные сценарии реализуйте через обработчик ОбработкаРасшифровки. Всегда проверяйте сходимость суммы детальных строк с исходной ячейкой.