Использование реквизитов строкового типа

#std432

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

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

1.2. В тех случаях, когда максимальная длина строки заранее известна (например, она регламентирована), следует указывать ее в свойстве Длина (или Длина наименования для стандартного реквизита Наименование). Например, длина строкового реквизита ИНН справочника ФизическиеЛица должна составлять 12 символов.

1.3. Если строка является конкатенацией других строк, то ее длина может быть определена как сумма длин исходных строк. Например, длина представления адреса должно равняться сумме длин полей, в которых хранятся части адреса.

1.4 Если длина строки не регламентирована, то рекомендуется выбирать такую длину, которой достаточно для хранения данных в большинстве случаев. Например, для хранения полного наименования контрагента в подавляющем большинстве случаев достаточно 250 символов, максимальная длина имени файла в большинстве файловых систем – 260, полное имя физического лица – 100 и т.п.

2. В отдельных случаях, допускается использование строк неограниченной длины:

2.1. Предполагается, что в реквизит строкового типа может быть помещен пользовательский текст, объем которого может быть значительным. Как правило, это многострочные поля на форме. Например, в поле Дополнительное описание в заказе клиента менеджер может поместить всю историю переписки с клиентом, в поле Комментарий – пользователь может ввести произвольный многострочный текст и т.п.

2.2. В строковом реквизите хранится различная техническая информация, которая генерируется программами и, чаще всего, не предназначена для чтения пользователем, а используется в различных алгоритмах обработки информации. Например, xml-документы, заголовки почтовых сообщений и т.п.

3. В случае использования строковых реквизитов неограниченной длины следует иметь в виду возникающие при этом ограничения в языке запросов:

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

Для этих целей в запросе рекомендуется использовать конструкцию

ВЫРАЗИТЬ КАК СТРОКА(1000)

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

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

3.3. В остальных случаях, урезать строку в запросах не требуется.

4. Если в печатных формах предусмотрено отображение строкового поля, то независимо от того, какая назначена длина строки, необходимо обеспечить вывод таких строк полностью, без обрезания части строки. В противном случае, может быть утеряна значимая часть информации. Например, номер дома и квартиры в поле с адресом доставки товара в печатной форме.

Для быстрого выявления в конфигурации всех строковых реквизитов неограниченной длины можно воспользоваться приложенной обработкой СтрокиНеограниченнойДлины.erf

См. также