Почему при загрузке из 1С 7.7 в 1С:Бухгалтерию 3.0 появляются буквенные префиксы в номерах документов и как это исправить

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

При переносе данных из устаревших конфигураций 1С 7.7 (например, «Торговля и Склад» или «Бухгалтерский учет 7.7») в современную «1С:Бухгалтерию 8» (редакция 3.0) пользователи часто сталкиваются со странным поведением системы. Перенесенные документы поступления и реализации получают номера вида 0000-Т00001, 0000-У00001 или 0000-Р00001. В дальнейшем при ручном создании новых документов платформа начинает автоматически подставлять последнюю букву в префикс (например, создается документ с номером 0000-У00002 вместо 0000-000002).

Разберем подробно, почему типовой перенос формирует такие номера, как это влияет на работу системы и как вернуть правильную нумерацию.

Причина появления буквенных символов в номере

Проанализируем архитектурные различия между 1С 7.7 и 1С 8.3:

  1. Разделение документов в 1С 7.7: В конфигурациях версии 7.7 поступление товаров (накладная) и поступление услуг (акт) — это два совершенно разных вида документов. У каждого из них ведется самостоятельная нумерация. Из-за этого в базе 7.7 вполне нормально существование поступления ТМЦ №000001 и акта оказания услуг №000001 за один и тот же период.
  2. Объединение сущностей в 1С 8.3: В «1С:Бухгалтерии 8» эти операции объединили в один универсальный документ Поступление (акты, накладные).
  3. Избежание конфликтов уникальности: Чтобы при загрузке данных из 7.7 документы с одинаковыми номерами не вызывали ошибку уникальности и не заменяли друг друга, типовые правила конвертации («Конвертация данных») искусственно добавляют буквенный символ в тело номера:
    • Т — Поступление товаров;
    • У — Поступление услуг;
    • Р — Реализация товаров и услуг.

Как буквенные префиксы сбивают автонумерацию платформы

Выясним, почему добавление букв ломает автоматическое присвоение номеров для новых документов в 1С 8.3.

Механизм автонумерации платформы «1С:Предприятие 8.3» работает по принципу лексикографического (алфавитно-цифрового) сравнения строк. В «1С:Бухгалтерии 3.0» стандартный номер документа имеет длину 11 символов и структуру XXXX-XXXXXX, где первые 4 символа выделены под префикс организации и базы, затем идет дефис и 6-значный цифровой код (например, 0000-000001).

Когда платформа ищет последний созданный документ, чтобы выдать следующему документу номер на единицу больше, она анализирует текстовые значения всех номеров данного вида. Так как буква «У» в таблице символов находится выше цифр и букв «Т» или «Р», платформа расценивает номер 0000-У00001 как самый старший из всех. В результате при вводе нового документа вручную система фиксирует текстовую часть 0000-У как префикс и формирует следующий номер — 0000-У00002.

Способы решения проблемы

Рассмотрев причины, перейдем к исправлению нумерации. Существует два основных подхода: исправление уже загруженных данных или корректировка правил обмена перед перегрузкой.

1. Приведение номеров к стандартному виду в БП 3.0

Если данные уже перенесены и работа в базе продолжается, необходимо удалить буквенные символы из правой части номеров загруженных документов, приведя их к формату 0000-000001.

Для массового изменения номеров выполним следующие шаги:

  1. Откроем раздел Администрирование – Обслуживание – Корректировка данных – Групповое изменение реквизитов.
  2. Выберем нужный элемент (например, документ Поступление (акты, накладные) или Реализация (акты, накладные)).
  3. По кнопке Дополнительные параметры разрешим изменение служебных реквизитов.
  4. С помощью специализированных обработок перенумерации или встроенного изменения реквизитов удалим буквы «Т», «У», «Р» из номеров, заменив их на ведущие нули.

Важное примечание: Бухгалтерскому и налоговому учету не важен внутренний номер документа поступления в системе 1С, так как в печатные формы и отчеты (Книга покупок, Журнал учета счетов-фактур) выводится реквизит Номер входящего документа, заполняемый по первичке контрагента.

2. Корректировка в правилах конвертации (КД 2.0 / КД 3.0)

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

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


// Пример очистки буквенного символа из номера документа
НомерБезБукв = СтрЗаменить(Объект.Номер, "У", "0");
НомерБезБукв = СтрЗаменить(НомерБезБукв, "Т", "0");
НомерБезБукв = СтрЗаменить(НомерБезБукв, "Р", "0");
Объект.Номер = НомерБезБукв;

После удаления всех документов с некорректными символами из базы и приведения существующих номеров к виду 0000-000001 платформа «1С:Предприятие 8.3» начнет корректно автонумеровать вновь создаваемые документы в правильном числовом порядке.

← На главную