Иерархическая нумерация в отчете СКД с помощью макета поля

28.06.19

Разработка - СКД

Представляю Вашему вниманию вариант решения задачи нумерации строк иерархического отчета на СКД.

Скачать исходный код

Наименование Файл Версия Размер
Иерархическая нумерация в отчете СКД с помощью макета поля:
.erf 6,35Kb
20
.erf 6,35Kb 20 Скачать

СКД - очень мощная и удобная штука. Но зачастую, для решения некоторых вопросов, приходится изобретать что-то немыслимое. Вот и в данной публикации один из примеров.

Задача состоит в том, чтобы в иерархическом отчете на СКД, вывести нумерацию строк по иерархии. Например:

Проект 1.

      Проект 1.1.

            Проект 1.1.1.

            Проект 1.1.2.

... и т.д.

 

Мне не хотелось заниматься нумерацией программно, как представлено в некоторых публикациях на инфостарте, а сделать это средствами СКД.

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

Текст выражения выглядит так:

Выбор 
  когда Уровень()=0 Тогда 
      НомерПоПорядкуВГруппировке() // получаем номер группировка текущего уровня
  когда Уровень()=1 Тогда 
      Строка(ВычислитьВыражение("НомерПоПорядкуВГруппировке()","Строка1")) // получаем номер группировки первого уровня
         + "." + Строка(ВычислитьВыражение("НомерПоПорядкуВГруппировке()")) // получаем номер группировка текущего уровня
  когда Уровень()=2 Тогда 
      Строка(ВычислитьВыражение("НомерПоПорядкуВГруппировке()","Строка1")) // получаем номер группировки первого уровня
         + "." + Строка(ВычислитьВыражение("НомерПоПорядкуВГруппировке()","Строка2")) // получаем номер группировки второго уровня
            + "." + Строка(ВычислитьВыражение("НомерПоПорядкуВГруппировке()")) // получаем номер группировки текущего уровня
Конец 

 

В примере представлен вариант для 3-х уровней отчета, собственно если отчет имеет больше уровней, то нужно будет дописать выражение по аналогии. В итоге получаем отчет вот такого вида.

Отчет разрабатывался на платформе 8.3.13.1644.

СКД Иерархия группировка настройки отчет нумерация

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    125087    683    389    

732

Программная корректировка при выводе отчета СКД

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Большинство отчетов на СКД, требующих программной корректировки, реализуются с помощью программной настройки СКД или обработки табличного документа уже после вывода отчета. Но во многих случаях более оптимально будет выполнять программную корректировку в процессе вывода отчета. Для этого существуют программные объекты, о которых я расскажу в данной статье.

1 стартмани

08.10.2020    37924    dabu-dabu    34    

282

Быстрое формирование наборов данных Объект схемы СКД

СКД Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

05.07.2020    13476    9    Алексей Воробьев    16    

57

Роль "Остатки" поля набора данных СКД в отчете и в расшифровке

СКД Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

В СКД создан набор данных "Запрос". Запрос выполняется к виртуальной таблице "Остатки и обороты", периодичность регистра "Авто", выбираются все измерения и ресурсы регистра, а так же выбирается Регистратор и ПериодСекунда. Для полей содержащих остатки устанавливается роль "Остатки". Для полей "Регистратор" и "ПериодСекунда" устанавливается роль "Период". Для поля "Регистратор" устанавливается выражение упорядочивания.

24.05.2020    17866    kasper076    20    

33

СКД. Использование Менеджера временных таблиц в системе компоновки

СКД Платформа 1С v8.3 Запросы Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

С выпуском платформы 8.3.17 фирма 1С анонсировала возможность передачи в механизм системы компоновки данных менеджера временных таблиц. Платформа вышла из беты, самое время разобраться с новым механизмом, тем более в комментариях я встретил непонимание принципов работы этого нововведения. Постараюсь кратко.

29.04.2020    25885    ixijixi    55    

132

Ограничения полей, или как обмануть СКД?

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Каждое из ограничений полей можно обойти. Рассмотрим варианты обхода и способы обезопасить свой отчет.

