Спецификация металлопроката по ГОСТ

При обсуждении моего шаблона для КЖ и КМ многие указывали на то, что техническая спецификация металлопроката выполнена не по ГОСТ:

Конечно, я в курсе проблемы, и ничего не скрывал — наоборот, сразу сказал, что в шаблоне есть элементы, не соответствующие нормативам.
Но та спецификация, которую я предложил в шаблоне, — полностью автоматическая, не требует ручной доработки и сводит вероятность ошибки к минимуму, а то приложение к ГОСТ — «Рекомендуемое», и это извечное нытье «а вот у вас сделано не таа-ак» тут не имеет фундамента.

Я настоятельно рекомендую согласовать форму спецификации, предложенную мной в шаблоне — например, у нас на работе без проблем получилось согласовать эту форму спецификации.

Конечно, возможна ситуация, когда такой вид спецификации согласовать не получится. Также, будут проблемы, если в проекте есть, например, двутавры из стали разных марок — тогда спецификация становится нечитаемой.

Поэтому я немного напрягся и сделал спецификацию, максимально приближенную к ГОСТ:

 

(ну, «немного напрягся» — не совсем то слово. Получилось одно из самых сложных семейств, что я когда-либо делал — 4 уровня вложенности!)
Как работает — читайте ниже.

Принцип работы — наложение на спецификацию семейства «Типовой аннотации». Где-то это уже было, скажете вы? Как бы не так! Моя спецификация выполнена всего из двух элементов, и для настройки требует только указать количество строк. В чем идея?
В семействе аннотации содержится элемент «Маскировки», нумерация, текст «Итого» и «Всего профиля»:
Видно, что в спецификации «Наименование профиля» выводится в каждой ячейке, а семейство просто скрывает все, кроме первой. Конечно, это корректно работает только в том случае, если все строки одной высоты — поэтому я сделал первый столбец шириной 60мм и немного уменьшил высоту шрифта, чтобы длинное наименование не увеличивало высоту строки.
Как работать с семейством? Сначала нужно подсчитать количество блоков (наименований профилей):
У меня 4 штуки. Указываем это число в свойствах семейства:
Максимальное количество профилей — 7, если надо больше — пишите, добавлю.
Далее работать с семейством следует при помощи невидимых цифр, отображаемых при выборе семейства. В эти ячейки нужно вписать количество профилей в данном блоке. Числа в каждом блоке — три, это нужно в том случае, если данный профиль может применяться из разных марок стали (значит, один профиль может применяться максимум из трех марок стали).
Например, двутавры 25Ш и 40Ш — из стали С245, а 60Ш и 70Ш — из С345. Указываю числа следующим образом и получаю спецификацию нужного вида:
По умолчанию числа 2 и 3 равны нулю, т.е. один профиль выполняется из одной марки стали.
Что еще?
В четвертом столбце выполняется нумерация, которая автоматически пересчитывается при изменениях семейства. Сделать эту нумерацию, пожалуй, было сложнее всего — нужно иметь возможность генерировать сотню строк, не используя сотню формул. В данный момент максимальное число строк — 449:
Для того, чтобы настроить точное совпадение спецификации и семейства, в свойствах типа есть параметры для высоты строк:
Накладываем семейство на спецификацию. Правильно настроенное семейство должно «Приклеиваться» к спецификации при перетаскивании:
Спецификацию и семейство перенесите через Ctrl+C и Ctrl+V — должно заработать сразу. Нижнюю итоговую спецификацию можно использовать ту же, что уже есть в шаблоне, только перый столбец сделать шириной 60мм.
Ну и видео:

 

Что делать дальше? Качайте файл с гугл-диска или яндекс-диска и критикуйте за то, что столбик шириной 60, а не 30 мм — ведь есть такие хорошие аналоги, где все сделано гораздо лучше, чем у меня.
Такие дела.