При переносе данных из устаревших конфигураций 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С 8.3.
Механизм автонумерации платформы «1С:Предприятие 8.3» работает по принципу лексикографического (алфавитно-цифрового) сравнения строк. В «1С:Бухгалтерии 3.0» стандартный номер документа имеет длину 11 символов и структуру XXXX-XXXXXX, где первые 4 символа выделены под префикс организации и базы, затем идет дефис и 6-значный цифровой код (например, 0000-000001).
Когда платформа ищет последний созданный документ, чтобы выдать следующему документу номер на единицу больше, она анализирует текстовые значения всех номеров данного вида. Так как буква «У» в таблице символов находится выше цифр и букв «Т» или «Р», платформа расценивает номер 0000-У00001 как самый старший из всех. В результате при вводе нового документа вручную система фиксирует текстовую часть 0000-У как префикс и формирует следующий номер — 0000-У00002.
Рассмотрев причины, перейдем к исправлению нумерации. Существует два основных подхода: исправление уже загруженных данных или корректировка правил обмена перед перегрузкой.
Если данные уже перенесены и работа в базе продолжается, необходимо удалить буквенные символы из правой части номеров загруженных документов, приведя их к формату 0000-000001.
Для массового изменения номеров выполним следующие шаги:
Поступление (акты, накладные) или Реализация (акты, накладные)).Важное примечание: Бухгалтерскому и налоговому учету не важен внутренний номер документа поступления в системе 1С, так как в печатные формы и отчеты (Книга покупок, Журнал учета счетов-фактур) выводится реквизит Номер входящего документа, заполняемый по первичке контрагента.
Если перенос данных еще находится в процессе настройки, проанализируем правила обмена в программе «Конвертация данных». В обработчиках событий правила конвертации объекта (ПКО) для нужных документов можно отключить добавление символов или формировать сквозную нумерацию.
Например, в обработчике При загрузке или После загрузки можно очистить буквенные символы из поля Объект.Номер перед его записью в целевую базу:
// Пример очистки буквенного символа из номера документа
НомерБезБукв = СтрЗаменить(Объект.Номер, "У", "0");
НомерБезБукв = СтрЗаменить(НомерБезБукв, "Т", "0");
НомерБезБукв = СтрЗаменить(НомерБезБукв, "Р", "0");
Объект.Номер = НомерБезБукв;
После удаления всех документов с некорректными символами из базы и приведения существующих номеров к виду 0000-000001 платформа «1С:Предприятие 8.3» начнет корректно автонумеровать вновь создаваемые документы в правильном числовом порядке.