15.04.2020    36155    SeiOkami    43    

137

Работа с запросами в 1С СКД. Отладка СКД

СКД Запросы Система компоновки данных Россия Бесплатно (free)

В предыдущем разделе мы изучали с вами особенности работы с запросами в СКД. Для изучения (отладки) работы различных схем компоновки данных я использовал консоль компоновки данных.

15.04.2020    9388    PROSTO-1C    3    

35

Работа с запросами в 1С СКД. Особенности работы запросов в СКД. Часть 3

СКД Запросы Система компоновки данных Россия Бесплатно (free)

Почему при отборе по контрагенту наш отчет работает неправильно. Посмотрим на примере другого отчета, в котором нам нужно выбрать данные из расходных накладных и связанные с номенклатурой данные по ВСЕМ заявкам.

13.04.2020    15334    PROSTO-1C    5    

53
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ids79 8336 28.06.19 17:05 Сейчас в теме
Подумал, что у Вас действительно по иерархии каким-то образом нумерация выводится.
Даже скачал файл...
Ну, увы, не иерархическая группировка у Вас, а обычная структура группировок из нескольких уровней.
А я уж подумал - не знаю чего-то.
Кстати, макет использовать не обязательно, можно то же выражение написать в вычисляемом поле или в ресурсах. Результат будет тем же.
2. Isonic 235 01.07.19 07:56 Сейчас в теме
(1) Добавил еще 1 скриншот с настройками, чтобы не было дезинформации.

(1)
Кстати, макет использовать не обязательно, можно то же выражение написать в вычисляемом поле или в ресурсах. Результат будет тем же
Да, можно, но всегда корректно отрабатывает.
4. lmnlmn 69 01.07.19 17:23 Сейчас в теме
(1) Есть у меня статья в черновиках для произвольной иерахии, но там программный вывод.
3. lmnlmn 69 01.07.19 17:22 Сейчас в теме
Чудненько, но для "настоящей" иерархии бы проверить. Да и количество уровней вложенности заранее неизвестно может быть.
5. Isonic 235 02.07.19 07:58 Сейчас в теме
(3) надо попробовать что-то придумать, сложность только в определении наименования предыдущей группировки.
6. lmnlmn 69 02.07.19 13:05 Сейчас в теме
(5) Если просто группировка, то это не столь большая проблема. А вот если группировка иерархическая, то в настройках группировка одна, а при выводе отчета вложенных группировок от ноля до бесконечности.
7. Isonic 235 02.07.19 14:07 Сейчас в теме
(6) ага, я про это и говорю.
8. lmnlmn 69 02.07.19 15:14 Сейчас в теме
(7) Было бы здорово найти решение без программирования. Когда задача появилась я до последнего пытался пытался это сделать. Но, в итоге, решил через программный вывод. Через "уровни" не смог спастись в иерархических группировках.
9. Isonic 235 02.07.19 15:30 Сейчас в теме
(8) Да, можно использовать твой метод. Только сделать процедуру универсальную, чтобы из СКД вызвать ее.
10. lmnlmn 69 02.07.19 17:19 Сейчас в теме
(9) Не понял идею - как через СКД вызывать процедуру?
11. Isonic 235 03.07.19 08:03 Сейчас в теме
(10) Использовать общую процедуру для вычисления чего-либо (пример во вложении)
Прикрепленные файлы:
12. lmnlmn 69 03.07.19 09:00 Сейчас в теме
(11) Для вычисления надо "контекст" запоминать либо передавать. Слишком много костылей придется придумать.
13. dtripleh 04.07.19 08:41 Сейчас в теме
Добавлением системных полей "НомерПоПорядку", "НомерПоПорядкуВГруппировке" в настройках СКД это прекрасно решается, разве нет?
14. Isonic 235 04.07.19 09:03 Сейчас в теме
15. kabantus 16.11.21 18:03 Сейчас в теме
Не работает. Пишет ошибку: выражение не может быть вычислено level.
Оставьте свое сообщение