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

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

Как добавить разрядность в 1С: коды, номера и числовые поля

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

Разрядность в 1С — это длина кода справочника, номера документа или числового реквизита, заданная в конфигурации. Когда коды переполняются (например, нумерация дошла до «9999» при длине кода 4), система начинает выдавать ошибки, дублировать значения или сбрасывать нумерацию, и разрядность приходится увеличивать.

Изменение разрядности выполняется в конфигураторе и требует монопольного доступа к базе, потому что при обновлении конфигурации 1С выполняет реструктуризацию таблиц. В файловых базах небольшого размера это занимает минуты, в крупных клиент-серверных базах — часы, поэтому работу планируют на нерабочее время.

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

Что именно считается разрядностью в 1С

Под разрядностью в прикладной работе обычно понимают три разных параметра. Первый — длина кода справочника или плана счетов: определяет, сколько символов занимает код элемента (например, «000000123» при длине 9). Второй — длина номера документа: влияет на формат номеров «0000-000001» и на максимальное количество документов в периоде нумерации. Третий — длина числового реквизита: целая часть и точность (количество знаков после запятой) для сумм, количеств, курсов.

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

Подготовка: что сделать до изменения разрядности

Первый шаг — резервная копия базы. Для файловой базы достаточно скопировать файл 1Cv8.1CD в отдельный каталог при выключенной базе либо выполнить выгрузку в .dt через конфигуратор («Администрирование» → «Выгрузить информационную базу»). Для клиент-серверной базы делайте бэкап средствами СУБД (MS SQL, PostgreSQL) — выгрузка .dt больших баз ненадёжна и долга.

Второй шаг — проверить, где ещё используется изменяемый формат. Если база обменивается данными с другими конфигурациями (обмен УТ–БП, выгрузка на сайт, интеграция с WMS), убедитесь, что принимающая сторона сможет принять коды и номера новой длины. Частая ситуация: в 1С разрядность увеличили, а сайт обрезает код до 11 символов — и начинаются дубли контрагентов.

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

Как увеличить длину кода справочника

Откройте конфигуратор, загрузите конфигурацию («Конфигурация» → «Открыть конфигурацию») и найдите нужный справочник в дереве объектов. Вызовите палитру свойств (правый клик → «Свойства») и найдите параметр «Длина кода». Увеличьте значение, например с 9 до 11 — этого достаточно для десятков миллиардов кодов, чего хватит с запасом на годы вперёд.

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

После изменения сохраните конфигурацию и выполните «Обновить конфигурацию базы данных» (F7). Система покажет окно реструктуризации со списком изменяемых таблиц — подтвердите. Старые коды автоматически дополнятся лидирующими нулями слева: «000000123» станет «00000000123» при увеличении длины с 9 до 11.

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

Как увеличить длину номера документа

Для документов меняется свойство «Длина номера» в палитре свойств объекта «Документ». Здесь есть нюанс с нумерацией: номера документов в типовых конфигурациях часто содержат префиксы («00БП-000123»), и префикс входит в общую длину. Если длина номера 11, а префикс занимает 5 символов, на собственно числовую часть остаётся 6 разрядов — то есть 999 999 документов в периоде.

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

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

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

Числовой реквизит настраивается двумя параметрами: «Длина» (общее количество цифр включая дробную часть) и «Точность» (знаки после запятой). Например, длина 15 и точность 2 означают максимум 13 цифр целой части и 2 знака после запятой. Чтобы увеличить разрядность суммы, откройте реквизит объекта (или общий реквизит, определяющий тип) и измените эти значения.

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

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

Ограничения и типичные ошибки

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

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

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

Как проверить результат после изменения

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

Затем выполните контрольный обмен данными, если он настроен, и проверьте ключевые отчёты и печатные формы, где выводится код или номер. Для числовых реквизитов введите значение с новой точностью и убедитесь, что оно сохраняется без округления. Финально полезно запустить тестирование и исправление базы (для файловых баз) или проверку целостности средствами СУБД.

Контрольные точки

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

Новый код или номер элемента
Норма

Присваивается с новой длиной, автонумерация работает

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

Ошибка при записи или номер старого формата

Старые данные
Норма

Коды дополнены нулями, ссылки и отчёты работают

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

Обрезанные значения или битые ссылки

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

Объекты сопоставляются, дублей нет

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

Дубли элементов или ошибки формата в приёмнике

Часто задаваемые вопросы

Можно ли увеличить разрядность без конфигуратора, в режиме Предприятия?

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

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

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

Можно ли изменить разрядность через расширение конфигурации?

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

Сколько времени занимает реструктуризация?

Зависит от размера затронутых таблиц и производительности сервера. В небольшой файловой базе — минуты; в клиент-серверной базе с миллионами записей в изменяемой таблице — от десятков минут до нескольких часов. Планируйте работу на нерабочее время и не прерывайте процесс.

Что делать, если коды закончились, а менять конфигурацию нельзя?

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

Повлияет ли увеличение длины номера на печатные формы?

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

Итог

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

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