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

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.

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

См. также

SALE! 20%

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

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

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

13000 10400 руб.

02.09.2020    122179    670    389    

714

Генератор схемы компоновки данных (СКД), написание кода схемы программно

Инструментарий разработчика СКД Платформа 1С v8.3 Конфигурации 1cv8 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

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

3 стартмани

05.02.2024    4043    25    obmailok    17    

63

Набор-объект для СКД по тексту или запросу

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

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    2000    2    Yashazz    0    

29

СКД на JavaScript в 1С

СКД WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Долгое время поддерживаю web-портал, в котором появилась необходимость создавать отчеты. Просмотрев различные фреймворки на js, я решил сделать свое решение, которое позволяло бы быстро разрабатывать и добавлять новые отчеты на web-портал.

2 стартмани

11.12.2023    8161    20    John_d    25    

123

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

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

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

05.12.2023    4657    PROSTO-1C    13    

61

Модель СКД

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

DSL для работы с СКД.

1 стартмани

15.11.2023    5807    15    kalyaka    5    

86

Пользовательские настройки отчетов 1С. Часть 1. Простые и расширенные настройки

СКД Инструкции пользователю Платформа 1С v8.3 Конфигурации 1cv8 1С:Бухгалтерия 3.0 Россия Бесплатно (free)

Простые приемы работы с отчетами на СКД. Что нужно знать пользователю про настройку отчетов, чтобы использовать их на полную катушку.

18.09.2023    6703    accounting_cons    5    

29

Разрыв страницы в СКД. Легко!

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

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

01.09.2023    4521    KVIKS    15    

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