К статье
Практический материал

Разработка и Конфигурация · 12 мин

Как увеличить длину стандартного реквизита в 1С

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

Стандартные реквизиты — это служебные поля, которые платформа 1С создаёт автоматически для каждого объекта метаданных: «Наименование» у справочника, «Номер» и «Комментарий» у документа, «Код» у плана видов характеристик. У каждого из них задана длина по умолчанию, и рано или поздно она перестаёт хватать: наименование товара обрезается, номер документа из внешней системы не влезает, комментарий усечён.

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

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

Что такое стандартный реквизит и где задана его длина

Стандартные реквизиты видны в дереве конфигурации у каждого объекта: откройте справочник или документ в конфигураторе и разверните ветку «Стандартные реквизиты» — там будут «Код», «Наименование», «Ссылка», «ПометкаУдаления» и другие служебные поля. Их состав платформа формирует сама, удалить их нельзя, но часть свойств доступна для изменения.

Длина строкового стандартного реквизита задаётся в палитре свойств. Например, у «Наименования» справочника по умолчанию стоит длина 25 или 100 символов в зависимости от конфигурации, у «Номера» документа — обычно 11. Это свойство типа «Строка» с квалификатором длины, и именно его вы меняете при необходимости.

Важно понимать: длина хранится в метаданных, а физическое ограничение применяется на уровне поля таблицы базы данных. Поэтому любое изменение длины влечёт реструктуризацию — платформа пересоздаст или изменит соответствующее поле в таблицах СУБД.

Проверьте, действительно ли нужно менять длину

Прежде чем лезть в конфигуратор, убедитесь, что проблема именно в длине стандартного реквизита. Признаки типичные: при сохранении элемента наименование молча обрезается, при обмене данными номер документа из другой системы усекается, пользователи жалуются, что комментарий «не влезает целиком».

Откройте свойства объекта и посмотрите текущее значение длины. Если наименование ограничено 50 символами, а реальные названия товаров занимают 120–150, вопрос очевиден. Иногда длину уже увеличивал поставщик конфигурации в новых релизах — проверьте актуальную типовую поставку, возможно, достаточно обновиться.

Отдельный случай — неограниченная длина. У строки в 1С можно снять ограничение длины совсем (свойство «Неограниченная длина»). Для стандартных реквизитов это доступно не всегда и не всегда оправданно: неограниченные строки хранятся иначе, медленнее индексируются и не могут использоваться в некоторых контекстах, например в отборах динамических списков с точным сравнением.

Наименование обрезается при записиДлины реквизита не хватает

Текущее значение длины в палитре свойств объекта

Номер из обмена усекаетсяДлина номера меньше формата внешней системы

Максимальная реальная длина номеров во входящих данных

Поле недоступно для измененияСвойство заблокировано поддержкой

Статус поддержки конфигурации и наличие расширений

Способ 1: изменение длины в конфигураторе

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

Порядок действий: откройте конфигуратор, найдите нужный объект (например, справочник «Номенклатура»), откройте его свойства через правый клик → «Свойства». Найдите поле «Длина наименования» или «Длина кода» — для документов это «Длина номера». Укажите новое значение, например 150 вместо 100.

После изменения обновите конфигурацию базы данных: меню «Конфигурация» → «Обновить конфигурацию базы данных». Платформа покажет окно реструктуризации со списком изменяемых таблиц — подтвердите. На больших базах реструктуризация может занять заметное время, планируйте её на нерабочие часы.

Порядок действий в конфигураторе
  1. 1
    Сделайте резервную копию информационной базы
  2. 2
    Откройте конфигуратор и найдите нужный объект метаданных
  3. 3
    Откройте палитру свойств объекта
  4. 4
    Измените значение «Длина наименования», «Длина кода» или «Длина номера»
  5. 5
    Сохраните конфигурацию и выполните обновление конфигурации базы данных
  6. 6
    Проверьте запись элемента с длинным значением в пользовательском режиме

Способ 2: увеличение длины через расширение конфигурации

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

Создайте расширение: «Конфигурация» → «Расширения конфигурации» → «Создать». Затем в дереве конфигурации найдите нужный объект, через контекстное меню выберите «Добавить в расширение». У заимствованного объекта откройте свойства и измените длину стандартного реквизита — значение будет храниться в расширении, а типовая конфигурация останется нетронутой.

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

Согласование длин при обмене данными

Частая причина увеличения длины — обмен между базами. Если в базе-источнике наименование 150 символов, а в приёмнике 100, при загрузке значение обрежется без предупреждения. Поэтому длину нужно менять согласованно во всех базах, участвующих в обмене, или приводить её к максимальной из используемых.

Для планов обмена и правил конвертации проверьте также длины реквизитов в формате обмена (EnterpriseData, универсальный формат): там тоже могут быть свои ограничения длины полей, и они не всегда совпадают с длинами в конфигурации.

Особое внимание — реквизиту «Номер» документов. При распределённых базах и обменах с внешними системами номера нередко длиннее типовых 11 символов из-за префиксов. Увеличивайте длину номера с запасом, но помните: длина номера влияет на нумерацию и сортировку, а в некоторых механизмах (например, нумераторы) есть свои ограничения.

