Например, при заполнении реквизитов можно указать длину текста, как ее определяют? Например для названия продуктов, можно погуглить длинные названия, и сделать длину текста чуть больше, но а если встретится название длиннее, то опять лезть в конфигурацию и ручками менять все? Или люди не парятся и делают длину овер 999?
Стандарта нет, но обычно для строк используют длину "0" (неограниченную), если только нет четкого понимания, что длину строки надо принудительно ограничить.
А почему бы тогда не писать всегда максимальное значение в регистрах Имя, Фамилия, Отчество, Название, но при этом, делать обработку пробелов, если между словами будет пробел, то вызывать ошибку, если пробела нет, значит название корректное, неважно какой длины? И ставить при этом длину строки 999. Ведь никакой работник не будет дурачиться и писать некорректные слова и т.д. И лазать изменять длину текста не придется.
Для мелких баз - не парятся и делают сколько угодно, хоть 999
Для крупных, а в особенности огромных - очень чщательно и скорпулезно анализируют хранящиемя данные и высчитывают рациональность использования типов данных.
Каждая буква - минимум 1 байт, соответственно одна такая строчка уже килобайт, 1000 строк - мегабайт. И все это нужно хранить и обрабатывать
это какая же должна быть строка чтоб набрался килобайт?
даже при 2 байтах - это 500 буков (или 250 при 4 байта на символ). что само по себе овердофига для названия.
DevMan, Со строками немного проще, это массив, поэтому, по факту, при хранении на диске в некоторых базах она динамически может и занимать 50 байт из 1000, но при обработке срабатывают всякие резервирования памяти и тп из-за чего, при тысячах операций, все начинает люто тормозить и выжирать гигабайты оперативы
DevMan, почитайте про то как реализованы строки на чистом C++ (спойлер - там нет такого вида данных, стандартная библиотека, реализующая String, представляет его как массив Char), а теперь можно обратиться к блогу разработчиков и узнать, что 1С написана на C++.
DevMan, Вы удивились утверждению, что строка - это массив. Я Вам вкратце объяснил, что это не просто аналогия, а строка в 1С это действительно массив одиночных символов (пусть и глубоко под капотом).
Конкретно в случае 1С понимание этого действительно не обязательно, но в целом в программировании бывает полезно понимать, как все устроено, чтобы эффективнее расходовать память и писать быстрые приложения. А про ту же 1С могу несколько примеров привести, где понимание "что под капотом" позволяет на пару порядков ускорить выполнение операций (и это не преувеличение, сокращение времени запроса в 100 и более раз не предел). Конечно, строки не тот случай, но все же...