Как правильно сделать нумерацию квартир начиная с начальных нулей

Добрый день, форумчане.

Прошу совета. Предположим, что есть какой-то дом. В доме есть квартиры: 1, 2, 3, ..., 661 и нежилые помещения: 1Н, 2Н, ..., 300Н.
Для их нумерации создаю текстовое поле. Но сортировка по текстовому полю делает вот так: 1, 1Н, 10, 100, 2, 2Н, 20, 200. И ориентироваться при такой сортировке очень тяжело. Нашел вариант нумерации через начальные нули и сначала сортируем по типу помещения, а потом по номерам помещений. Получается так: 001, 002, 003, ..., 010, ..., 100, 001Н, 002Н, 003Н.

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

Вопрос: как сделать нумерацию с начальных нулей, чтобы они не слетали при операциях импорта-экспорта, создании новых записей, либо какой правильный способ нумерации для моей планируемой задачи.
 

Vladimir

Администратор
Команда форума
Добрый день, Константин!
Рады видеть Вас на форуме. ?
В 2019 году Вы присылали нам проекты "Бюджетирование" и "Клиника". Тогда мы хотели их разместить на сайте http://runamarket.ru/, но не дошли руки. Если будет желание поделиться этими или другими проектами - предлагаем их разместить в разделе Готовые программы. Думаю для многих они будут очень интересны.

По вопросу нумерации: добавление нулей в начале числа возможно только при помощи функции Fill(Поле,Длина) в составном поле, которое видимо Вы и нашли. Другого способа мы в конструкторе не делали.
Как мне видится: надо вести отдельно числовую нумерацию, и отдельно - литерное обозначение. И собирать полный номер в составном поле из этих двух полей, плюс использование функции Fill. А сортировку задать по двум полям: 1-ая по номеру, 2-ая - по буквам:
Структура полей в объекте для нумерации.JPG

Проблема в том, что при периодически (операции импорта-экспорта, создание новых записей) первоначальные нули слетаю и опять начинается каша в нумерации.
После импорта зайдите в конструктор, выберите нужное составное поле и в режиме изменения нажмите "Применить" - для пересчёта поля во всех записях.
 
Сверху Снизу