Как убрать дефис из номера документа в 1С:Бухгалтерия 3.0 и правильно продолжить нумерацию после перехода с 2.0?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

При переходе с редакции 2.0 на редакцию 3.0 программ линейки «1С:Предприятие 8» (например, «1С:Бухгалтерия предприятия» или «1С:Зарплата и управление персоналом») пользователи часто сталкиваются с изменением формата номеров документов. Самый популярный вопрос в этот период: откуда в номере взялся дефис (например, вместо прежнего номера АБ00000001 получается АБ00-000001) и как его убрать?

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

Почему в 1С:Бухгалтерия 3.0 появился дефис в номерах?

Начиная с редакции 3.0, все типовые конфигурации 1С перешли на единые стандарты, заложенные в Библиотеке стандартных подсистем (БСП). В БСП реализован строго регламентированный механизм формирования префиксов и номеров документов. Новый формат номера имеет шаблон:

[ОП][ИБ]-[Номер], где:

  1. ОП (первые два символа) — префикс организации. Если в базе ведется учет по одной организации и префикс не задан, система автоматически подставит два нуля (00).
  2. ИБ (следующие два символа) — префикс информационной базы. Он необходим для корректной синхронизации данных, чтобы документы, созданные в разных базах (например, в «1С:Управление торговлей» и «1С:Бухгалтерия»), не затирали друг друга при обмене. Если обмены не используются, система по умолчанию ставит сюда нули (00).
  3. Дефис (-) — обязательный системный разделитель между префиксами и значащей (цифровой) частью номера.
  4. Номер (оставшаяся правая часть) — непосредственный порядковый номер документа, дополненный лидирующими нулями для сохранения общей длины строки.

Таким образом, номер вида АБ00-000001 означает, что документ создан в организации с префиксом АБ, в базе с префиксом 00, а его порядковый номер — 1.

Почему программное удаление дефиса — это опасный путь?

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


ПрефиксИБ = ОбменДаннымиСервер.ПрефиксИнформационнойБазы();
ПрефиксИБ = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(ПрефиксИБ, 2, "0", "Слева");

ПрефиксОП = ПрефиксОрганизацииПодразделения(Организация, Подразделение);
ПрефиксОП = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(ПрефиксОП, 2, "0", "Слева");

Возврат ПрефиксОП + ПрефиксИБ + Префикс; // Было с дефисом: ПрефиксОП + ПрефиксИБ + "-" + Префикс;

Внимание! Такое решение относится к категории крайне вредных советов. В коде типовых конфигураций жестко зашита функция ПрефиксацияОбъектовКлиентСервер.УдалитьПрефиксыИзНомераОбъекта(). Она ищет дефис на строго определенных позициях (3-й или 5-й символ номера), чтобы корректно отсечь технический префикс перед выводом номера на печать или при передаче данных.

Если вы принудительно удалите дефис из номера в базе данных, вы столкнетесь со следующими критическими проблемами:

  1. Сбои при печати документов: Стандартные алгоритмы печати не смогут определить, где заканчивается префикс и начинается значащая цифровая часть. В результате в печатные формы (ТОРГ-12, Акты, Счета-фактуры) документы будут выводиться со всеми «техническими» префиксами и лидирующими нулями.
  2. Ошибки при синхронизации данных: При обмене данными с другими конфигурациями (например, «1С:ЗУП» или «1С:Розница») механизмы регистрации изменений не смогут распознать структуру номера, что приведет к дублированию документов или сбою нумерации в связанных базах.
  3. Проблемы с электронным документооборотом (ЭДО): Модули интеграции с операторами ЭДО используют стандартные механизмы очистки номеров. Документы без дефиса будут отправляться контрагентам в «грязном» виде, что вызовет вопросы у их бухгалтерии.

Как правильно продолжить нумерацию документов без изменения кода?

Платформа «1С:Предприятие» использует механизм автонумерации на основе последнего записанного документа в текущем году. Чтобы продолжить сквозной учет из редакции 2.0 без нарушения логики системы 8.3, достаточно правильно скорректировать первый созданный документ каждого вида в новой редакции 3.0.

Разберем этот процесс по шагам:

  1. Выясните последний номер документа нужного вида в старой базе редакции 2.0 (например, Реализация товаров и услуг имела номер АБ000000356).
  2. В новой базе «1С:Бухгалтерия 3.0» создайте новый документ этого же вида. Система автоматически присвоит ему номер нового образца, например, АБ00-000001.
  3. Перед записью документа вручную отредактируйте его номер, приведя его к новому стандарту БСП, но с сохранением вашей числовой последовательности: АБ00-000357.
  4. Важное правило: При ручном редактировании обязательно сохраняйте дефис и общее количество символов в строке номера (длина номера должна оставаться стандартной, обычно это 11 символов). Не удаляйте лидирующие нули перед числом 357, иначе автонумерация в дальнейшем может работать некорректно.
  5. Запишите и проведите документ.

После выполнения этих действий все последующие документы этого вида будут нумероваться программой автоматически в правильной последовательности: АБ00-000358, АБ00-000359 и так далее.

Как очистить кэш нумерации, если автонумерация сбилась?

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

  1. Убедитесь, что в базе нет документов с нарушенной длиной номера (например, слишком коротких или слишком длинных номеров, в которых случайно удалили нули или дефис). Если такие есть — исправьте их вручную.
  2. Для обновления повторно используемых значений в транзакциях и кэше платформы можно использовать стандартную команду очистки кэша или выполнить в консоли кода вызов метода: ОбновитьПовторноИспользуемыеЗначения();
  3. Перезапустите сеанс работы с базой данных. После этого алгоритм генерации номеров заново проанализирует последний записанный документ в базе и продолжит корректную последовательность.

Отображение номеров в печатных формах и электронном документообороте (ЭДО)

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

В системе 1С это решено следующим образом:

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

← На главную