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

28.06.19

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Иерархическая нумерация в отчете СКД с помощью макета поля:
.erf 6,35Kb
22
22 Скачать (1 SM) Купить за 1 850 руб.

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

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

Проект 1.

      Проект 1.1.

            Проект 1.1.1.

            Проект 1.1.2.

... и т.д.

 

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

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

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

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

 

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

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

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

См. также

SALE! %

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

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

12000 10000 руб.

02.09.2020    164022    908    402    

884

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

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

15.05.2024    9525    implecs_team    6    

47

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

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

3 стартмани

05.02.2024    7457    56    obmailok    21    

79

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

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

1 стартмани

31.01.2024    3241    5    Yashazz    1    

34

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

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

2 стартмани

11.12.2023    11150    24    John_d    25    

125

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

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

05.12.2023    8464    PROSTO-1C    15    

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