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

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

Всегда хочется сделать свою работу максимально качественно, удобно для пользователя. И если я пишу отчет на обычных формах, всегда использую кнопки для управления группировками. Времени это много не занимает (~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 не будет опубликован. Обязательные поля помечены *