Разработка и Конфигурация · 11 мин
Как увеличить длину наименования номенклатуры в 1С
Как увеличить длину наименования номенклатуры в 1С: изменение длины строки в конфигураторе, риски обрезания данных, проверка связанных объектов и печатных форм.
В типовых конфигурациях 1С (Управление торговлей, Комплексная автоматизация, ERP, Бухгалтерия предприятия) длина наименования номенклатуры ограничена свойством «Длина» строкового реквизита «Наименование» справочника. Чаще всего это 100 или 150 символов. Когда поставщики присылают длинные названия товаров с характеристиками, этого перестаёт хватать: текст обрезается при загрузке, а пользователи не могут ввести полное название вручную.
Ограничение задаётся не в пользовательском режиме, а в метаданных конфигурации, поэтому увеличить длину можно только через конфигуратор с правами на изменение структуры. При этом важно понимать: наименование часто связано с другими реквизитами — полным наименованием, наименованием для печати, представлением в документах. Если увеличить только одно поле, несоответствие длин может привести к обрезанию данных в других местах.
Ниже разобрано, где именно хранится ограничение, как безопасно его изменить, что проверить после обновления и в каких случаях лучше использовать альтернативные подходы — например, дополнительные реквизиты или рабочее наименование.
Где задаётся ограничение длины наименования
Наименование — это стандартный реквизит любого справочника в 1С. Его длина определяется свойством «Длина» в палитре свойств справочника, а не в пользовательских настройках. Для справочника «Номенклатура» в типовых конфигурациях значение обычно составляет 100 или 150 символов — точное число зависит от версии конфигурации.
Помимо стандартного наименования у номенклатуры обычно есть и другие строковые реквизиты со своими ограничениями:
- Наименование полное — используется в печатных формах и юридически значимых документах;
- Наименование для печати (в некоторых конфигурациях);
- Рабочее наименование — краткое отображение в списках;
- Описание — как правило, строка неограниченной или большой длины.
Если полное наименование заполняется автоматически из основного (например, обработчиком при записи), то увеличение только стандартного наименования создаст ситуацию, когда длинное значение обрезается при копировании в более короткое поле.
Как увеличить длину через конфигуратор
Изменение выполняется в режиме конфигуратора и требует монопольного доступа к базе при обновлении. Порядок действий одинаков для большинства конфигураций на управляемых формах.
- 1Сделайте резервную копию базы (выгрузку в .dt или средствами СУБД).
- 2Откройте конфигуратор, разблокируйте конфигурацию от поддержки при необходимости (с учётом рисков обновления).
- 3Найдите в дереве конфигурации: Справочники → Номенклатура.
- 4Откройте палитру свойств справочника и найдите свойство «Длина наименования».
- 5Увеличьте значение, например со 100 до 250 символов.
- 6Аналогично проверьте и при необходимости увеличьте реквизиты «НаименованиеПолное» и «НаименованиеДляПечати» в разделе «Данные» справочника.
- 7Сохраните конфигурацию (F7) и обновите конфигурацию базы данных (F7 → Обновить).
- 8Запустите базу в пользовательском режиме и проверьте ввод длинного наименования.
Если конфигурация находится на полной поддержке, потребуется включить возможность изменения через «Поддержка → Настройка поддержки». Учтите: это снимает объект с полной поддержки, и при последующих обновлениях конфигурации изменённый объект может потребовать ручного сравнения и объединения.
Для файловых баз обновление структуры проходит быстро. Для клиент-серверных баз с большим справочником номенклатуры реструктуризация таблицы может занять заметное время — планируйте обновление на нерабочие часы.
Что проверить после изменения длины
Само по себе увеличение длины реквизита — безопасная операция: существующие данные не обрезаются, так как новый лимит больше старого. Но корректная работа длинных наименований зависит от окружения, в котором они используются.
Проверьте следующие места:
- Печатные формы — длинное наименование может не помещаться в колонку табличной части ТОРГ-12, счёта-фактуры или УПД, текст будет обрезан или «съедет» вёрстка;
- Обмены данными — если наименование передаётся в другую базу (обмен УТ–БП, обмен с сайтом, ЭДО), проверьте длину соответствующего реквизита в базе-приёмнике: при несовпадении значение обрежется молча;
- Формы списков и подбора — длинные строки могут ухудшить читаемость списка номенклатуры;
- Отчёты и СКД — в некоторых отчётах поля имеют фиксированную ширину;
- Регистры и документы — если наименование дублируется в измерениях или реквизитах других объектов (что встречается в самописных доработках), их длина тоже должна соответствовать.
Как проверить результат
Строка из 200+ символов сохраняется полностью и отображается после перезаписи элемента
Текст обрезается при вводе или после сохранения
Значение копируется из наименования без потери символов
Полное наименование короче основного при автозаполнении
Наименование выводится целиком или переносится на новую строку
Текст обрезан, колонки смещены
В базе-приёмнике наименование совпадает с источником
В приёмнике значение усечено
Риски и ограничения при изменении типового реквизита
Главный риск — усложнение обновлений. Объект, снятый с полной поддержки, при выходе нового релиза конфигурации потребует ручного контроля при объединении. Если изменена только длина строки, конфликтов обычно немного, но отслеживать их придётся при каждом обновлении.
Второй риск — рассинхронизация с внешними системами. Типичный сценарий: в 1С увеличили длину до 250 символов, а на сайте или в базе бухгалтерии осталось 100. Обмен отработает без ошибок, но часть данных будет потеряна без каких-либо предупреждений.
Третий момент — техническое ограничение платформы. Для строковых реквизитов фиксированной длины существует предел (порядка 1024 символов для индексируемых полей, а для наименования справочника разумный практический потолок ниже). Наименование — стандартный реквизит, по которому выполняется поиск и сортировка, поэтому чрезмерно большие значения (500+ символов) нежелательны: они влияют на размер индексов и удобство работы.
Альтернативы: когда менять длину не обязательно
Не всегда задача требует именно увеличения стандартного реквизита. В ряде случаев рациональнее использовать штатные механизмы, не затрагивающие метаданные.
Дополнительные реквизиты и сведения. Если длинное название нужно только для справки или выгрузки на сайт, его можно хранить в дополнительном реквизите справочника (Администрирование → Общие настройки → Дополнительные реквизиты). Длина такого строкового реквизита настраивается без конфигуратора, а конфигурация остаётся на полной поддержке.
Описание номенклатуры. Реквизит «Описание» обычно имеет неограниченную длину и подходит для хранения полного текста с характеристиками. Минус — он не выводится по умолчанию в списках и печатных формах.
Рабочее наименование. В некоторых конфигурациях есть отдельное поле для краткого отображения, а полное наименование можно хранить развёрнутым. Это позволяет разделить «короткое имя для работы» и «длинное имя для документов».
Сравнение вариантов
Подходит, когда длинное название должно отображаться везде: списки, документы, печать. Минус — снятие с поддержки и риски при обменах.
Подходит для информационных целей и выгрузки на сайт без доработки конфигурации. Минус — не участвует в стандартных печатных формах без доработки макетов.
Подходит для длинного текста с характеристиками. Минус — не видно в списках, не используется в документах.
Особенности для разных конфигураций
В 1С:Бухгалтерии номенклатура обычно имеет меньше связанных реквизитов, чем в торговых конфигурациях, поэтому изменение проще — достаточно увеличить длину наименования и полного наименования. В УТ и ERP дополнительно проверьте работу с вариантами наименований, шаблоны наименований для групп номенклатуры и обмены с сайтом (CommerceML ограничивает длину полей на стороне приёмника).
В самописных и сильно доработанных конфигурациях наименование может использоваться в коде: конкатенация строк, формирование представлений документов, поиск по подстроке. Перед изменением выполните глобальный поиск по тексту «Наименование» с фильтром по справочнику «Номенклатура» и оцените, нет ли явных операций обрезки вроде Лев(Наименование, 100).
// Пример поиска потенциального обрезания в коде: ищите конструкции вида
ПолноеНаименование = Лев(Объект.Наименование, 150);
// После увеличения длины такие фрагменты нужно скорректироватьЕсли обнаружились жёстко заданные ограничения в коде, их нужно привести в соответствие с новой длиной реквизита, иначе часть логики продолжит работать со старым лимитом.
FAQ
Обрежутся ли существующие наименования при увеличении длины?
Нет. Увеличение длины строкового реквизита — безопасная реструктуризация: существующие значения короче нового лимита и сохраняются полностью. Риск потери данных возникает только при уменьшении длины или сбое во время реструктуризации, поэтому резервная копия обязательна.
Можно ли увеличить длину без снятия конфигурации с поддержки?
Изменить стандартный реквизит «Наименование» без включения возможности изменения нельзя — это правка метаданных. Альтернатива без снятия с поддержки — дополнительный реквизит или расширение конфигурации, если ваша версия платформы и режим совместимости позволяют переопределять свойства объекта через расширение.
Какую длину лучше установить?
Ориентируйтесь на реальные данные: проанализируйте самые длинные названия от поставщиков и добавьте запас 20–30%. Обычно достаточно 200–250 символов. Значения свыше 500 символов нежелательны — наименование участвует в поиске, сортировке и индексах.
Почему после увеличения длины наименование всё равно обрезается в обмене?
Потому что ограничение действует на стороне базы-приёмника или формата обмена. Проверьте длину соответствующего реквизита в другой базе и увеличьте её там же. При обмене с внешними системами (сайт, ЭДО) уточните ограничения формата на их стороне.
Влияет ли увеличение длины на производительность базы?
Само по себе изменение лимита не замедляет работу: хранятся только фактические значения. Незначительный эффект возможен на размер индексов при очень больших значениях (500+ символов) и на время реструктуризации таблицы в момент обновления конфигурации базы данных.
Что важно запомнить
Длина наименования номенклатуры меняется в конфигураторе через свойство «Длина» справочника «Номенклатура». Перед изменением сделайте копию, проверьте связанные реквизиты (полное наименование, наименование для печати), код с жёсткими ограничениями и длины полей в базах-участницах обмена. Если доработка метаданных нежелательна, используйте дополнительные реквизиты или поле «Описание».