Кнопки управления группировками табличного документа для управляемых форм

Универсальный механизм управления группировками табличного документа из управляемой формы

Всегда хочется сделать свою работу максимально качественно, удобно для пользователя. И если я пишу отчет на обычных формах, всегда использую кнопки для управления группировками. Времени это много не занимает (~5 мин.), а эффект дает замечательный.

Но это работает только для обычных форм. В управляемых — таких удобных маленьких «нажималок» не сделать. Прошлые мои эксперименты вылились в, например, такого монстра:

 

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

Можно задаться вопросом — зачем такие сложности, когда есть возможность включить заголовки отчета, где присутствуют штатные кнопки управления группировкой?

Прим. для того, чтобы включить заголовки в уже сформированном отчете, необходимо установить курсор мыши в любое поле отчета, и выбрать главное меню -> таблица -> Вид -> Отображать заголовки

 

Давайте посмотрим, как это выглядит — отчет до и после включения заголовков:

Заголовки выключены Заголовки включены

Какая-то нагроможденность, вам так не кажется? По крайней мере для человека, привыкшего анализировать отчеты без заголовков.

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

Минусы такого подхода:

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

С другой стороны, для отчетов которые удобно анализировать именно из 1С — очень приятный плюс. Чтобы долго не писать, сделал gif, он приведен ниже. Сам отчет приложен к статье, — может кому-то пригодится еще и то, что результат формируется из таблицы значений — с помощью функционала СКД «Внешние наборы данных».

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

9 Comments

  1. dj_serega

    Используются штатные средства 1С?

    Reply
  2. unichkin

    (1) dj_serega, да. Я просто перед выводом основного сформированного отчета вывожу секцию с кнопочками, и обрабатываю их нажатие в событии «ОбработкаРасшифровки» табличного документа

    Reply
  3. DrAku1a

    Хорошее решение. Не так элегантно, конечно, как на толстых неуправляемых формах.

    Кстати, при наличии группировок — в поле слева можно правой кнопкой мыши вызвать контекстное меню, в котором есть пункт -группа «Уровни группировок»…

    А вообще, кнопки управления группировками можно было бы попросить 1С реализовать на уровне движка платформы.

    Reply
  4. unichkin

    (3) DrAku1a, про уровни группировок по ПКМ не догадался рассказать, спасибо за комментарий.

    Reply
  5. androgin

    уже давно реализовано для УФ в виде нормальных кнопок на форме (формируются динамически)

    Reply
  6. unichkin

    (5) androgin, ссылку не приложите? Интересно было-бы увидеть «нормальные» кнопки в УФ…

    Reply
  7. adva

    (5) А не подскажешь, почему-то иногда они выводятся, а иногда нет. От чего это зависит? Автогруппировка есть, и уровни группировки тоже

    Ступил, в теме был ответ. Вопрос снят. Спасибо

    Reply
  8. dj_serega

    Спасибо за публикацию.

    Взял за основу (больше посмотрел как сделано :-)) ) и для себя сделал через подменю на командной панели.

    Reply
  9. reneyr

    в отчете СКД, если нужно вывести эти «кнопочки с циферками», я создаю Форму отчета и в событии при открытии пишу одну строку:

    ЭлементыФормы.Результат.ОтображатьЗаголовки=Истина;

    И все, пользуюсь.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *