Разработка и Конфигурация · 12 мин
Как увеличить длину стандартного реквизита в 1С
Как увеличить длину стандартного реквизита в 1С без снятия конфигурации с поддержки: расширение, изменение в конфигураторе, проверка данных и типичные ошибки.
Стандартные реквизиты — это служебные поля, которые платформа 1С создаёт автоматически для каждого объекта метаданных: «Наименование» у справочника, «Номер» и «Комментарий» у документа, «Код» у плана видов характеристик. У каждого из них задана длина по умолчанию, и рано или поздно она перестаёт хватать: наименование товара обрезается, номер документа из внешней системы не влезает, комментарий усечён.
Увеличить длину можно двумя принципиально разными способами: изменить свойство реквизита прямо в конфигураторе или вынести изменение в расширение конфигурации, не трогая типовую поставку. Выбор зависит от того, как обновляется ваша база, есть ли у вас доступ к конфигуратору и стоит ли конфигурация на полной поддержке.
Оба способа рабочие, но у каждого есть ограничения и риски. Ниже разобраны оба варианта с пошаговыми действиями, проверкой результата и типичными ошибками, которые приводят к обрезанию данных или конфликтам при обновлении.
Что такое стандартный реквизит и где задана его длина
Стандартные реквизиты видны в дереве конфигурации у каждого объекта: откройте справочник или документ в конфигураторе и разверните ветку «Стандартные реквизиты» — там будут «Код», «Наименование», «Ссылка», «ПометкаУдаления» и другие служебные поля. Их состав платформа формирует сама, удалить их нельзя, но часть свойств доступна для изменения.
Длина строкового стандартного реквизита задаётся в палитре свойств. Например, у «Наименования» справочника по умолчанию стоит длина 25 или 100 символов в зависимости от конфигурации, у «Номера» документа — обычно 11. Это свойство типа «Строка» с квалификатором длины, и именно его вы меняете при необходимости.
Важно понимать: длина хранится в метаданных, а физическое ограничение применяется на уровне поля таблицы базы данных. Поэтому любое изменение длины влечёт реструктуризацию — платформа пересоздаст или изменит соответствующее поле в таблицах СУБД.
Проверьте, действительно ли нужно менять длину
Прежде чем лезть в конфигуратор, убедитесь, что проблема именно в длине стандартного реквизита. Признаки типичные: при сохранении элемента наименование молча обрезается, при обмене данными номер документа из другой системы усекается, пользователи жалуются, что комментарий «не влезает целиком».
Откройте свойства объекта и посмотрите текущее значение длины. Если наименование ограничено 50 символами, а реальные названия товаров занимают 120–150, вопрос очевиден. Иногда длину уже увеличивал поставщик конфигурации в новых релизах — проверьте актуальную типовую поставку, возможно, достаточно обновиться.
Отдельный случай — неограниченная длина. У строки в 1С можно снять ограничение длины совсем (свойство «Неограниченная длина»). Для стандартных реквизитов это доступно не всегда и не всегда оправданно: неограниченные строки хранятся иначе, медленнее индексируются и не могут использоваться в некоторых контекстах, например в отборах динамических списков с точным сравнением.
Текущее значение длины в палитре свойств объекта
Максимальная реальная длина номеров во входящих данных
Статус поддержки конфигурации и наличие расширений
Способ 1: изменение длины в конфигураторе
Этот способ подходит, если конфигурация снята с поддержки или вы ведёте собственную разработку. Действия выполняются в конфигураторе под пользователем с правами администратора, в монопольном режиме или с возможностью динамического обновления — для изменения длины реструктуризация обычно требует монопольного доступа.
Порядок действий: откройте конфигуратор, найдите нужный объект (например, справочник «Номенклатура»), откройте его свойства через правый клик → «Свойства». Найдите поле «Длина наименования» или «Длина кода» — для документов это «Длина номера». Укажите новое значение, например 150 вместо 100.
После изменения обновите конфигурацию базы данных: меню «Конфигурация» → «Обновить конфигурацию базы данных». Платформа покажет окно реструктуризации со списком изменяемых таблиц — подтвердите. На больших базах реструктуризация может занять заметное время, планируйте её на нерабочие часы.
- 1Сделайте резервную копию информационной базы
- 2Откройте конфигуратор и найдите нужный объект метаданных
- 3Откройте палитру свойств объекта
- 4Измените значение «Длина наименования», «Длина кода» или «Длина номера»
- 5Сохраните конфигурацию и выполните обновление конфигурации базы данных
- 6Проверьте запись элемента с длинным значением в пользовательском режиме
Способ 2: увеличение длины через расширение конфигурации
Если конфигурация типовая и стоит на полной поддержке, прямое изменение свойств сорвёт поддержку и усложнит обновления. Выход — расширение конфигурации. Платформа позволяет в расширении менять ряд свойств стандартных реквизитов, включая длину строки.
Создайте расширение: «Конфигурация» → «Расширения конфигурации» → «Создать». Затем в дереве конфигурации найдите нужный объект, через контекстное меню выберите «Добавить в расширение». У заимствованного объекта откройте свойства и измените длину стандартного реквизита — значение будет храниться в расширении, а типовая конфигурация останется нетронутой.
Учтите ограничение: в расширении длину строки можно только увеличить относительно типового значения, уменьшить нельзя. Также проверяйте совместимость после каждого обновления типовой конфигурации — если вендор сам увеличит длину, расширение может потребовать корректировки.
Согласование длин при обмене данными
Частая причина увеличения длины — обмен между базами. Если в базе-источнике наименование 150 символов, а в приёмнике 100, при загрузке значение обрежется без предупреждения. Поэтому длину нужно менять согласованно во всех базах, участвующих в обмене, или приводить её к максимальной из используемых.
Для планов обмена и правил конвертации проверьте также длины реквизитов в формате обмена (EnterpriseData, универсальный формат): там тоже могут быть свои ограничения длины полей, и они не всегда совпадают с длинами в конфигурации.
Особое внимание — реквизиту «Номер» документов. При распределённых базах и обменах с внешними системами номера нередко длиннее типовых 11 символов из-за префиксов. Увеличивайте длину номера с запасом, но помните: длина номера влияет на нумерацию и сортировку, а в некоторых механизмах (например, нумераторы) есть свои ограничения.
Сравнение вариантов
Подходит для собственных и снятых с поддержки конфигураций. Быстро и просто, но на типовой конфигурации ломает поддержку и усложняет обновления.
Подходит для типовых конфигураций на поддержке. Сохраняет возможность обновления, но позволяет только увеличивать длину и требует контроля совместимости.
Альтернатива без изменения стандартного поля: длинное значение хранится в дополнительном реквизите или сведении. Подходит, когда менять метаданные нельзя, но стандартные механизмы (поиск, представление) будут работать со старым полем.
Проверка результата и типичные ошибки
После обновления конфигурации базы данных откройте пользовательский режим и запишите элемент со значением новой длины: введите наименование из 140 символов, сохраните, закройте и откройте заново. Значение должно сохраниться полностью, без усечения. Проверьте также отображение в списке, в отчётах и в печатных формах — там поле может визуально не помещаться, хотя данные хранятся корректно.
Если база клиент-серверная, убедитесь, что реструктуризация прошла без ошибок: посмотрите журнал регистрации и технологический журнал. На очень больших таблицах изменение типа поля в СУБД может занимать длительное время и блокировать таблицу — это нормально, но об этом стоит предупредить пользователей.
Как проверить результат
Значение новой длины сохраняется и читается полностью
Значение обрезается при записи или при повторном открытии
Обновление конфигурации БД завершилось без ошибок
Ошибки в журнале регистрации, прерванное обновление
Длинные значения переносятся между базами без усечения
В базе-приёмнике значения короче, чем в источнике
Ограничения и когда лучше не трогать стандартный реквизит
Не все стандартные реквизиты позволяют менять длину. Длина кода справочника, номера документа и наименования изменяема, но, например, у реквизита «Ссылка» или служебных булевых полей понятия длины нет вовсе. Также в некоторых конфигурациях длина номера связана с механизмами префиксации и нумерации — меняйте её с учётом этих механизмов.
Если нужно хранить действительно длинный текст (описание товара, инструкцию, договорные условия), стандартное наименование — неподходящее место. Заведите отдельный реквизит с неограниченной длиной или используйте дополнительные реквизиты и сведения: они настраиваются в пользовательском режиме без конфигуратора и не требуют реструктуризации.
Как выбрать действие
Частые вопросы
Можно ли уменьшить длину стандартного реквизита обратно?
Технически — да, в конфигураторе, но с риском: если в базе уже есть значения длиннее нового лимита, при реструктуризации они будут усечены безвозвратно. В расширении уменьшить длину относительно типового значения нельзя вовсе. Перед уменьшением проверьте максимальную фактическую длину данных запросом.
Сорвёт ли поддержку изменение длины в расширении?
Нет. Расширение не изменяет типовую конфигурацию, оно накладывается поверх неё. Конфигурация остаётся на поддержке и обновляется штатно, но после обновления нужно проверять совместимость расширения с новым релизом.
Нужен ли монопольный режим для изменения длины?
Как правило, да. Изменение длины реквизита требует реструктуризации таблиц, а она выполняется при обновлении конфигурации базы данных в монопольном режиме. Динамическое обновление для таких изменений обычно недоступно.
Что будет со старыми данными после увеличения длины?
Ничего — существующие значения останутся как есть, увеличение длины не изменяет данные, а только расширяет допустимый предел. Опасно обратное действие: уменьшение длины приводит к усечению существующих значений.
Почему в расширении свойство длины недоступно для изменения?
Возможные причины: вы пытаетесь уменьшить длину (разрешено только увеличение), объект не добавлен в расширение корректно, или версия платформы не поддерживает изменение этого свойства. Проверьте режим совместимости конфигурации и актуальность платформы.
Влияет ли увеличение длины на производительность?
Умеренное увеличение (например, со 100 до 150 символов) практически незаметно. Существенное влияние дают неограниченные строки и поля большой длины, участвующие в индексах и отборах. Не задавайте длину с огромным запасом «на всякий случай» — берите значение, близкое к реальным потребностям.
Что важно запомнить
Длина стандартного реквизита меняется в палитре свойств объекта или через расширение для типовых конфигураций. Перед реструктуризацией обязательна резервная копия, после — проверка записи длинных значений и обменов. Увеличение безопасно для данных, уменьшение — необратимо обрезает значения.