Длина наименования справочника в 1С: как её увеличить

· 9 мин

Содержание

Пользователь вводит название товара или контрагента, 1С молча обрезает его на сотом символе. Или не даёт ввести больше. Длина наименования справочника задаётся в свойствах объекта конфигурации, и поменять её можно только в Конфигураторе. В режиме «1С:Предприятие» это не настроить.

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

Сначала посмотрите, что за объект и какая у него длина

Наименование есть у справочников, у планов видов характеристик, планов счетов и некоторых других объектов. У документов наименования нет — там номер и дата. Если вам нужно длиннее поле в документе, речь о реквизите, и это другой случай (он разобран ниже).

Что проверить до правки:

  • 📏 Текущая длина. Откройте объект в конфигураторе и посмотрите свойство Длина наименования. В типовых справочниках встречаются значения вроде 25, 50, 100, 150 — зависит от объекта.
  • 🔎 Реальная потребность. Возьмите самые длинные значения из базы. Если пользователям не хватает 100 символов потому, что в название пишут описание, возможно, нужно другое поле.
  • 🧱 Верхняя граница. Платформа ограничивает длину наименования справочника. Значение выше допустимого конфигуратор не примет, а точный предел для вашей версии платформы смотрите в справке к свойству (кнопка F1 на поле в палитре свойств).
  • 🔒 Режим поддержки. Если конфигурация типовая, поле свойств будет недоступно, пока вы не разрешите изменения.

Чтобы быстро найти самые длинные названия, подойдёт запрос в консоли запросов:

ВЫБРАТЬ ПЕРВЫЕ 20
	Номенклатура.Ссылка КАК Ссылка,
	ДлинаСтроки(Номенклатура.Наименование) КАК Длина
ИЗ
	Справочник.Номенклатура КАК Номенклатура
УПОРЯДОЧИТЬ ПО
	Длина УБЫВ

Подставьте свой справочник вместо Номенклатура. Так видно, насколько близко к лимиту подошли пользователи.

Если самые длинные названия упираются ровно в лимит и обрываются на полуслове, увеличение оправдано. Если до лимита им далеко, дело в другом: ошибка в обработке, сторонняя выгрузка или поле, которое путают с наименованием.

Как изменить длину наименования в конфигураторе

Пошагово для своей конфигурации или для базы, где вы вправе менять метаданные:

  1. Сделайте копию информационной базы. Для файловой — скопируйте каталог с 1Cv8.1CD, для клиент-серверной — резервная копия в СУБД или выгрузка в .dt.
  2. Запустите базу в режиме Конфигуратор и откройте Конфигурация → Открыть конфигурацию.
  3. Разверните ветку Справочники, найдите нужный и откройте его двойным щелчком.
  4. На закладке Данные найдите поле Длина наименования и введите новое число.
  5. Закройте окно объекта и нажмите F7 (или кнопку Обновить конфигурацию базы данных на панели).
  6. Подтвердите реструктуризацию таблиц. Платформа сама перестроит структуру базы.
  7. Запустите «1С:Предприятие» и проверьте, что в форме элемента можно ввести длинное значение.

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

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

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

Реквизит вместо наименования

Часто «увеличить наименование» нужно не в самом справочнике, а в добавленном реквизите. Тут всё проще: откройте объект, закладку Данные → Реквизиты, выберите реквизит и в палитре свойств поменяйте тип. У строкового типа задаётся длина, а у неограниченной длины стоит отдельный признак.

ВариантКогда подходитОграничения
Строка фиксированной длиныНужен предсказуемый размер, по полю будут отбор и сортировкаБольше длина — больше места в базе
Строка неограниченной длиныДлинные описания, примечанияНельзя использовать в отборах и сортировке так же свободно, как обычную строку
Строка переменной длиныЗначения короткие, но разныеНужна оценка максимума

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

Как быть с типовой конфигурацией на поддержке

Бухгалтерия, ЗУП, Управление торговлей и другие типовые решения поставляются «на замке». Правка метаданных в них возможна, но каждая такая правка превращает обновление релиза в работу.

Что происходит:

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