Сравнение вариантов

Изменение в конфигураторе

Подходит для собственных и снятых с поддержки конфигураций. Быстро и просто, но на типовой конфигурации ломает поддержку и усложняет обновления.

Расширение конфигурации

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

Дополнительный реквизит

Альтернатива без изменения стандартного поля: длинное значение хранится в дополнительном реквизите или сведении. Подходит, когда менять метаданные нельзя, но стандартные механизмы (поиск, представление) будут работать со старым полем.

Проверка результата и типичные ошибки

После обновления конфигурации базы данных откройте пользовательский режим и запишите элемент со значением новой длины: введите наименование из 140 символов, сохраните, закройте и откройте заново. Значение должно сохраниться полностью, без усечения. Проверьте также отображение в списке, в отчётах и в печатных формах — там поле может визуально не помещаться, хотя данные хранятся корректно.

Если база клиент-серверная, убедитесь, что реструктуризация прошла без ошибок: посмотрите журнал регистрации и технологический журнал. На очень больших таблицах изменение типа поля в СУБД может занимать длительное время и блокировать таблицу — это нормально, но об этом стоит предупредить пользователей.

Типичные ошибки
01
Изменили длину только в одной базе обмена — в другой базе значения обрезаются при загрузке
02
Уменьшили длину вместо увеличения — существующие данные усекаются при реструктуризации безвозвратно
03
Забыли обновить конфигурацию базы данных — изменения есть в конфигурации, но поле в таблице осталось прежним
04
Не обновили расширение после апгрейда типовой конфигурации — конфликт свойств и ошибки применения расширения
05
Увеличили длину наименования, но не проверили печатные формы и обмены — длинные значения ломают верстку или усекаются внешними системами
Контрольные точки

Как проверить результат

Запись длинного значения
Норма

Значение новой длины сохраняется и читается полностью

Тревожный признак

Значение обрезается при записи или при повторном открытии

Реструктуризация
Норма

Обновление конфигурации БД завершилось без ошибок

Тревожный признак

Ошибки в журнале регистрации, прерванное обновление

Обмен данными
Норма

Длинные значения переносятся между базами без усечения

Тревожный признак

В базе-приёмнике значения короче, чем в источнике

Ограничения и когда лучше не трогать стандартный реквизит

Не все стандартные реквизиты позволяют менять длину. Длина кода справочника, номера документа и наименования изменяема, но, например, у реквизита «Ссылка» или служебных булевых полей понятия длины нет вовсе. Также в некоторых конфигурациях длина номера связана с механизмами префиксации и нумерации — меняйте её с учётом этих механизмов.

Если нужно хранить действительно длинный текст (описание товара, инструкцию, договорные условия), стандартное наименование — неподходящее место. Заведите отдельный реквизит с неограниченной длиной или используйте дополнительные реквизиты и сведения: они настраиваются в пользовательском режиме без конфигуратора и не требуют реструктуризации.

Маршрут решения

Как выбрать действие

Конфигурация типовая, на полной поддержкеИспользуйте расширение конфигурации и увеличьте длину в нём
Конфигурация собственная или снята с поддержкиМеняйте длину напрямую в палитре свойств объекта
Нужен текст произвольной длины, а не чуть больше текущего лимитаДобавьте отдельный реквизит с неограниченной длиной вместо изменения стандартного
Проблема только в обмене между базамиСогласуйте длины во всех базах обмена и проверьте ограничения формата обмена

Частые вопросы

Можно ли уменьшить длину стандартного реквизита обратно?

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

Сорвёт ли поддержку изменение длины в расширении?

Нет. Расширение не изменяет типовую конфигурацию, оно накладывается поверх неё. Конфигурация остаётся на поддержке и обновляется штатно, но после обновления нужно проверять совместимость расширения с новым релизом.

Нужен ли монопольный режим для изменения длины?

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

Что будет со старыми данными после увеличения длины?

Ничего — существующие значения останутся как есть, увеличение длины не изменяет данные, а только расширяет допустимый предел. Опасно обратное действие: уменьшение длины приводит к усечению существующих значений.

Почему в расширении свойство длины недоступно для изменения?

Возможные причины: вы пытаетесь уменьшить длину (разрешено только увеличение), объект не добавлен в расширение корректно, или версия платформы не поддерживает изменение этого свойства. Проверьте режим совместимости конфигурации и актуальность платформы.

Влияет ли увеличение длины на производительность?

Умеренное увеличение (например, со 100 до 150 символов) практически незаметно. Существенное влияние дают неограниченные строки и поля большой длины, участвующие в индексах и отборах. Не задавайте длину с огромным запасом «на всякий случай» — берите значение, близкое к реальным потребностям.

Итог

Что важно запомнить

Длина стандартного реквизита меняется в палитре свойств объекта или через расширение для типовых конфигураций. Перед реструктуризацией обязательна резервная копия, после — проверка записи длинных значений и обменов. Увеличение безопасно для данных, уменьшение — необратимо обрезает значения.