При переходе с редакции 2.0 на редакцию 3.0 программ линейки «1С:Предприятие 8» (например, «1С:Бухгалтерия предприятия» или «1С:Зарплата и управление персоналом») пользователи часто сталкиваются с изменением формата номеров документов. Самый популярный вопрос в этот период: откуда в номере взялся дефис (например, вместо прежнего номера АБ00000001 получается АБ00-000001) и как его убрать?
В этой статье мы подробно разберем причины изменения формата номеров, выясним, почему механическое удаление дефиса из кода конфигурации может навредить системе, и рассмотрим правильный, безопасный алгоритм продолжения вашей привычной нумерации.
Начиная с редакции 3.0, все типовые конфигурации 1С перешли на единые стандарты, заложенные в Библиотеке стандартных подсистем (БСП). В БСП реализован строго регламентированный механизм формирования префиксов и номеров документов. Новый формат номера имеет шаблон:
[ОП][ИБ]-[Номер], где:
00).00).-) — обязательный системный разделитель между префиксами и значащей (цифровой) частью номера.Таким образом, номер вида АБ00-000001 означает, что документ создан в организации с префиксом АБ, в базе с префиксом 00, а его порядковый номер — 1.
Иногда у разработчиков или администраторов возникает соблазн быстро «починить» нумерацию, создав расширение или изменив код в модуле. Давайте рассмотрим пример кода, который возвращает префикс без дефиса:
ПрефиксИБ = ОбменДаннымиСервер.ПрефиксИнформационнойБазы();
ПрефиксИБ = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(ПрефиксИБ, 2, "0", "Слева");
ПрефиксОП = ПрефиксОрганизацииПодразделения(Организация, Подразделение);
ПрефиксОП = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(ПрефиксОП, 2, "0", "Слева");
Возврат ПрефиксОП + ПрефиксИБ + Префикс; // Было с дефисом: ПрефиксОП + ПрефиксИБ + "-" + Префикс;
Внимание! Такое решение относится к категории крайне вредных советов. В коде типовых конфигураций жестко зашита функция ПрефиксацияОбъектовКлиентСервер.УдалитьПрефиксыИзНомераОбъекта(). Она ищет дефис на строго определенных позициях (3-й или 5-й символ номера), чтобы корректно отсечь технический префикс перед выводом номера на печать или при передаче данных.
Если вы принудительно удалите дефис из номера в базе данных, вы столкнетесь со следующими критическими проблемами:
Платформа «1С:Предприятие» использует механизм автонумерации на основе последнего записанного документа в текущем году. Чтобы продолжить сквозной учет из редакции 2.0 без нарушения логики системы 8.3, достаточно правильно скорректировать первый созданный документ каждого вида в новой редакции 3.0.
Разберем этот процесс по шагам:
АБ000000356).АБ00-000001.АБ00-000357.357, иначе автонумерация в дальнейшем может работать некорректно.После выполнения этих действий все последующие документы этого вида будут нумероваться программой автоматически в правильной последовательности: АБ00-000358, АБ00-000359 и так далее.
Иногда после ручного вмешательства или переноса данных автонумерация продолжает подставлять старые значения. Это происходит из-за кэширования номеров платформой. Чтобы сбросить кэш и заставить систему пересчитать номера заново, выполните следующие действия:
ОбновитьПовторноИспользуемыеЗначения();
Пользователям и бухгалтерам важно понимать, что наличие префиксов и дефисов внутри базы данных необходимо исключительно для корректной работы самой программы. Контрагенты и проверяющие органы этих технических символов видеть не должны.
В системе 1С это решено следующим образом:
АБ00-000357 на листе будет напечатан номер 357).Таким образом, приняв новые правила префиксации с использованием дефиса, вы сохраните типовую конфигурацию на поддержке, обеспечите стабильную синхронизацию данных и корректную работу всех печатных форм и ЭДО.