Разработка и Конфигурация · 11 мин
Как увеличить количество символов в поле 1С
Как увеличить длину строкового реквизита в 1С через конфигуратор: изменение длины поля, неограниченная строка, риски обрезки данных и проверка результата.
Ограничение длины строкового реквизита — одна из самых частых проблем при работе с 1С: наименование товара обрезается, адрес не помещается целиком, комментарий в документе урезается на полуслове. Причина всегда одна — в конфигураторе для реквизита задана фиксированная длина строки, и платформа жёстко отсекает всё, что выходит за её пределы.
Увеличить количество символов можно двумя способами: изменить длину строки в свойствах реквизита через конфигуратор либо перевести поле в режим неограниченной длины. Оба варианта требуют доступа к конфигуратору и, в большинстве случаев, монопольного доступа к базе для обновления конфигурации. Простыми настройками в режиме «Предприятие» эта задача не решается.
Перед изменением важно понимать последствия: увеличение длины реквизита в типовой конфигурации потребует снятия объекта с полной поддержки, а при обменах данными с другими системами длинные значения могут обрезаться на принимающей стороне. Ниже разобраны все сценарии с конкретными шагами и проверками.
Почему поле обрезает текст и где задаётся ограничение
Каждый строковый реквизит в 1С имеет квалификатор типа «Строка», в котором задана длина. Типовые значения — 25, 50, 100, 150 символов для наименований и до 1000–2000 для комментариев. Когда пользователь вводит текст длиннее установленного предела, платформа либо не даёт продолжить ввод, либо молча обрезает значение при записи — поведение зависит от того, как заполняется поле.
Ограничение хранится в метаданных конфигурации, а не в данных. Поэтому никакие настройки интерфейса, права пользователя или параметры учёта на длину поля не влияют. Единственный путь — изменить сам объект конфигурации: справочник, документ, регистр сведений или иной объект, которому принадлежит реквизит.
Отдельный случай — поля, которые формируются программно. Например, «Полное наименование» может заполняться из нескольких реквизитов кодом, и даже после увеличения длины целевого поля текст будет обрезаться в месте склейки, если разработчик явно ограничил длину функцией Лев(). Такие места нужно искать поиском по конфигурации.
Как увеличить длину реквизита через конфигуратор
Основной сценарий выглядит одинаково для справочников, документов и регистров. Откройте конфигуратор, найдите нужный объект в дереве конфигурации и перейдите к реквизиту, длину которого требуется изменить. Для стандартного реквизита «Наименование» он находится на закладке «Данные» в разделе «Стандартные реквизиты», для собственных полей — в списке «Реквизиты».
Двойным щелчком откройте палитру свойств реквизита и найдите строку «Длина». Установите новое значение — например, вместо 100 укажите 250 или 500. Сохраните конфигурацию (Ctrl+S), затем выполните обновление конфигурации базы данных через меню «Конфигурация — Обновить конфигурацию базы данных». После этого поле начнёт принимать больше символов.
- 1Сделайте резервную копию базы через выгрузку в dt или средствами СУБД
- 2Откройте конфигуратор и найдите объект с нужным реквизитом
- 3В палитре свойств реквизита измените значение «Длина» на требуемое
- 4Сохраните конфигурацию и выполните обновление конфигурации базы данных
- 5Зайдите в режим «Предприятие» и проверьте ввод длинного значения
Если реквизит участвует в индексах или является ключевым (например, код справочника), платформа может ограничить максимально допустимую длину. При попытке задать слишком большое значение конфигуратор выдаст предупреждение — в этом случае выбирайте разумный предел, а не максимально возможный.
Изменение стандартного реквизита «Наименование»
Для наименования справочника откройте объект, перейдите на закладку «Данные» и измените поле «Длина наименования» вверху формы. Там же меняется «Длина кода», если не помещаются номера или артикулы. Учтите: длина наименования может быть ограничена дополнительно свойством «Автопрефикс» и настройками нумерации, но на практике чаще всего достаточно просто увеличить значение.
Как снять ограничение полностью: неограниченная длина строки
Если заранее неизвестно, какой длины будут значения — например, для комментариев, описаний, XML-пакетов или длинных адресов, — установите длину строки равной 0. В 1С это означает неограниченную длину. В палитре свойств при этом автоматически устанавливается признак «Неограниченная длина».
У неограниченной строки есть важные ограничения. Такой реквизит нельзя индексировать, использовать в отборах динамических списков с полной эффективностью и применять в некоторых механизмах сравнения. В файловом варианте базы очень длинные тексты в неограниченных полях могут замедлять выборку при массовых операциях. Поэтому для наименований и кодов лучше задавать конкретную достаточную длину, а неограниченность оставлять для действительно длинных текстов.
Сравнение вариантов
Подходит для наименований, адресов, артикулов. Поле остаётся индексируемым, работа с отборами не страдает. Ограничение — нужно угадать достаточный запас.
Подходит для комментариев, описаний, служебных текстов. Не требует угадывать размер. Ограничение — нельзя индексировать, возможно снижение производительности отборов.
Подходит для очень больших текстов (регламенты, договоры). Ограничение — текст не участвует в поиске по реквизиту напрямую.
Изменение длины в типовой конфигурации на поддержке
В типовых решениях (1С:Бухгалтерия, Управление торговлей, ERP) объекты по умолчанию закрыты для редактирования. Чтобы изменить длину реквизита, откройте «Конфигурация — Поддержка — Настройка поддержки», включите возможность изменения и для нужного объекта установите режим «Редактируется с сохранением поддержки». После этого реквизит станет доступен для правки.
Последствие такого шага — при последующих обновлениях конфигурации платформа может предложить вернуть типовое значение длины. Перед каждым обновлением проверяйте список изменённых объектов и в диалоге сопоставления отмечайте, что ваше значение длины нужно сохранить. Если пропустить этот момент, обновление вернёт типовую длину, и длинные значения, введённые ранее, могут быть обрезаны при реструктуризации.
Альтернатива правке типового объекта — добавить собственный дополнительный реквизит нужной длины через механизм «Дополнительные реквизиты и сведения» в режиме «Предприятие» (если он включён в конфигурации). Это не требует снятия с поддержки и переживает обновления, но такой реквизит будет отдельным полем, а не заменой типового.
Особые случаи: поля формы, печать и обмены данными
Иногда ограничение задано не в метаданных, а в форме: у поля ввода может быть включено свойство «Ограничение типа» или обработчик, обрезающий текст. Если после увеличения длины реквизита поле по-прежнему не принимает длинный текст, откройте модуль формы и поищите функции Лев(), Сред() или явную установку максимальной длины в коде.
При обмене данными (с сайтом, другой базой 1С, сторонними системами) длина поля на принимающей стороне может остаться прежней. Значение в 300 символов, отправленное в систему с пределом 150, будет обрезано без предупреждения. Перед увеличением длины проверьте все связанные системы и форматы обмена — CommerceML, EnterpriseData, собственные правила конвертации.
Для печатных форм длинные значения могут просто не помещаться в отведённую область макета. После увеличения длины поля проверьте основные печатные формы, где выводится этот реквизит, и при необходимости включите автоперенос или увеличьте высоту ячейки макета.
Проверка результата и контроль данных
После обновления конфигурации откройте в режиме «Предприятие» элемент с изменённым полем и введите тестовое значение заведомо длиннее старого предела. Сохраните объект, закройте и откройте заново — значение должно отображаться полностью. Если текст обрезался, проверьте, обновилась ли конфигурация базы данных: расхождение конфигураций видно по пункту меню «Конфигурация — Конфигурация базы данных».
Проверьте также смежные места: отчёты, где выводится реквизит, печатные формы, динамические списки и формы списка. В списках длинные значения могут визуально не помещаться в колонку — это не ошибка данных, но для удобства стоит включить перенос строк или расширить колонку.
Как проверить результат
Текст вводится и сохраняется целиком
Ввод блокируется или текст обрезается после записи
Конфигурация и конфигурация базы данных совпадают
Есть расхождение — изменения не применены к базе
Длинное значение передаётся в связанную систему без потерь
На принимающей стороне текст усечён
Значение выводится полностью, макет не «разъезжается»
Текст обрезан визуально или ломает вёрстку
Частые вопросы
Можно ли увеличить длину поля без конфигуратора?
Нет, длина строкового реквизита — свойство метаданных и меняется только в конфигураторе. Единственная альтернатива без правки конфигурации — создать дополнительный реквизит или дополнительное сведение через механизм «Дополнительные реквизиты и сведения» в режиме «Предприятие», если он доступен в вашей конфигурации.
Что произойдёт с уже введёнными данными после увеличения длины?
Ничего — существующие значения останутся без изменений, поскольку они короче нового ограничения. Увеличение длины не требует перезаписи данных и является безопасной реструктуризацией.
Почему после изменения длины поле всё равно обрезает текст?
Наиболее вероятные причины: конфигурация базы данных не обновлена, текст обрезается кодом (функция Лев() в модуле формы или объекта), либо вы изменили не тот реквизит — например, «Наименование», тогда как на форме выводится «Полное наименование» или синоним, заполняемый программно.
Чем опасна неограниченная длина строки?
Такой реквизит нельзя индексировать и эффективно использовать в отборах, а в файловых базах очень длинные тексты могут замедлять выборки. Для полей, по которым ищут и сортируют (наименования, коды), лучше задавать конкретную достаточную длину.
Вернётся ли моё изменение после обновления типовой конфигурации?
Может вернуться, если при обновлении в диалоге сопоставления объектов не указать сохранение вашего значения. Перед каждым обновлением проверяйте изменённые объекты и контролируйте, какая длина будет установлена в итоговой конфигурации.
Как узнать текущую длину реквизита, не открывая конфигуратор?
В режиме «Предприятие» введите в поле заведомо длинный текст — ввод остановится на пределе. Точное значение можно получить через встроенный язык: свойство метаданных реквизита «Тип» содержит квалификаторы строки с указанием длины.
Что важно запомнить
Длина строкового поля меняется только в конфигураторе через свойство «Длина» реквизита; значение 0 даёт неограниченную строку, но отключает индексацию. Для типовых конфигураций включите возможность изменения в настройке поддержки и контролируйте длину при обновлениях. Перед реструктуризацией всегда делайте резервную копию, а после — проверяйте ввод, обмены и печатные формы.