Так что для типовых баз сначала решите, нужна ли правка вообще. Более безопасные пути:

  • 📝 В справочнике «Номенклатура» есть отдельное поле для полного наименования, оно длиннее обычного. Для печатных форм используют именно его.
  • 🗂 Для характеристик и дополнительных сведений подойдут механизмы дополнительных реквизитов и сведений, которые включаются в настройках программы.
  • 🧩 Доработку, которую нужно сохранить при обновлении, обсудите с программистом: иногда её выносят в отдельную обработку или в расширение, но проверяйте на тестовой базе, допускает ли расширение вашу конкретную правку.

Если решили править прямо в типовой конфигурации, сохраните список изменений. Через год никто не вспомнит, почему у справочника длина наименования 200, а у соседней базы 100.

Что происходит в списках, формах и печати

После увеличения длины данные в базе уже вмещают больше символов, но отображение зависит от формы.

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

Что стоит пройти после правки:

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

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

Внешние обработки и отчёты

Отдельные внешние отчёты и обработки могли быть написаны под старую длину. Если где-то в коде стоит Лев(Наименование, 50) или длина поля жёстко задана в макете, расширение справочника этого не исправит. Просмотрите такие места поиском по конфигурации (Правка → Найти в модуле) и по самим файлам обработок.

Обмены данными и интеграции после изменения длины

Здесь чаще всего всплывают проблемы. Длина наименования должна быть согласована между всеми участниками обмена.

Типичная картина: в «Бухгалтерии» длину увеличили до 200, а во второй базе осталось 100. Название приходит длиннее, чем помещается. В зависимости от настроек платформа и правил обмена результат может быть разным — обрезка, ошибка записи элемента или искажённые данные. Чтобы не гадать, проверьте на тестовой паре баз.

Чек-лист для обменов:

  • какие базы обмениваются этим справочником (план обмена, правила конвертации, веб-сервисы);
  • совпадает ли длина наименования у получателя;
  • есть ли в правилах обмена жёсткое усечение или проверка длины;
  • какие внешние системы забирают наименование (сайт, учётные программы, маркетплейсы) и есть ли у них свои лимиты;
  • как поведёт себя выгрузка в файл — например, в формат с фиксированной шириной колонок.

Для сопоставления полей между системами удобно составить небольшую таблицу заранее:

Сопоставление полей
Наименование (источник)→Наименование справочника в 1С
Полное наименование (источник)→Реквизит с неограниченной строкой
Артикул→Артикул (короткая строка)

Если получатель не может увеличить длину, оставьте в наименовании краткую форму, а подробное описание передавайте отдельным полем.

Данные, перенос и обновление базы

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

Чего ждать:

  • 📦 на справочнике с сотнями тысяч элементов реструктуризация длится заметно дольше, чем на небольшом. Закладывайте окно на несколько часов для крупных баз и не прерывайте процесс;
  • 💾 места на диске нужно больше: СУБД и платформа создают временные копии таблиц при перестроении;
  • 🔁 если у вас есть несколько баз с одной конфигурацией (рабочая, тестовая, копии у филиалов), изменённую конфигурацию переносят в каждую: через Конфигурация → Сохранить конфигурацию в файл и загрузку, либо через файл обновления.

Выгрузить и загрузить сам файл конфигурации можно так:

  1. В конфигураторе — Конфигурация → Сохранить конфигурацию в файл, укажите .cf.
  2. В целевой базе — Конфигурация → Загрузить конфигурацию из файла.
  3. Затем F7, чтобы обновить конфигурацию базы данных.

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

Перед обновлением конфигурации базы данных
Выполнено: 0 / 5

Производительность при длинных строках

Увеличение с 100 до 200 символов само по себе базу не тормозит. Другое дело, если выбрать неограниченную длину для поля, по которому идут отборы, и миллионы строк в списке.

Что стоит учесть:

  • 🚀 длинные строки занимают больше места в таблицах и индексах, поэтому поиск по ним чуть дороже;
  • 🔍 быстрый поиск по подстроке в длинных текстах медленнее, чем по коротким кодам;
  • 📋 формы списков, которые показывают наименование целиком, тянут больше данных по сети, и на тонких клиентах это заметно;
  • 🧮 в запросах не нужно без необходимости сравнивать длинные строки: отбор по ссылке или коду быстрее, чем по тексту.

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

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

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